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 ___________________________________________________________________________________