LaTeX で論文などを書いているとき、参考文献の著者名のファーストネーム (first name) をイニシャルにする方法のメモ。
LaTeX の参考文献の管理には BibTeX を使います。
*.bib ファイルの個々のエントリは例えば以下のようになります。
@inproceedings(Sassano2004, author={Manabu Sassano}, title={Linear-Time Dependency Analysis for {J}apanese}, booktitle={Proc. of COLING 2004}, year={2004}, pages={8--14} )
このとき、もちろん *.bst の内容によりますが、例えば以下のように出力されます。
Manabu Sassano. 2004. Linear-time dependency analysis for Japanese. In Proc. of COLING 2004, pages 8-14.
参考文献のリストが長くなってくると、それだけでかなりのスペースを使う場合が出てきます。国際会議などページ数の制限がきつい場合は少しでも節約したくなります (指定されたスタイルに合致しているか確認して下さい)。
先の例を以下のようにしたいわけです。
M. Sassano. 2004. Linear-time dependency analysis for Japanese. In Proc. of COLING 2004, pages 8-14.
一つのやり方は、直接 *.bib ファイルを修正してしまうことです (上の例では Manabu を M. に修正する)。でもこれはかなり強引です。修正箇所も多くなってしまいます。
*.bst ファイルを修正する方法だと、参考文献の全ての項目でファーストネームをイニシャルにすることができます。
指定された *.bst を修正用にコピーします。例えば foo.bst なら myfoo.bst にコピーして、myfoo.bst を修正します。myfoo.bst の以下のような場所を探します。
FUNCTION {format.names} ... { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := ...
ff がファーストネーム、ll がラストネームのフォーマットを指定している部分です。これを以下のように書き換えて保存します。
... % { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := { s nameptr "{f.~}{v.~}{ll}{, jj}" format.name$ 't := ...f. で、ファーストネームがイニシャル + ピリオドになることを表しています。
最後に、 foo.bst の代わりに myfoo.bst を読み込むように指定して、latex の処理をやり直します。
下記のページを参考にさせていただきました。ありがとうございました。
Home | Sitemap | Notes | Search