LaTeXでソースコードを掲載するためのlistingsパッケージ。

allttだと整形はされてもエスケープしないといけないし、verbatimだとタブが表示されないので無いかなぁと思ったら、listingsというパッケージがあることが 分かった 。参照元だと、日本語表示にはjlistingパッケージを使う必要があるとあったが、Debian GNU/Linux Sid/Squeezeの環境では特にそれは必要無かったので、usepackageの記述は変える必要があり。 1

\usepackage{listings}
(snip)
\begin{lstlisting}[label=src:json, caption=.couchapprcの設定]
{
    "title": "タイトル",
    "date": "2011-01-05"
}
\end{lstlisting}

といった感じで、ブレースや日本語も記述しても問題無し。ただし、このままだとフォントがserifになるので、あんまし見た目が良くないので、参照元で更に 参照している先 を参考に、begin{document}の前に次のを挿入したら、見た目もカスタマイズできてうれしい。

\lstset{%
 language={Java},
 backgroundcolor={\color[gray]{.85}},%
 basicstyle={\footnotesize},%
 identifierstyle={\footnotesize},%
 commentstyle={\footnotesize\itshape},%
 keywordstyle={\footnotesize\bfseries},%
 ndkeywordstyle={\footnotesize},%
 stringstyle={\footnotesize\ttfamily},
 frame={tb},
 breaklines=true,
 columns=[l]{fullflexible},%
 numbers=left,%
 xrightmargin=0zw,%
 xleftmargin=1zw,%
 numberstyle={\scriptsize},%
 stepnumber=1,
 numbersep=0.5zw,%
 lineskip=-0.5ex%
}

JavaScriptは対応してないようなのだが、CかJavaにしておけばまぁいいかなぁと。

あと、一行が長すぎて、breakline=trueで2行に巻き返しされると、2行目の背景色は指定した色にならなかったので、これはどうすれば良いか分からなかったので、とりあえずフォントサイズをfootnotesizeにして逃げた。w

部分的に変更したい場合。

LaTeXのソース全体ではlanguage={C}にしていて、一部をHTMLのコードにしたい場合は次のようにすればOK.

\begin{lstlisting}[language={HTML}]
1

jlistingを指定してもファイルがないというwarningが出る。