表紙
ソースリスト
図
公開情報
古い情報
|
LaTeXプログラムのソースリスト仕事柄,プログラムのソースリスト(プログラムリスト)を書くことが多々あります.主にドキュメントの作成には,LaTeXを利用しており,その中でソースリストの処理の仕方を示します.LaTeXでのソースリストの処理にはいろいろな方法がありますが,スタイル「listings」がお気に入りです. 目次listingslistingsは機能が豊富でマニュアルもしっかりしているので,今のお気に入りです.ただ,latex2htmlを通すとき,工夫が必要. マニュアル類は,ここからダウンロードできます. インストールlistings.stytexlive では,自動的にインストールされるので,以下の設定は不要でしょう.
jlisting.styソースリストに日本語が含まれる場合,lisgings は問題があります.日本語とアルファベットの順序が入れ替わって役に立たなくなるので気をつけてください.jlisting.sty を使えば,この問題は解決できます.ただし,texlive でも jlisting.sty はインストールされませんので,設定が必要です. Listings - MyTeXpert に,ファイルがあります.「jlisting.sty.bz2」をダウンロードします.そして,それを解凍します. $ tar jxf jlisting.sty.bz2 解凍してできあがったファイル(jlisting.sty)を,適当なディレクトリーに入れるだけです.Tex Live の場合,ディレクトリー「/usr/local/texlive/texmf-local/tex/latex/jlisting/」です. $ sudo mkdir /usr/local/texlive/texmf-local/tex/latex/jlisting/ $ sudo cp jlisting.sty /usr/local/texlive/texmf-local/tex/latex/jlisting/ $ sudo chmod 644 /usr/local/texlive/texmf-local/tex/latex/jlisting/jlisting.sty 最後に,設定を反映させます. $ sudo su - # mktexlsr 以上で設定は,完了です.この jlisting.styは,listings.styと併用して使います.したがって,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% }% 本文ファイルからソースリストを読み込む場合,以下のように記述します. \lstinputlisting[caption=ここにキャプションを書きます,label=参照するときのラベル名] {パスとファイル名} 本文中に,リストを書く場合は,次のようにします. \begin{lstlisting}[caption=ここにキャプションを書きま す,label=参照するときのラベル名] ここにソースリストを書く \end{lstlisting} 出力できるプログラミング言語次の表「設定可能な言語」に示すように,かなり多くのプログラミング言語に対応しています.もし,この中にない言語を使いたい場合には,(1)テキストをそのまま表示する,(2)言語設定を自分でする—というような方法を使うことができます.
プレーンテキストを出力する方法プレーンテキスト(plain text)を出力したければ,言語設定を空にします.これは,かなり便利で,データなどをかっこよく表示することに重宝しています.また,特殊な言語のリストを表示するのにも役立ちます. \lstset{language=} 折り返しについて1行が長い場合,折り返しもできます.それらに関する設定を示します.いまは,マニュアルからの引用にとどめますが,時間があるときに,もう少し詳しい説明を追加する予定です.
LaTeX2HTMLとの関係LaTeX2HTMLについて説明している部分の「プログラムソースの記述のlistings」を見てください. CASL IIのためのlistingsの設定3年生に基本情報処理技術者試験のためのアセンブラ言語CASL IIを教えています.講義ノートをLaTeXで作成していますので,ソースリストをlistingsで処理したくなりました.プリアンブルに言語の定義を以下のように書けば,CASL IIのリストを listings で処理できます. \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% }% 拡張lstlangs.sty に記述する方法プログラミング言語の仕様が変更され,コマンドが追加あるいは削除されることがあります.その場合は,listings のスタイルファイルを追加する必要があります.プログラミング言語のリストを出力するために必要なコマンドのリストなどの情報は,インストールしたディレクトリーの lstlang1.styとlstlang2.sty,lstlang3.styに書かれています.新言語の場合,lstlang0.styにその内容を記述します.詳細は,マニュアル(listings.pdf)の p.41とp.46に記載があります. lgrindインストール日本語を含まない場合は lgrind で良いが,そうでない場合は古川さんの jlgrind を使っている.windowsの人は jlgrind を使うのが良いでしょう.インストールの方法は,以下の通りです.
使い方C言語のソースをLaTeXのファイルへ変換C言語のソースファイル(hogehoge.c)をLaTeXのファイル(hogehoge.tex)への変換は, $ lgrind -i -lc -o hogehoge.tex hogehoge.c とする. 日本語を含む場合lgrindを使ってソースコードを整形した場合,latex2htmlで日本語が文字化けすることがある.windowsの
このでき上がった source.texを使えば,日本語もきちんと処理される. プリアンブル\usepackage{lgrind} 本文リストをファイル(./program/source_c.tex)から取り込む場合,以下のように記述する. \LGnuminterval=1 % 行番号は各行に \LGleftnumtrue % 行番号は左端 \lgrindfile{program/source_c.tex} LaTeX2HTMLLaTeX2HTMLについて説明している部分の「プログラムソースの記述のlgrind」を見てください. ページ作成情報参考資料更新履歴
|