TeXでプログラムのソースを印刷する
CTANに登録されている listings (http://www.atscire.de/index.php?nav=products/listings ) 環境を使うことで、プログラムをTeXで印刷可能。配布パッケージ(listings-1.3.zip)の中にあるpdfのマニュアルが充実している(CTANにあるlistingのマニュアル http://www.ctan.org/tex-archive/macros/latex/contrib/listings/listings-1.3.pdf )。
インストールは、listings-1.3.zipをダウンロードして、展開。展開した中のinsファイルに大して、
% platex listings-1.3.ins
でstyleや、cfgファイルが出来上がるので、TeXのパスの通ったところに入れるか、作っているTeXファイルと同じディレクトリにコピーする。
また、listingsでは、英単語と日本語の位置を勝手に入れ替えてくれることがあるので、http://tex.dante.jp/typo/index.php?Listings からjlisting.styも、同じディレクトリにコピーする。1.3でも、現在は問題なく動いている。
利用は、
\usepackage{listings,jlisting}
でパッケージを読み込み、
\lstset{
language=Java, % javaを利用
columns=[l]{fullflexible}, % 文字をつめる
tabsize={2}, % タブの空白数の変更
texcl={true}, % コメントの中でTeXのコマンドを許可。$a_{ij}$などはTeXで変換される。
...%いろいろオプションを書いておく
}
でソースの言語、フォント、枠の囲み方、マージンなどを設定。
\begin{lstlisting}[caption=図のキャプションを書く,label=参照用のラベルを書く]
ソースを貼付ける
\end{lstlistings}
で、varbatim環境同様に利用できる。
さらに、
lstinputlisting[caption=キャプション,label=ラベル]{filename}
で、ファイルから印刷するプログラムを読み込むことができる。
これで、プログラムをイチイチTeXのソースに貼付ける手間が減る。
- (2005/11/22追記) texcl=true にすると、コメントで、日本語と英語混合で使えなくなるようだ。