| ホーム ・ 研究内容 ・ コンピューター ・ 講義ノート ・ 学内限定 |
ソースリスト仕事柄、プログラムのソースリスト(プログラムリスト)を書くことが多い。リストをLaTeXで記述する方法を示します。今は、listings がお気に入りです。
目次lgrindインストール日本語を含まない場合は lgrind で良いが、そうでない場合は古川さんの jlgrind を使っている。windowsの人は jlgrind を使うのが良いでしょう。インストールの方法は、以下の通りです。
使い方C言語のソースをLaTeXのファイルへ変換C言語のソースファイル(hogehoge.c)をLaTeXのファイル(hogehoge.tex)への変換は、 $ lgrind -i -lc -o hogehoge.tex hogehoge.c とする。 日本語を含む場合lgrindを使ってソースコードを整形した場合、latex2htmlで日本語が文字化けす
ることがある。windowsの
$ nkf -s source.c > source_s.c $ jlgrind -i -lc source.c > source_s.tex $ nkf -e -d source_s.tex > source.tex このでき上がった source.texを使えば、日本語もきちんと処理される。 プリアンブル
本文リストをファイル(./program/source_c.tex)から取り込む場合、以下のように記述する。
LaTeX2HTMLLaTeX2HTMLについて説明している部分の「プログラムソースの記述のlgrind」を見てください。 listingslistingsは機能が豊富でマニュアルもしっかりしているので、今のお気に入りです。ただ、latex2htmlを通すとき、工夫が必要です。 インストールlistings.sty
$ unzip listings-1.3.zip 次のようなファイルができる。 README listings-1.3.ind listings-1.3.pdf lstdrvrs-1.3.dtx listings-1.3.dtx listings-1.3.ins lstpatch.sty $ platex listings-1.3.ins 次のようなファイルができる。 lstmisc.sty listings.cfg lstlang1.sty listings-1.3.ins listings.sty lstlang2.sty listings-1.3.log lstdoc.sty lstlang3.sty # cp *.sty /usr/share/texmf/ptex/listings # cp *.cfg /usr/share/texmf/ptex/listings # mktexlsr jlisting.styソースリストに日本語が含まれる場合、lisgings は問題がある。日本語とアルファベットの順序が入れ替わって役に立たなくなる。それを防ぐためには、jlisting.sty を使う必要がある。ここに、ファイルがありインストール方法も書かれている。それに従いインストールすれば良い。 使い方プリアンブルスタイルファイルと設定に関する記述を行う。私の例を、以下に示す。
\usepackage{listings, jlisting}
\renewcommand{\lstlistingname}{リスト}
\lstset{language=C,%
basicstyle=\footnotesize,%
commentstyle=\textit,%
classoffset=1,%
keywordstyle=\bfseries,%
frame=tRBl,framesep=5pt,%
showstringspaces=false,%
numbers=left,stepnumber=1,numberstyle=\footnotesize%
}%
本文ファイルから取り込む場合、以下のように記述する。
本文中に、リストを書く場合は、次のようにする。
LaTeX2HTMLLaTeX2HTMLについて説明している部分の「プログラムソースの記述のlistings」を見てください。 CASL IIのためのlistingsの設定3年生に基本情報処理技術者試験のためのアセンブラ言語CASL IIを教えている.講義ノートをLaTeXで作成しているので,ソースリストをlistingsで処理したくなった.そのために,プリアンブルにCASL IIの言語の定義を以下のように書く.
\lstdefinelanguage{CASL2}{
morekeywords={START,END,DS,DC,OUT,RPUSH,RPOP,LD,ST,LAD,%
ADDA,SUBA,SUBL,AND,OR,XOR,CPA,CPL,SLA,SRA,SLL,SRL,%
JPL,JMI,JNZ,JZE,JOV,JUMP,PUSH,POP,CALL,RET,SVC,NOP,%
GR0,GR1,GR2,GR3,GR4,GR5,GR6,GR7},%
morecomment=[l]{;},%
morestring=[b]",%"
}
C言語同様に,処理の仕方のパラメーターを以下のように書けばよい.ただし,CASL IIは全て大文字で書くため,デフォルトの文字間隔だと詰まりすぎて見苦しい.basewidthを少し広くしている.
\renewcommand{\lstlistingname}{リスト}
\lstset{language=CASL2,%
basicstyle=\footnotesize,%
commentstyle=\textit,%
classoffset=1,%
keywordstyle=\bfseries,%
basewidth={0.8em,0.55em},%
frame=tRBl,framesep=5pt,%
showstringspaces=false,%
numbers=left,stepnumber=1,numberstyle=\footnotesize%
}%
last update:2009/03/03 16:04:30 |