[Insight-users] Writing Code in LaTeX in Insight Journal Papers

Nicholas Tustison ntustison at gmail.com
Mon Jan 26 08:04:22 EST 2009


I agree with Luis's observation about Dan's use of the listings tex  
package.  In fact, my use of the package was a result of reading one  
of Dan's earlier IJ papers.  So I have nothing to add except a belated  
"thank you" to Dan.


On Jan 26, 2009, at 7:26 AM, Dan Mueller wrote:

> Hi Insight Users,
>
> As per Luis' suggestion, please find below some instructions regarding
> use of the "listings" LaTeX package for including code in Insight
> Journal Papers.
>
> 1. The first step is to download the package:
>    http://www.ctan.org/tex-archive/macros/latex/contrib/listings/
>
> I use the MiKTeX distribution on Windows, which has a package
> browser/installer. I'm not sure how it is works for other systems, so
> you're on your own getting the package set up and working.
>
> 2. Next you have to "use" the package in the preamble of your article:
>    \usepackage{listings}
>
> 3. Now you have to include your code in the article. There are two
> options: "inline", or from a "source" file. I tend to use the source
> option the most.
>
> 3a. Using an "inline" listing:
>
> \begin{lstlisting}
> unsigned int lifeUniverseAndEverything = 42;
> \end{lstlisting}
>
> 3b. Using (part of) a raw "source" file:
>
> \begin{center}
> 	\lstinputlisting[linerange={2-10}]
>        {../Examples/example1.cxx}
> \end{center}
>
> 4. The package provides heaps of options to make the code look
> "pretty" (i.e. code highlighting, line numbers, borders, background
> colour, etc). I tend to encapsulate these options by defining new
> command(s) in the article preamble:
>
> eg. for C++ code:
>
> \newcommand{\lstset at cpp}
> {
> \lstset{frame = tb,
>        framerule = 0.25pt,
>        float,
>        fontadjust,
>        backgroundcolor={\color{listlightgray}},
>        basicstyle = {\ttfamily\footnotesize},
>        keywordstyle = {\ttfamily\color{listkeyword}\textbf},
>        identifierstyle = {\ttfamily},
>        commentstyle = {\ttfamily\color{listcomment}\textit},
>        stringstyle = {\ttfamily},
>        showstringspaces = false,
>        showtabs = false,
>        numbers = left,
>        numbersep = 6pt,
>        numberstyle={\ttfamily\color{listnumbers}},
>        tabsize = 2,
>        language=[ANSI]C++,
>        floatplacement=!h
>        }
> }
>
> eg. for python
>
> \newcommand{\lstset at python}
> {
> \lstset{frame = tb,
>        framerule = 0.25pt,
>        float,
>        fontadjust,
>        backgroundcolor={\color{listlightgray}},
>        basicstyle = {\ttfamily\footnotesize},
>        keywordstyle = {\ttfamily\color{listkeyword}\textbf},
>        identifierstyle = {\ttfamily},
>        commentstyle = {\ttfamily\color{listcomment}\textit},
>        stringstyle = {\ttfamily},
>        showstringspaces = false,
>        showtabs = false,
>        numbers = left,
>        numbersep = 6pt,
>        numberstyle={\ttfamily\color{listnumbers}},
>        tabsize = 2,
>        language=Python,
>        floatplacement=!h
>        }
> }
>
> etc.
>
> These commands require the "color" package and some additional  
> defines:
>
>    \usepackage{color}
>
>    \definecolor{listcomment}{rgb}{0.0,0.5,0.0}
>    \definecolor{listkeyword}{rgb}{0.0,0.0,0.5}
>    \definecolor{listnumbers}{gray}{0.65}
>    \definecolor{listlightgray}{gray}{0.955}
>    \definecolor{listwhite}{gray}{1.0}
>
> Now you simply call the desired command when needed.
>
> 4a. For "inline" listings
>
> \lstset at cpp % Add this to make "pretty" cpp code
> \begin{lstlisting}
> unsigned int lifeUniverseAndEverything = 42;
> \end{lstlisting}
>
> 4b. For "source" listings
>
> \begin{center}
>       \lstset at cpp % Add this to make "pretty" cpp code
> 	\lstinputlisting[linerange={2-10}]
>        {../Examples/example1.cxx}
> \end{center}
>
> Other supported languages include: C, Gnuplot, tcl, XML, Java,  
> [Sharp]C, Matlab.
>
> Some of my other IJ articles have the LaTeX source included,
> <shamelessplug>so feel free to check them out</shamelessplug> for a
> full example:
>    http://www.insight-journal.org/browse/publication/117
>    http://www.insight-journal.org/browse/publication/151
>
> I notice Nick Tustison's papers also have "pretty" code, so he might
> have something to add?
>   http://www.insight-journal.org/browse/publication/306
>
> Of course you can read all about the "listings" package here:
>    http://www.ctan.org/get/macros/latex/contrib/listings/listings.pdf
>
> HTH
>
> Regards, Dan
>
> 2009/1/24 Luis Ibanez <luis.ibanez at kitware.com>:
>>
>> Hi Dan,
>>
>> We like very much the formatting of source code in your paper
>>
>> "Fast Marching Minimal Path Extraction in ITK"
>> http://www.insight-journal.org/download/viewpdf/213/6
>>
>> Could you please share with the mailing-list the method that
>> you are using to format this code for LaTeX ?
>>
>> It will be very useful to other Insight Journal contributors.
>>
>> We probably should add it to the guidelines of the Insight Journal  
>> Wiki.
>>
>>
>>  Thanks,
>>
>>
>>     Luis
>>
>>
>> ---------------------
>>>>
>>>>
>>>> I'm trying to use your latex template to write my paper. I would  
>>>> like to
>>>> add an example of the code to my paper. (For example, like in  
>>>> page 4 of the
>>>> paper http://www.insight-journal.org/browse/publication/213).
>>>>
>>>>
>>>>
>>>> Can you please send me a .tex example on how to write the code in  
>>>> the
>>>> format of the paper above (such an example does not appear in the  
>>>> provided
>>>> template in the Insight Journal website)?
>>>>
>>>>
>>>>
>>>> Thank you,
>>>>
>>>>
>>>>
>>>> Lior Weizman
>>>>
>>>>
>>>>
>>>> System: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;  
>>>> GTB5;
>>>> .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1; .NET CLR  
>>>> 3.0.4506.2152;
>>>> .NET CLR 3.5.30729)
>>>>
>>>
>>
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org
> http://www.itk.org/mailman/listinfo/insight-users



More information about the Insight-users mailing list