# Displaying (source)Code in research article [duplicate]

I have this urgent need to display two pieces of code side by side for comparison in my article. Displaying a code, I've couple of requirement

1. Should indent properly
2. Output should be syntax highlighted
3. Should be as automatic as possible in handling long lines of code (that means, wrapping the lines if necessary)
4. Code should be easily copied from output pdf
5. Code can be arbitrarily long, i.e. spanning over many pages, so automatic handling of such thing would be preferred

I have explored two choices briefly, Verbatim and listing along with minipage. They sort of work alright! But only the output is absolutely hideous. What is a good setting for any of the two, which atleast would produce good looking output. For automation part, I can still write python scripts that would allow me to do that. If any of you know example of research articles that renders code in it beautifully- I'd appreciate if you share it with me. Keep in mind that I don't use Latex often.

-

## marked as duplicate by zeroth, Herbert, Kurt, Claudio Fiandrino, lockstepMar 8 '13 at 19:25

Did you try package listings? –  Eddy_Em Mar 8 '13 at 18:15
Can this help you? tex.stackexchange.com/questions/22988/… –  Dave Mar 8 '13 at 18:22
See Print programs with its proper syntax for a list of possibilities when printing source code. With your requirements, I would suggest that listings is the way to go (since it accommodates page breaking, syntax highlighting and line wrapping). See, for example, listings code style for HTML5 (CSS, HTML, JavaScript). –  Werner Mar 8 '13 at 18:25

Here is an example of package listings usage (for Octave's m-files):

\usepackage{listings}
\lstset{basicstyle=\small,breaklines=true,language=Octave,
extendedchars=true,aboveskip=1em,belowcaptionskip=5pt,
prebreak = \hbox{%
\normalfont\small\hfill\green{\ensuremath{\hookleftarrow}}},
postbreak = \hbox to 0pt{%
\hss\normalfont\small\green{\ensuremath{\hookrightarrow}}\hspace{1ex}},
showstringspaces=false,stringstyle=\bfseries\color[rgb]{0.6,0,1},
numbers=left,numberstyle=\tiny,stepnumber=2,
keywordstyle=\bfseries\color[rgb]{0,0.1,0.5},
frameround=tttt,frame=trBL,tabsize=4,backgroundcolor=\color[rgb]{.9,.9,1}}

Read documentation of listings: you can adjust colors, line numbering, boxes around listings and many other things.