編集メニュー > 新規作成 編集 コピー 名前の変更 凍結 アップロード 添付ファイル一覧 バックアップ

bibからhtmlへ

文献リストを簡単にhtmlできるかを模索中。 以下はとりあえずの方法。

bibtexファイル

論文のページからbibtexのファイルをダウンロード。 必要なものがそろったら

cat *.bib >> list.bib

として1つのファイルにまとめる。 (作り直すときにはlist.bibを消しておく。)

bblファイルの作成

こんなtexを作ってlatex,bibtexを走らせてbblを作成。

\documentclass[a4j, 12pt]{article}
\pagestyle{empty}%ページ数を印字しない。
\begin{document}
\nocite{*} % データベースの中身を全部表示する
%%%%%%%%%%%%%%%%%%%%%%
\bibliographystyle{unsrt3}
\bibliography{list}%文献データベース
%%%%%%%%%%%%%%%%%%%%%%
\end{document}

fileunsrt3.bstは自分で改造したもの。好みに合わせて適当に編集。 bstファイルの編集にはここを参考にしました。

bbl2html.awk

次にどこかに転がっているbbl2html.awkをダウンロードしてくる。 そのままではいまいち変換がうまくいっていなかったので、以下のように修正し、 bbl2html2.awkとして保存。

  # some trivial math
  userfind["math"]    = "([^\\\\])\\$([^\\$]*)\\$";
# original
#  userreplace["math"] = "\\1<var>\\2</var>";
#modified
  userreplace["math"] = "\\1\\2";
  # for super and subscripts:
## original >>
##  userfind["math.sub"]    = "([^\\\\])(\\$|<var>)(.*)_([a-zA-Z0-9]|{.*}|\\\\[\
a-zA-Z]+)([^\\$]*)(\\$|</var>)";
##  userreplace["math.sub"] = "\\1<var>\\3<sub>\\4</sub>\\5</var>";
##  userfind["math.sup"]    = "([^\\\\])(\\$|<var>)(.*)\\^([a-zA-Z0-9]|{.*}|\\\\
\[a-zA-Z]+)([^\\$]*)(\\$|</var>)";
##  userreplace["math.sup"] = "\\1<var>\\3<sup>\\4</sup>\\5</var>";
##<<
## modified >>
userfind["math.sub"]="(\\$|)([0-9a-zA-Z ]*)_{([0-9a-zA-Z+\\-, ]+)}(\\$|)";
userreplace["math.sub"] = "\\2<sub>\\3</sub>";
#                     1     2                  3                    4
userfind["math.sup"]="(\\$|)([0-9a-zA-Z ]*)\\^{([0-9a-zA-Z+\\-, ]+)}(\\$|)";
userreplace["math.sup"] = "\\2<sup>\\3</sup>";
#                        1     2                 3                      4
userfind["math.supsub"]="(\\$|)([0-9a-zA-Z]*)\\^{([0-9a-zA-Z+\\-, ]*)}_{([0-9a-\
zA-Z])}(\\$|)";
userreplace["math.supsub"] = "\\2<sup>\\3</sup><sub>\\4</sub>";
#
userfind["math.doi"]="DOI:(DOI:)?[ ]*(.+)";
userreplace["math.doi"] = "DOI:<a href=http://dx.doi.org/\\2>\\2</a>";
##<<

これで作成した文献リストはこんなんです。 APSやElsevierのタイトルは上付きになっていなかったりと微妙。

以下のようなスクリプトでbblファイルを作成しておくと便利。

rm -f list.bib list.aux list.bbl list.blg list.dvi list.html list.log
cat bib/*.bib >> list.bib
platex list.tex
bibtex list
platex list.tex
platex list.tex
./bbl2html2.awk list.bbl > list.html