天地有情

LaTeX] listings --- プログラミング言語やソースリストなどの取り込み

listings --- プログラミング言語やソースリストなどの取り込み

§1 はじめに

listings に対応する類似のスタイルファイルには minted や fancyvrb など多数存在しますが,
機能の豊富さから listings.sty に着目しました.

以下はサンプルをもとに,代表的な使い方を示します.

1.1 インストール

TeXLive/W32TeX などには標準でインストールされていますので,インストール作業は必要ありません.
すぐに利用できる状態にあると思われます.

1.2 マニュアル

コマンドラインから texdoc listings を実行してください.

§2 LaTeX2e 文書での指定方法

2.1 書式

プリアンブルに
  \usepackage{listings}
  を記述します.

2.2 テンプレート

lst01.png

■ クラスファイルは ltjsarticle を使っていますが,j(s)article でも構いません.

■ lstlisting 環境 (\begin{lstlisting} ~ \end{lstlisting})内にソースリストなどを記述します.

■ オプションなどは \lstset{..., ..., ...} にカンマで区切って複数指定できます.
  なお,オプションが少ないときは,\begin{lstlisting}[options] ~ でも構いません.

2.3 コンパイルの仕方
(クラスファイルが ltjsarticle の場合)

  luajitlatex foo.tex
  または
  lualatex foo.tex

2.4 コンパイルの結果
  正しくコンパイルできたら foo.pdf が生成されます.

2.5 インラインコマンドの紹介

LaTeX コマンド \verb はそのまま code snippets(断片)を植字します.
新しいコマンドの \lstinline も,コードをきれいにプリントします.

Example: \lstinline!var i:integer;!

感嘆符(!)で文字列をサンドイッチしていますが,他の任意のシンボルに置き換えることができます.
たとえば,\lstinline$var i:integer;$

§3 サンプル集

よく利用されそうなオプションを使ってみました.

(1)単純な例

lst02.png

オプション language=, はプログラミング言語のときに指定します.サポートされている言語は末尾の
(§4 参考1:事前定義されているプログラム言語)を参照して下さい.この例では Fortran77 です.
単なるソースリストの場合はlanguage=, は不要です.

オプションの一覧は末尾の(§5 参考2:コマンド & オプション一覧)を参照して下さい.

(2)行番号を付加する

lst03.png

オプション numbers=,numberstyle=,numbersep=, などで行番号の付加ができます.

(3)行番号をアレンジする  
オプション [firstnumber=100] を設定すれば,先頭行は 100 から付加されます.
  最後の番号からの継続したければ,[firstnumber=last] を指定します.

lst03A.png

(4)フレームで囲む

オプション frame=, で外枠の付加ができます.
フレームの種類は§5 の ■ Framesの項を参照して下さい.

■ frame=single(一重枠)

lst04.png

■ frame=single(部分的な二重枠)

lst05.png

■ frame=shadowbox および backgroundcolor=\color{pink}

(注) \usepackage{xcolor} を登録してください.

lst06.png

(5)日本語コメント

lst07.png

(6)指定行をプリントする

lst08.png

オプション [firstline=1,lastline=5] で5行をプリントします.

(7)外部ファイルを取り込む(f77.f)

lst09.png

(8)カラー表示

lst10.png

追加:注意事項

大切なことを書き忘れていました.

listings.sty のみを用いた場合,欧文と和文が混じると文字列の順序が反転する場合があります.
例えば,
----------------
\usepackage{listings}

\begin{lstlisting}
あああTESTいいい
\end{lstlisting}
----------------
の場合は結果として

----------------
あああいいい
TEST
----------------

のように表示されます.

これを是正したのが,jlisting で,listings と併用して,次のように使います.

----------------
\usepackage {listings,jlisting}

\begin{lstlisting}
あああTESTいいい
\end{lstlisting}
----------------

結果は
----------------
あああTESTいいい
----------------
のように正しく表示されます.

結論として和文が混在する listings の場合には jlisting を併用するようにします.

jlisting は http://mytexpert.osdn.jp/index.php?Listings からダウンロードできます.







4 参考1:事前定義されているプログラム言語(下線がデフォルト)

lst21A.png
lst21B.png



§5 参考2:コマンド & オプション一覧(右端がデフォルト)

lst31A.png
lst31B.png
lst31C.png
lst31D.png
lst31E.png
lst31F.png

(EOF)
スポンサーサイト
  1. 2015/06/01(月) 12:43:04|
  2. LaTeX Tools