bibTeXの変換について

bibTeXの変換について

- y . の投稿
返信数: 2
TeX Wiki の 「BibTeX関連ツール」を拝見した者です.

Lead2Amazon はAmazonの商品から bibTeX を取得することができますが,例えばある書籍の「@book」における任意項目の「price」や「isbn」は表示されません.

既存の出力項目は「author または editor, title, publisher, year」です.

任意項目を出力する方法はあるのでしょうか.

また,多く項目を出力した場合,参考文献は見づらいものになると思います.

そこで,表形式で

[列:isbn, title, publisher, year, etc]

のように出力する方法はあるのでしょうか.

よろしくお願いします.
y . への返信

Re: bibTeXの変換について

- S T の投稿
priceやisbnを論文中の文献リストに表示するかしないかは文献スタイルファイル(*.bst)が決めています。従って、論文中の文献リストの表示方法を独自のものにしたければ、自分でbstファイルを開発する必要があります。bstファイルの書き方は、萩平先生の解説 http://www.med.osaka-u.ac.jp/pub/anes/www/html/manual/bibtex.html を参照されてはいかがでしょうか。

もし、論文中で引用されているか否かに関係なく、bibファイルにある@bookの情報を取り出したいだけなら、bibtexを使う必要はありません。bibファイルから「表形式のisbn, title, publisher, year, etc」を出力するスクリプトを書いて処理すればOKです。スクリプト言語は何でもよいですが、例えば、perlスクリプトを日頃から書いている人なら、Text::BibTeXを利用すると、自由自在にbibファイルを扱えます。
例えば、test.bibという名前のbibファイルを処理するなら、

#!/usr/bin/perl
use strict;
use Text::BibTeX;
my $bibfile = new Text::BibTeX::File 'test.bib' # open file
or die "test.bib: $!\n";
my $entry;
print '\begin{tabular}{llll}';
while (my $entry = new Text::BibTeX::Entry $bibfile)
{
next unless $entry->parse_ok;
print $entry->get ('isbn'), "&";
print $entry->get ('title'), "&";
print $entry->get ('publisher'), "&";
print $entry->get ('year'), "\\\\\n";
}
print '\end{tabular}';

こんな感じで書いていけばよいと思います。上記は@bookかどうかを判定していませんので、必要に応じて追加して下さい。
S T への返信

Re: bibTeXの変換について

- y . の投稿
S T さん,

詳細な説明,ありがとうございます.

「独自 bst ファイルの開発」及び,「スクリプトによる出力」を実践したいと思います.