jlistingでソースコードを綺麗に表示する

Latexで文書を作成する際に、ソースコードを載せる機会は多々ある。
その時に、jlistingを使うと見栄えがものすごくよくなる。



そこで備忘録にインストール方法と使い方についてまとめておく。
使用しているTexTexインストーラ3
私はあまりLatexに詳しくないため間違っていることを書いているかもしれない。
あしからず。

jlistingのインストール


ここからjlistingをダウンロードする。
2006.12.26現在のファイル名は"listings-1.3.zip"。

リンク先が 404 になっていたので現在(2008.01.09)は ここ からダウンロードする。
上記 URL には listings を日本語対応にするマクロのみが含まれているので
ここ から listings 本体をダウンロードする。


解凍してできたフォルダを以下のパスにコピーする。
jlisting.sty は listings のディレクトリに放り込む。
インストールの場所を変えている場合は適宜読み替える。

C:\tex\share\texmf\ptex\listings


コマンドプロンプトを開き、

> cd C:\tex\share\texmf\ptex\listings
> platex *.ins
> mktexlsr

と打ち込む。ここまででインストール完了。

Mac でのインストール

~/texmf/ptex/platex/listings

というパスになるようにディレクトリを掘って
そこにファイル一式をコピーする。
あとは Windows と同じように以下のコマンドでインストール完了。

$ cd ~/texmf/ptex/platex/listings
$ platex *.ins
$ mktexlsr


環境は以下。

jlistingの使い方

Latexファイルの上の方で

\usepackage{ascmac}
\usepackage{here}
\usepackage{txfonts}
\usepackage{listings, jlisting}
\renewcommand{\lstlistingname}{リスト}
\lstset{language=c,
  basicstyle=\ttfamily\scriptsize,
  commentstyle=\textit,
  classoffset=1,
  keywordstyle=\bfseries,
  frame=tRBl,
  framesep=5pt,
  showstringspaces=false,
  numbers=left,
  stepnumber=1,
  numberstyle=\tiny,
  tabsize=2
}

のように宣言する。


ここで

language=c

の部分で言語(C言語)を指定している。
ここを正しく指定するとキーワードの強調表示が行われる。
言語が特殊な場合は特に指定しなくてもよいし自分で定義してもよい。
定義の仕方はYamamoto's Laboratory LaTeX(ソースリストの書き方)を参照。
標準で対応している言語は

ABAP (R/2 4.3, R/2 5.0, R/3 3.1, R/3 4.6C, R/3 6.10)
ACSL Ada (83, 95) Algol (60, 68) Ant
Assembler (x86masm) Awk (gnu, POSIX)
bash Basic (Visual)
C (ANSI, Handel, Objective, Sharp)
C++ (ANSI, GNU, ISO, Visual) Caml (light, Objective)
Clean Cobol (1974, 1985, ibm) Comal 80 csh
Delphi Eiffel Elan erlang
Euphoria Fortran (77, 90, 95) GCL Gnuplot
Haskell HTML IDL (empty, CORBA) inform
Java (empty, AspectJ) JVMIS
ksh Lisp (empty, Auto) Logo make (empty, gnu)
Mathematica (1.0, 3.0) Matlab Mercury MetaPost
Miranda Mizar ML Modula-2
MuPAD NASTRAN Oberon-2 OCL (decorative, OMG)
Octave Oz Pascal (Borland6, Standard, XSC) Perl
PHP PL/I Plasm POV Prolog Promela Python R
Reduce Rexx RSL Ruby S (empty, PLUS) SAS
Scilab sh SHELXL Simula (67, CII, DEC, IBM)
SQL tcl (empty, tk) TeX (AlLaTeX, common, LaTeX, plain, primitive)
VBScript Verilog VHDL (empty, AMS) VRML (97) XML XSLT

だそうだ。


ソースコードを別ファイルにして取り込む場合は

\lstinputlisting[caption=キャプション,label=ラベル]
{ファイルパス}

とする。


ファイルに直接ソースコードを記述する場合は、

\begin{lstlisting}[caption=キャプション,label=ラベル]
   ソースコード
\end{lstlisting}

とする。


jlistingを使えば簡単に見栄えがよくなるので
内容が薄い文書に特にオススメ!

2008.01.09 追記

  • リンクを修正した
  • Mac 環境でのインストール方法を追記した