LaTex プログラムコードを載せる時のプラグインListingsのインストール
概要
論文の中でプログラムコードを載せたい。けど既存のパッケージ`verbatim`じゃ綺麗にコードを載せられない。シンタックスハイライトで載せられたらな〜と思っていたらListingsというパッケージで可能だということを知り、インストール・設定したのでメモ。
既存のエントリーとあまり相違はないと思いますが、自分のために。または誰かの参考になれば幸いであります。
エントリーの流れ
- ダウンロード
- インストール
- 設定〜記述方法〜例
環境
texのインストール環境は以前に書いたエントリー d:id:Kshi_Kshi:20110111 の通り。
各自読み替えていただければと思います。
OS | Windows 7 Professional |
System | 32 ビット オペレーションシステム |
texインストール場所 | C:\tex |
ダウンロード
jlisting
Listingsはそのままでは日本語に対応していないとのこと、吉永徹美氏が作成されたマクロ jlisting を用います。ありがたやありがたや。
- jlisting.sty.bz2 (2011/02/19時点)
- 詳しくは -> MyTeXpert | Listings
インストール作業
準備
さきほどダウンロードした2つのファイルを解凍。
-
- listings.zip -> listingsディレクトリ
- jlisting.sty.bz2 -> jlisting.styファイル
解凍した jlisting.styを listingsディレクトリにいれる。
listingsディレクトリの中身はこんな感じ。
C:. jlisting.sty listings.dtx listings.ind listings.ins listings.pdf lstdrvrs.dtx Makefile README
このディレクトリを以下の場所に配置。
C:\tex\share\texmf\tex\latex\listings
これでインストール準備終了。
※ 補足
プラグインを置く場所は各自の環境によって異なると思われる。参考サイトは以下のディレクトリに配置していたが、私の環境では上手くいかなかった。
C:\tex\share\texmf\ptex\listings
インストール
cmdを起動し、tex本体をインストールした時に入れたインストーラ(platex)をを用いてプラグインをインストール。
> cd C:\tex\share\texmf\tex\latex\listings C:\tex\share\texmf\tex\latex\listings> platex *.ins C:\tex\share\texmf\tex\latex\listings>mktexlsr
※ (パスが通っていない場合はフルパスで指定)
C:\tex\share\texmf\tex\latex\listings> C:\tex\bin\platex *.ins C:\Users\kenji> C:\tex\bin\mktexlsr
以上でインストール作業は終了。
- インストールログ
C:\tex\share\texmf\tex\latex\listings> platex *.ins This is pTeXk, Version 3.1415926-p3.1.11 (sjis) (Web2C 2010) restricted \write18 enabled. (./listings.ins pLaTeX2e <2006/11/10>+0 (based on LaTeX2e <2009/09/24> patch level 0) Babel <v3.8l> and hyphenation patterns for afrikaans, ancientgreek, arabic, arm enian, basque, bulgarian, catalan, pinyin, coptic, croatian, czech, danish, dut ch, ukenglish, usenglishmax, esperanto, estonian, farsi, finnish, french, galic ian, german, ngerman, swissgerman, monogreek, greek, hungarian, icelandic, assa mese, bengali, gujarati, hindi, kannada, malayalam, marathi, oriya, panjabi, ta mil, telugu, indonesian, interlingua, irish, italian, kurmanji, lao, latin, lat vian, lithuanian, mongolian, mongolianlmc, bokmal, nynorsk, polish, portuguese, romanian, russian, sanskrit, serbian, slovak, slovenian, spanish, swedish, tur kish, turkmen, ukrainian, uppersorbian, welsh, loaded. (c:/tex/share/texmf/tex/latex/base/docstrip.tex Utility: `docstrip' 2.5d <2005/07/29> English documentation <1999/03/31> ********************************************************** * This program converts documented macro-files into fast * * loadable files by stripping off (nearly) all comments! * ********************************************************** ******************************************************** * No Configuration file found, using default settings. * ******************************************************** ) Generating file(s) ./listings.sty ./lstmisc.sty ./lstdoc.sty ./lstdrvrs.ins ./l istings.cfg Processing file listings.dtx (kernel) -> listings.sty (misc,0.21) -> lstmisc.sty (doc) -> lstdoc.sty File listings.dtx ended by \endinput. Lines processed: 16515 Comments removed: 11670 Comments passed: 11 Codelines passed: 4737 Processing file lstdrvrs.dtx (install) -> lstdrvrs.ins (config) -> listings.cfg File lstdrvrs.dtx ended by \endinput. Lines processed: 6377 Comments removed: 1553 Comments passed: 271 Codelines passed: 4371 (./lstdrvrs.ins Generating file(s) ./lstlang1.sty ./lstlang2.sty ./lstlang3.sty Processing file lstdrvrs.dtx (lang1) -> lstlang1.sty (lang2) -> lstlang2.sty (lang3) -> lstlang3.sty File lstdrvrs.dtx ended by \endinput. Lines processed: 6377 Comments removed: 1553 Comments passed: 271 Codelines passed: 4371 ) * * You probably need to move all created `.sty' and `.cfg' * files into a directory searched by TeX. * * And don't forget to refresh your filename database * if your TeX distribution uses such a database. * Overall statistics: Files processed: 3 Lines processed: 29269 Comments removed: 14776 Comments passed: 553 Codelines passed: 13479 ) No pages of output. Transcript written on listings.log. C:\tex\share\texmf\tex\latex\listings>mktexlsr mktexlsr: Updating C:/tex/share/texmf-local/ls-R... mktexlsr: Updated C:/tex/share/texmf-local/ls-R. mktexlsr: Updating C:/tex/share/texmf/ls-R... mktexlsr: Updated C:/tex/share/texmf/ls-R. mktexlsr: Done.
Listingsの設定,記述方法,例〜出力結果
設定例
以下私の設定例。
% Listingsの設定 \usepackage{ascmac,here,txfonts,txfonts} \usepackage{listings,jlisting} \usepackage{color} \lstset{ breaklines = true, language=Python, basicstyle=\ttfamily\scriptsize, commentstyle={\itshape \color[cmyk]{1,0.4,1,0}}, classoffset=1, keywordstyle={\bfseries \color[cmyk]{0,1,0,0}}, stringstyle={\ttfamily \color[rgb]{0,0,1}}, frame=tRBl, framesep=5pt, showstringspaces=false, numbers=left, stepnumber=1, numberstyle=\tiny, tabsize=2, }
記述方法
-
- 直接載せる場合
\begin{lstlisting}[caption=キャプション,label=ラベル] 〜〜〜プログラム〜〜〜 \end{lstlisting}
-
- 別ファイルを読み込む場合
\lstinputlisting[caption=キャプション,label=ラベル] {プログラムまでのパス}
参考
まとめ
シンタックスハイライトって素晴らしいですね。私の書いた芳しくない論文でも綺麗にコードが載っているだけでなんとなくグレードが上がった気になります。