0番染色体

科学は全世界を照らす光である

ぼくのかんがえたさいきょうの相互参照 on LaTeX

LaTeX には文書中に出てくる章番号や式・図表の番号など “連番” の登場する箇所に \label 命令でラベリングを行い,これを別の箇所から \ref 命令で参照する相互参照機能が備わっています.これは大変便利な機能で,数式の美しさと並んで「LaTeX のよいところ」としてよく取り上げられます.

しかし,そんな LaTeX の相互参照も使っていると(特に大きな文書を作成する際に)少々面倒さを感じる場面があります.一つは「文書内で一意性のあるラベル名を考えること」です.見出し・式・図表など文書内に登場するあらゆる番号に,何とも被らないラベル名をいちいち考えるのは案外骨が折れます.章ごとに異なる人が執筆を担当しているというような場合にも,ラベル名の衝突を防ぐには何らかの工夫が必要になります.

あるいは複数のラベル箇所を参照したい場合に何度も \ref 命令を並べて書かなければならないケースがあり得ます.式番号に (1) のような括弧をつける書式を利用している場合など,周辺の決まった書式や記号をいちいち入力するのは冗長ですし,それらをベタ打ちしていると,例えば原稿を書き上げてから式番号に括弧を付けない方針に転換した場合などに修正がとても煩雑です.

そこで,LaTeX オリジナルの相互参照機能を拡張して名前空間やスコープといった概念を導入し,さらに参照する番号の種類ごとに書式を柔軟にカスタマイズ可能とするパッケージを作ってみました.

github.com

続きを読む