辞書的LaTeX:lexikonパッケージの使い方的なもの備忘録
研究室の所属してからというものの、新たな言葉や、論文でも「この分野ではこういう意味で使われるぜ!」案件が多すぎたため、辞書を作ろうとした。
そこでTeXを使って自分用辞書を作ろうとしてパッケージを探したところ「lexikon」パッケージを発見した。
しかしこのlexikonパッケージ、日本語の解説がほぼないどころか公式のDoccumentationがドイツ語な上、3ページしかない、しかも最終更新が2010年とかだったので自力でマクロを解読して使い方をここにまとめておく。
以下目次。
lexikonパッケージとは?
まずここにおおもとのパッケージのDoccumentationのソースを貼り付けておく。
ここにあるようにDoccumentation(lexikon-doc.pdf)は「ここ修正したよ~」という内容が含まれいるが、使用例のファイル(lexikon.tex)は最終更新が1999年である。
なおこのパッケージは多言語の辞書を作成するためのマクロである。詳しいソースコードはフォルダ中の"lexikon.sty"にある。
ちなみにこのリンクは最終更新が古すぎるからか、ブラウザによってはダウンロードを拒否される。一応山形大学がミラーを用意していたのを見つけたのでここに貼り付けておく。
具体的な使い方
このパッケージはTeXLiveに標準搭載されているので、相当古いバージョンでなければ他のパッケージと同様\usepackage{lexikon}とすれば各種コマンドは利用できる。(もし使えない場合は標準搭載されていない可能性があるので自力でstyファイルを導入する必要がある。私は2019年にDLをしたバージョンのままであったが普通に使えた。)
主なコマンドは3つである。
\pagestyle{dictheadings}
これは辞書っぽいヘッダーを追加するためのコマンドである。もちろん無くても機能するが辞書っぽく丈夫に「このページには〇〇という単語から〇〇という単語まで載ってるよ」とかあったほうがそれっぽいでしょう。
スタイル的にはこんな感じになる。こういうデザインに切り替えたいところからこのコマンドを実行すれば多分うまくいく。
なお、styのマクロ内には
とあるが、マクロ内にはなぜかscrpageとfancyhdrが組まれていないのでこれらを入れても上手く動かない。
\dictchar{任意の頭文字}
これは見出し文字を設定するためのコマンドである。このパッケージは自動的に用語を並べてくれるわけではないので自力で並べる必要がある。
見出し語を追加したい任意の位置で好きな見出しを追加できる。
\dictentry
さて、これが今回の主役である。これは言葉を追加するためのコマンドである。もともとこのパッケージが多言語辞書のためのパッケージであることもあり、その仕様はいかにも辞書らしい形式である。
\dictentry{単語}{発音記号}{斜体字の追記}{ブロック体の追記}
{翻訳後の単語}{発音記号}{斜体時の追記}{ブロック体の追記}
一段目が左側に反映される部分、二段目が右側に反映される部分である。コマンドとしては8つの要素から成るのでもしこの中で反映させたくないものがある場合は中に何も書かずに中括弧のみを書く必要がありそう。
この中で斜体字のところは本来品詞や名詞の性別を一つの文字で表すために導入されている箇所であるので、そもそもココに長文を書くことは想定されていない。(具体例参照。)
なお、注意として、2つ目、6つ目のカッコ内の発音記号はマクロを読む限りこの中でのみipaというパッケージを呼び出していたが、発音記号のパッケージは現在tipaで行っているからかうまく動作しない。事実、ipaというパッケージ自体が検索にヒットせず見当たらない。もし発音記号を導入したいのであればlexikon.styのマクロ中の
\ifphonetic
\RequirePackage{ipa}
\fi
を
\ifphonetic
\RequirePackage{tipa}
\fi
や
\ifphonetic
\RequirePackage{phonetic}
\fi
のように変更することでおそらくうまく動作すると思う。(ちなみに私はうまくいかなかった。多分パッケージの呼び出しがうまくできていない。)
次に使用例、どんな感じで反映されるのかを見ていこう。
まずここにコードを貼る。(前述の理由で発音記号は無視。)
\dictentry{Asian crested ibis}{}{Nipponia nippon}{Nipponia nippon}
{朱鷺のこと.}{}{やっぱりNipponの鳥って感じ~}{最近Nipponから消えかけたけどなんとかなったね}
また、これは画像挿入も可能。
\dictchar{B}
\dictentry{Breaking News}{}{}{\includegraphics[scale=0.5]{TETS.png}}
{なんかすごい速報のこと図\ref{ZERO}参照.}{}{}{\includegraphics[scale=0.5]{TETS.png}}
\begin{figure}[h]
\centering
\includegraphics[scale=0.7]{TETS.png}
\caption{適当に選んだ画像}\label{ZERO}
\end{figure}
注意点として、このパッケージの記述が二段組扱いなのでdictentry内でcaptionやlabelをつけるないしはbegin{figure}を入れると怒られが発生する。
おまけ:目次に追加(追記:2022/05/28)
辞書として使用する場合、一般の物理辞書は側面に頭文字のラベルがついているためかなり探しやすいが、この場合そうもいかない。このままコンパイルすると目次を作ったとしても各項目がsectionのように独立しているわけではないので頑張ってスクロールしなければならなくなる。
そこで目次を作ったときに何ページにその頭文字のリストがあるのかを追加するために、\addcontentslineを利用する。
本来このコマンドは\section*{}としてセクション番号を飛ばしたりしたときに目次に追加されるように出す指示の一部なのであるが、\dictcharのあとにいい感じに入れておくとその頭文字のラベルをセクションなどと同じように取り扱ってくれる。例えばセクションとしてDictionaryを上の階層に作っておき、辞書の頭文字を次のようにsubsectionとして登録すると、
\addcontentsline{subsection}{B}
\dictchar{B}
このような目次として反映される。
追記:2022/05/28
先程自分用PDFを作成した結果を眺めているときに気がついたが、ハイパーリンクを導入している場合、この方法で目次に追加をすると目次をクリックしたときに正常な位置に飛ばない(より正確には一番最初に追加したaddcontentslineにしか飛ばない)という欠陥を発見した。ちなみに目次のページ数は正常なのでハイパーリンクが正常に機能していないことがわかる。
対処法としては\phantomsectionの利用である。よくわからないがコマンド名からしておそらくダミーのsectionを用意することで強制的に区切りをつけるということだろう。なので上のコードをハイパーリンク用に修正すると、
\phantomsection
{\dictchar{A}
\addcontentsline{toc}{subsection}{A}
参考
今回の参考ページ
lexikon配布ページ
lexikonミラー
唯一の日本語解説
ipaパッケージについて
なにか問題があればお伝え下さい。
良いTeXライフを。
この記事が気に入ったらサポートをしてみませんか?