jecon.bst + TeXのマクロによるカスタマイズ

jecon.bst をカスタマイズしながら利用すると、参考文献部分(と引用部分の一部)の形式をいろいろ変更できるのですが、変更できないところもあります。

よく聞かれるのが、参考文献の部分の各文献の2行目以降のインデント幅を変える方法です。例で説明すると、 jecon-alt.pdf の参考文献部分の1つ目の文献の「under」から始まる行、3つ目の文献の「http」から始まる行のインデント幅のことです。これは jecon.bst では変更できないです。というのは、このインデント幅を制御しているのは bst ファイルではなく、natbib.sty(natbib パッケージ)の方だからです。例えば、「各文献の 2 行目以降のインデントを「2文字分」に変更」したいときには TeX ファイルの方のプリアンプの

\usepackage{natbib}

の後に

\setlength{\bibhang}{2em}

と追加すればよいです。\bibhang は natbib パケージ内で定義されている長さです。

bst ファイルを変更することで参考文献部分の形式はかなり自由に変更できますが、引用部分については一部の例外を除いて変更が難しいです。変更可能なのは、例えば、複数人の著者を略す形式です。natbib で著者数が 3 人以上の文献を引用するとき、二人目以降の著者は略されてしまいます。「今井・宇沢・小宮・根岸・村上 (1972)」という文献が「今井他 (1972)」のように表記されるということです。

上の例では「他」として略していますが、これを例えば「ほか」ですとか、「ら」に変更することは可能です。しかし、引用する命令によって「ほか」と「ら」を使い分けるというようなことはできないです。例えば、\citet 命令を用いるときは「ほか」で略して、 \citep 命令で引用するときには「ら」で略すというようなことです。 これは jecon.bst に限った話ではなく、natbib.sty を前提とする bst ファイル全てに言えることだと思います。

しかし、bst ファイルの修正だけではなくTeX のマクロも使えば、上のような使い分けもできます。それには、まず、jecon.bst ファイルで次のように設定します。

FUNCTION {bst.and.others.jp}
{ "\andothers" }    % (default)

つまり、上で「他」と指定している文字列を「\andothers」という文字列に指定するというこです。

そして、TeX のファイルのプリアンプルに次のコードを追加します。

\usepackage{natbib}
\usepackage{ifthen}
\makeatletter
\DeclareRobustCommand\andothers{\ifthenelse{\boolean{NAT@swa}}{ほか}{ら}}
\makeatother

これで \citet 命令を用いるときは「ほか」で略して、\citep 命令で引用するときには「ら」で略すという動作になります。例 → jecon-alt.pdf。 上のコードでは \citet 命令が使われたときは \andothers 命令が「ほか」を出力し、\citep 命令が使われたときには \andothers が「ら」を出力するということになるようです。

サンプルのプログラム → jecon-alt.zip

私自身は TeX のマクロに詳しくないので、このようなカスタマイズができるとは知りませんでしたが、以前に TeX のマクロに詳しい方にこのようなやり方を教えていただきました。TeX のマクロの修正も可能ならもっと多様なカスタマイズができるのかもしれません。