From: Wolfgang Schuster <schuster.wolfgang@googlemail.com>
To: mailing list for ConTeXt users <ntg-context@ntg.nl>
Subject: Re: Listings
Date: Mon, 29 Sep 2008 00:04:16 +0200 [thread overview]
Message-ID: <036FC29C-0092-431E-8269-46FEA8FD544B@gmail.com> (raw)
In-Reply-To: <B8542EB4-FAEA-4657-9D42-07D9F0B9C238@gmail.com>
Am 28.09.2008 um 23:23 schrieb Wolfgang Schuster:
>
> Am 28.09.2008 um 22:42 schrieb Mohamed Bana:
>
>> Wolfgang Schuster wrote:
>>> Am 28.09.2008 um 19:34 schrieb Mohamed Bana:
>>>
>>>> Aditya Mahajan wrote:
>>>>> Hi everyone,
>>>>>
>>>>> I finished my thesis, writing both my thesis and my presentation
>>>>> using
>>>>> ConTeXt.
>>>>>
>>>>> Aditya
>>>> :). But there's a still something missing that I need before I
>>>> even
>>>> thinking of typesetting an msc thesis in ConTeXt. I'd like to
>>>> have
>>>> something equivelant to the *listings.sty* package;
>>>> http://thread.gmane.org/gmane.comp.tex.context/15591/focus=15592 or
>>>> http://vega.soi.city.ac.uk/~abbg770/listing-sample.pdf.
>>>>
>>>>
>>>> I setup listing first;
>>>>
>>>> \lstset{breaklines=true,
>>>> showlines=true, % showing line numbers
>>>> numbers=left, % where to show line numbers
>>>> numberstyle=\tiny\color{gray},
>>>> numbersep=10pt, %
>>>> stepnumber=1, % how often to show the line number on the left
>>>> language=Java, % specifiy the language
>>>> basicstyle=\ttfamily\small, % print whole listing small
>>>> keywordstyle=\color{eclipsekeyword}\ttfamily\underbar, % underlined
>>>> bold
>>>> black keywords
>>>> identifierstyle=, % nothing happens
>>>> commentstyle=\color{eclipsecomment}, % white comments, if you use
>>>> commentstyle=\color{white},
>>>> stringstyle=\ttfamily, % typewriter type for strings
>>>> showstringspaces=false, % no special string spaces
>>>> frame=single,
>>>> backgroundcolor=\color{white},
>>>> tabsize=4,
>>>> showspaces=false,
>>>> showstringspaces=false}
>>>>
>>>> \lstset{morecomment=[s][\color{eclipsejavadoc}]{/**}{*/}}
>>>>
>>>>
>>>> Includes a file, look at Listing B.2 on the pdf I posted. This
>>>> should
>>>> be self explanatory;
>>>>
>>>> \lstinputlisting[
>>>> caption={SpreadsheetParser.java},
>>>> label=lst:SpreadsheetParser.java]
>>>> {source/SpreadsheetParser.java}
>>>>
>>>>
>>>>
>>>> I can also list inline using the same settings defined in \lstset -
>>>> but
>>>> it doesn't break across lines. The choice of charater is arbitrary
>>>> i.e., I could have chosen to use | instead of !;
>>>>
>>>> \lstinline!matcher(CharSequence input)!
>>>>
>>>>
>>>>
>>>> Similar to preceeding, with line breaking. Also I can refer to it
>>>> using; \ref{lst:freeformlogfile}
>>>>
>>>> \begin{lstlisting}[frame=,label={lst:freeformlogfile},caption={Log
>>>> File}]
>>>> import java.util.Arrays;
>>>>
>>>> public class ArrayReallocationDemo {
>>>>
>>>> public static void main(String[] args) {
>>>> int[] data1 = new int[] { 1, 3, 5, 7, 9 };
>>>>
>>>> printArray(data1);
>>>> int[] data2 = Arrays.copyOf(data1, 6);
>>>> data2[5] = 11;
>>>> printArray(data2);
>>>>
>>>> int[] data3 = Arrays.copyOfRange(data1, 2, 10);
>>>> printArray(data3);
>>>> }
>>>>
>>>> // print array elements
>>>> private static void printArray(int[] data) {
>>>> StringBuilder stringBuilder = new StringBuilder("[");
>>>> for (int i = 0; i < data.length; i++) {
>>>> stringBuilder.append(data[i]);
>>>> if (i < data.length - 1)
>>>> stringBuilder.append(", ");
>>>> }
>>>> stringBuilder.append("]");
>>>> System.out.println(stringBuilder);
>>>> }
>>>> }
>>>> \end{lstlisting}
>>>
>>> \setupcolors[state=start]
>>>
>>> \definetyping[JAVA][option=JV]
>>>
>>> \setuptyping
>>> [JAVA]
>>> [numbering=line]
>>>
>>> \starttext
>>>
>>> \startJAVA
>>> ...
>>> \stopJAVA
>>>
>>> \stoptext
>>>
>>> or
>>>
>>> same preamble as above plus
>>>
>>> \definefloat[listing][listings]
>>>
>>> \starttext
>>>
>>> \placelisting
>>> [split]
>>> [lst:freeformlogfile]
>>> {Log File}
>>> {\startJAVA
>>> ...
>>> \stopJAVA}
>>>
>>> \stoptext
>>>
>>> Wolfgang
>>>
>>
>> Thanks Wolfgang.
>>
>> Source; http://pastebin.com/m40986857
>> Pdf; http://filebin.ca/kceezh/listing.pdf or http://filebin.ca/kceezh
>>
>> I've still got some issues with it :(. I think I'll just wait till
>> verbatim supports improves.
>>
>> 1. Lines protude into the margin and sometime even go past the end
>> of
>> the page.
>
> \setuptyping
> [JAVA]
> [numbering=line,
> lines=yes]
>
> \setuplinenumbering[location=text]
>
>> 2. Why doesn't it show the line numbers for the empty lines?
>
> Could be a MkII bug because it works with MkIV but here appears
> a new problem, "location=text" for line numbering is not working.
>
> Test file for Hans:
>
> % engine=luatex
>
> \setuplinenumbering[location=text]
>
> \showframe
>
> \starttext
>
> \startlinenumbering
> A line of text with the line number.
> \stoplinenumbering
>
> \stoptext
>
>
>> 3. Is there a way to supress the 'there is nothing to split'
>> warning?
>
> It's a bug, I will look for a solution (the caption has to be fixed
> too).
Here is a quick and dirty solution, alisghtly modified version of
something I wrote two years ago [1]. The code is not ready for
documents because the spacing between the lines is wrong.
\unprotect
\def\dododostarttyping[#1]%
{\typingparameter\c!before
\ifinsidesplitfloat
\setbox\tablecontentbox\vbox\bgroup % added
\fi
\startpacked % includes \bgroup
\dosetuptypelinenumbering{#1}%
\initializetyping
\startverbatimcolor
\expanded{\mktypeblockverbatim{\s!start\currenttyping}{\s!stop
\currenttyping}}}
\def\dostoptyping#1% hm, currenttyping
{\stopverbatimcolor
\stoppacked % includes \egroup
\ifinsidesplitfloat
\egroup % added
\dosplitverbatimbox\tablecontentbox
\fi
\typingparameter\c!after
\egroup
\dochecknextindentation{\??tp#1}%
\dorechecknextindentation}
\def\dosplitverbatimbox#1%
{\resettsplit
\setbox\tsplitcontent\box#1%
\handletsplit}
\protect
[1] http://archive.contextgarden.net/message/20061004.105840.df79ec7f.en.html
Regards,
Wolfgang
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
archive : https://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___________________________________________________________________________________
next prev parent reply other threads:[~2008-09-28 22:04 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-27 16:35 Experience on writing a thesis with MKIV Aditya Mahajan
2008-09-28 13:59 ` Hans Hagen
2008-09-28 15:45 ` Mikael Persson
2008-09-28 18:23 ` Hans Hagen
2008-09-28 19:06 ` Mikael Persson
2008-09-28 19:21 ` Aditya Mahajan
2008-09-28 19:34 ` Utopia and Fourier fonts (was: Experience on writing a thesis with MKIV) Wolfgang Schuster
2008-09-29 9:31 ` Mikael Persson
2008-09-29 9:56 ` Utopia and Fourier fonts Wolfgang Schuster
2008-09-29 13:34 ` Mikael Persson
2008-09-29 13:49 ` Mojca Miklavec
2008-09-29 18:35 ` Mikael Persson
2008-09-29 20:22 ` Wolfgang Schuster
2008-09-30 6:43 ` Mikael Persson
2008-10-01 15:43 ` Mikael Persson
2008-09-29 9:26 ` Experience on writing a thesis with MKIV Mikael Persson
2008-09-28 17:34 ` Mohamed Bana
2008-09-28 18:16 ` Listings (was: Experience on writing a thesis with MKIV) Wolfgang Schuster
2008-09-28 20:42 ` Listings Mohamed Bana
2008-09-28 21:23 ` Listings Wolfgang Schuster
2008-09-28 22:04 ` Wolfgang Schuster [this message]
2008-09-30 16:37 ` Listings (was: Experience on writing a thesis with MKIV) Chen Shen
2008-09-30 17:15 ` Wolfgang Schuster
2008-10-01 3:44 ` Chen Shen
2008-10-02 17:38 ` Chen Shen
2008-09-30 20:35 ` Listings Hans Hagen
2008-10-02 21:27 ` Listings Mohamed Bana
2008-10-03 5:49 ` Listings Peter Münster
2008-10-04 1:11 ` Listings Mojca Miklavec
2008-12-07 2:28 ` Experience on writing a thesis with MKIV Mohamed Bana
2008-12-07 2:50 ` Aditya Mahajan
2008-12-08 23:19 ` Mohamed Bana
2008-12-09 0:40 ` Aditya Mahajan
2008-12-09 1:22 ` Sorting bug in context-alpha (was: Experience on writing a thesis with MKIV) Aditya Mahajan
2008-12-09 2:59 ` Experience on writing a thesis with MKIV Mohamed Bana
2008-12-09 3:26 ` Aditya Mahajan
2008-12-09 18:17 ` Mohamed Bana
2008-12-09 19:36 ` Aditya Mahajan
2008-12-09 21:23 ` Taco Hoekwater
2008-12-09 21:49 ` Aditya Mahajan
2008-12-10 9:24 ` Taco Hoekwater
2008-12-11 2:20 ` Mohamed Bana
2008-12-11 3:17 ` Aditya Mahajan
2008-12-15 3:52 ` Mohamed Bana
2008-12-09 14:18 ` Mojca Miklavec
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=036FC29C-0092-431E-8269-46FEA8FD544B@gmail.com \
--to=schuster.wolfgang@googlemail.com \
--cc=ntg-context@ntg.nl \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).