2009-02-17

nomentbl による Nomenclature

記号一覧をきれいに出したかったので導入。今回初めてちゃんと TeX の package の導入方法がわかった。


ダウンロードとインストール

nometbl のありか
http://www.ctan.org/tex-archive/macros/latex/contrib/nomentbl/

日本語の説明的ページ
http://www.biwako.shiga-u.ac.jp/sensei/kumazawa/tex/nomentbl.html


これは単体では動かない(マニュアルにも書いてある)。prerequisite として、nomencl パッケージと、longtable パッケージをインストールしておく。

インストールの仕方は、foo.dtx と foo.ins を落としてきて、端末 (Cygwin) から

  $ latex foo.ins

とやればいい、ということが今回はじめてわかった(そもそも端末で操作するのに昔は慣れていなかったからしょうがない)。こうすると foo.sty がでてくるので、これをいつもの

  C:\usr\local\share\texmf\tex\platex\mystyles

あたりに置いておけばいい、ようだ。

ただし今回は、nomencl.ins と nomentbl.ins からは、nomencl.ist と nomentbl.ist というファイルも生成される。このうち、nomentbl.ist を、 TeX ファイルと同じフォルダに入れておく。nomencl.ist は、いらないのでゴミ箱へ。


TeX ファイルへの記述

プリアンブル(\begin{document}より前のところ)に

  \usepackage{nomentbl}



  \makenomenclature

を書く。

あとは、文字を適当なところで定義する(title と同じで、その位置に書かれるわけではなく、キャッシュに入るだけ)

  \nomenclature{$M$}{質量}{}{}
  \nomenclature{$\mathbf{F}$}{外力}{}{}

最後に、Nomenclature を出力したい場所に、

  \printnomenclature

と記述すると、ここで初めて書かれる。別に定義した位置より前でも構わない(論文ならそういうことも多いだろう)。


WinShell の設定

コンパイルだけど、書いてるのがまだ WinShell なので、WinShell でやる。そのうち emacs に移行するつもりだけれど。設定は、「オプション > ユーザ指定プログラム」で、開いているエントリを選んで、
  • プログラム名 = テキトーに付ける。nomentbl とか。
  • exeファイル名 = C:\usr\local\bin\mendex.exe 的な感じ。DOSにもチェック。
  • コマンドライン = -s nomentbl.ist -o "%s.nls" "%s.nlo" でOK. これはマニュアルにある記述そのまま。
  • 右のチェックボックス = 好みで、「LaTeX を先に実行」にチェックしてもいい。
OKを押して設定を保存する(OKを押さないと保存されない!っぽい)。

コンパイルは、
  1. LaTeX compile
  2. mendex
  3. LaTeX compile
の順に行えばいい。「LaTeX を先に実行」っていうチェックは、要するに、この 1. を自動でやってくれるってことのようだ。ということは、nomentbl と dviout の設定の両方で「LaTeX を先に実行」にチェックを入れておけば、
  • Ctrl+Shift+Fn(F1とか、自分で割り当たやつ)
  • F7
の2回のタイプだけで、
  1. LaTeX compile
  2. mendex
  3. LaTeX compile
  4. DVI表示
までやってくれるということ。ちょっとだけ楽だ。
... と思っていたのだが、F7 だけじゃコンパイル(3番)がされてないっぽい... 間に F5 が必要なようだ。


Tips

どうもデフォルトではアルファベット順に並ぶようだ。並び方をいじるには、第一引数にアルファベット(数字も?)を入れればいいようだ:

  \nomenclature[aM]{$M$}{質量}{}{}
  \nomenclature[ZF]{$\mathbf{F}$}{外力}{}{}



-----
つまづき

なんか、

! Missing \endgroup inserted

ってすげー怒られて困ったんだけど、これは、記号の定義の時に

  \nomenclature{$M$}{飛翔体の質量}{}

と、{} がひとつ足りないのが原因だった。

  \nomenclature{$M$}{飛翔体の質量}{}{}

が正しい。なぜこうなったかというと、最初に nomencl.sty を導入したため。nomencl.sty は括弧が一組少ないので、

  \nomenclature{$M$}{飛翔体の質量}{}

でよかった。これをそのままにしていたのが悪かった。





Powered by ScribeFire.

No comments: