天地有情

[LaTeX] lgrind --- LaTeXでソースコードの美しいリストを生成

§1 はじめに

更新版: 2017/04/25

lgrind は LaTeXでソースコードの美しいリストを生成します.
同種のものとして,本blog で既に紹介した minted や listings などがあります.

http://konoyonohana.blog.fc2.com/blog-entry-106.html minted

http://konoyonohana.blog.fc2.com/blog-entry-120.html listings

1.1 インストール

TeXLive/W32TeX などには標準でインストールされています.

1.2 マニュアル

コマンドラインから texdoc lgrind を実行するか,
上記に同梱の lgrind.pdf をお読み下さい.

§2 使い方

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

2.2 ファイル構成

lgrindパッケージは3つのファイルで構成されています.

● lgrind.exe --- 実行ファイルです.ソースコードファイルを使用して,LaTeX ファイルに変換します.

● lgrind.sty --- 環境やマクロを提供します.

● lgrindef --- 文字列からのコメントやキーワードを伝えるために必要な情報が含まれています.

2.3 その他

(1)例えば,C言語のソースファイル(foo.c)をLaTeXのファイル(foo.tex)への変換は,

   lgrind -i -lc sample.c > sample.tex

(2)上記の sample.tex を取り込む main.tex を作成します.この中に

   \lgrindfile{sample.tex} の一行を記述します.

(3)pdflatex main.tex としてコンパイルします.



§3 サンプル

3.1 c言語の例


(1)foo.c の作成
==============================
int main(){
printf("Hello World\n");
return 0
}
==============================

(2)foo.tex への変換

lgrind -i -lc foo.c > foo.tex

(3)main-c.tex の作成(foo.tex の取り込み)と コンパイル

   コンパイル: pdflatex main-c

   結果:

lgrind01.png

【簡単な説明】

1行目:欧文クラスを使う.(日本語には対応していません)
2行目:lgrind.sty を登録する.
4行目:行番号は1からの一貫番号とする.
5行目:行番号は左端に置く.
6行目:プロセス名は任意である.ここでは[Sample]としてある.
7行目:\lgrindfile{foo.tex}でファイルを取り込む

3.2 Fortranの例

(1)fort.f の作成
========================
program calc
integer i,j,k
real answer
i=5
j=2
k=4
answer=i/j*k
print *,answer
end
========================

(2)fort.tex への変換

lgrind -i -lc fort.f > fort.tex

(3)main-f.tex の作成(fort.tex の取り込み)と コンパイル

   コンパイル: pdflatex main-f

   結果:

lgrind02.png

§4 参考(マニュアルから抜粋)

4.1 lgrindコマンド詳細

lgrind [-s] [-e] [-i] [-o <file>] [-n] [-c] [-t<width>] [-h <header>]
[-v <varfile>] [-d[!] description file] [-l<language>] [name|-]

-e process a LATEX-file for embedded text.
-i process for inclusion in a LATEX-document.
- take input from standard input.
-o redirect output.
-n don’t boldface keywords.
-a don’t treat @, etc. specially in LATEX.
-c don’t treat @, etc. specially in comments.
-t change tab width (default 8).
-h specifies text to go on the left side of every output page (default is none).
-v take variable substitution strings from file.
-d specifies the language definitions file.
-d! same as -d, except the change is permanent (modifies executable)
-l specifies the language to use.
-s shows a list of currently known languages.

4.2 対応言語

Ada    LATEX     RATFOR
Asm    LDL      RLaB
Asm68   Lex      Russell
BASIC   Linda     SAS
Batch   Lisp(Emacs)  Scheme
C     MASM      sh
C++    MATLAB     SICStus
csh    ML       src
FORTRAN  Mercury    SQL
Gnuplot  model     Tcl/Tk
Icon    Modula2    VisualBasic
IDL    Pascal     VMSasm
ISP    PERL      yacc
Java    PostScript
Kimwitu++ PROLOG

(EOF)

スポンサーサイト
  1. 2015/09/27(日) 07:08:47|
  2. LaTeX Tools