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).

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
___________________________________________________________________________________

Reply via email to