Re: 引用文献の表示方法の変更

名前: takeda
日時: 2005-10-21 17:52:22
IPアドレス: 219.127.91.*

>>38709 book を例にとると、jplain.bst では以下のようなコードになっています。 FUNCTION {book} { output.bibitem author empty$ { format.editors "author and editor" output.check } { format.authors output.nonnull crossref missing$ { "author and editor" editor either.or.check } 'skip$ if$ } if$ new.block format.btitle "title" output.check [途中略] format.date "year" output.check new.block note output fin.entry } まず、year を前にもっていくのには format.date "year" output.check の行を前に持っていけばいいです。例えば、以下のように 変更します。 { output.bibitem author empty$ { format.editors "author and editor" output.check } { format.authors output.nonnull crossref missing$ { "author and editor" editor either.or.check } 'skip$ if$ } if$ format.date "year" output.check new.block format.btitle "title" output.check これで year が前にきますが、このままでは year の後に period が 付いてしまいます。 この period を除去したいということですが、これはその後にある format.btitle "title" output.check という部分の output.check 命令によって付け足されています (output.check は前のエントリーの後に period (かcomma) を付ける という機能を持っています)。 ですので、period をとるにはこの output.check という命令を 修正する必要があります。 とりあえず簡単にできる方法としては、まず FUNCTION {output.nonnull.noperiod} { 's := " " * write$ s } FUNCTION {output.check.noperiod} { 't := duplicate$ empty$ { pop$ "empty " t * " in " * cite$ * warning$ } 'output.nonnull.noperiod if$ } という二つの関数を新しく付け加え、 format.btitle "title" output.check の部分を format.btitle "title" output.check.noperiod と変更するという方法があります。 これで book のケースでは year の後に period が付かなくなります。 他のタイプでも同じように修正すればいいです。 なお、 Bartholomew, David J. (1996) The statistical approach to social measurement, Academic Press. のような並び順にしたいということでしたら、自分で修正しなくても 既存のスタイルファイルでそういう並び順で表示してくれるものが いくつかありますよ(例えば、私が経済学用に作ったjecon.bstという スタイルファイルでもそういう並び順になっています)。

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます)