f

アーカイブ

2014-02-24

BibTeXのbibファイルのMS Wordでの利用方法

日付:2014-02-24
LaTeXで使う文献データベースファイルとして.bibファイルがある。これはBibTeXという文献を引用したり、文献一覧を掲載するときに必要なソートなどを行ってくれるTeXの論文執筆にほぼ必須なツールで使う形式のファイルである。このbibファイルの形式は文献書誌情報の事実上のデファクトスタンダードとなっており、たいていの文献サイトではこの形式での書誌情報の出力に対応している。
bibファイルはテキストファイルであり、JabRefというようなbibファイルの文献管理ソフトを使うことで効率よく文献情報を収集でき、pdfと連携しているため検索により素早く文献を読むことができる。今では論文だけでなく、チラシやマニュアル、家電製品の説明書、電子書籍など大部分の電子マニュアル・本をこれで管理している。
LaTeXだけで完結しているならば問題ないが、MS WordやLibreOffice Writerで文章を書く必要に迫られる時があり、そうしたときに文献を引用するときにbibファイルのデータベースを活用できなくて困る。どうにかしてbibファイルをWordでも使えないかとここ数日調べ、ある程度まとまったのでここに記す。
Wordと連携させるには大きく3通りある。
  1. bibtex4wordによる連携
  2. XMLファイルにエクスポートしてwordの文献DBとして利用
  3. bibファイルをcsv形式に出力して表計算ソフトでマージ・ソート

9.2.1 bibtex4word

bibtex4wordというbibファイルをbibtexで処理した結果をWordに取り込むマクロが存在する。これを使ってbibファイルをWordでも活用できる
参考:
解説:
http://webtool.exblog.jp/6099738/
公式:
http://www.ee.ic.ac.uk/hp/staff/dmb/perl/index.html
9.2.1.1 インストール方法
  1. まず、MikTeXやTeX Live、W32TeXなどのディストリビューションによりTeXエンジン(正確にはbibexコマンド)を事前に導入しておく。
  2. bibexのある場所にPATHを通す。
    スタートメニュー > 設定 > コントロールパネル > システム > 詳細 > 環境変数 に以下のように記入すれば良い。
    ;C:\texlive\2013\bin\win32\
  3. 以下のサイトのbibtex4word.zipをクリックしてbibtex4wordマクロをDL・解凍
    http://www.ee.ic.ac.uk/hp/staff/dmb/perl/index.html
  4. 以下の場所(Windows 7の場合)にbibtex4word.dotを保存
    C:\Users\Senoo\AppData\Roaming\Microsoft\Word\STARTUP
  5. 以下の環境変数を必要に応じて設定(BIBEXEだけでおそらく十分)
    環境変数
    説明
    BIBEXE
    Bibtex4Wordが使うbibtex.exeのフルパス
    BIBFILE
    Bibtex4Wordが使う標準のbibファイル
    BIBSTYLE
    Bibtex4Wordが使う標準のbstファイル
    BIBTEMP
    Bibtex4Wordが使う一時フォルダの場所
以上でインストールは完了
9.2.1.2 実行方法
  • Wordを開く
  • アドインタブにアイコンが登場
  • フォルダマークで使用するbibファイルを指定
  • ブラシマークでbstを指定
  • +マークで引用の挿入
  • 箇条書きマークで文献一覧を挿入
独自のbstファイルを使いたい場合は、BSTINPUTS環境変数にbstファイルのあるフォルダを指定しておけばどこからでも参照可能。ついでに、BIBINPUTS環境変数はbibファイルのフォルダを指定することでどこからでも参照可能となる。
9.2.1.3 TeX Liveでやるときの問題
参考:
http://blog.allenworkspace.net/2011/07/jabref-bibtex4word-texlive2010.html
TeX Liveでbibtex4wordを使うときはTeX Liveの環境変数をうまく設定しないといけない模様。
OPENOUT_ANYという環境変数をうまく設定ないとbibtexが動作しない。
環境変数として
OPENOUT_ANY = r
というように設定して、
c:\texlive\2013\texmf.cnf
に以下の1行を追記すればよいらしい。
OPENOUT_ANY = r
ただ、このように設定しても私の環境ではうまくいかなかった。
具体的には、箇条書きボタンで文献一覧を挿入しようとすると以下のエラーが出る。
Missing Bibtex log file: C:\Users\Senoo\AppData\Local\Temp\bibtex4word.blg
bibtex4word.blgというファイルができていないのが原因。そしてこのファイルは、bibtex.exeが実行されたときにできるログとのこと(参考:http://www.ee.ic.ac.uk/hp/staff/dmb/perl/index.html)。
この問題はTeX Live固有の問題。TeX LiveではTeX Liveのディレクトリ外でbibtexコマンドを実行するのはセキュリティの問題から制限されているらしい。
W32TeXだとこういうOPENOUT_ANYなんかの設定がなくてもうまくいった。ディストリビューションごとのbibtexの変更は、PATHとBIBEXEの環境変数を変更してWidowsを再起動すれば反映される。他にも方法があるのかもしれないがわからなかった。
参考で記したサイトではTeX Liveでもうまくいったと書いてあったが私がやる限りうまくいかなかった。なぜだろうか?
9.2.1.4 bibtex4wordのメリット・デメリット
メリット
  • 通常のbibtexに近い出力が得られる
  • 引用した文献だけ一覧に出力可能
  • Bibtexキーのコピペにより比較的素早く目的の文献の引用を行える
デメリット
  • TeX Liveだとうまくいかない
  • bibtexがないとだめなので予めTeXをインストールする必要あり->非TeXユーザーの負担大
普段TeXを使っているユーザーがWordでも同じような文献引用をするにはかなりよい方法だと思う。
ただ、TeX Liveだとbibtexがうまく動作しないのが致命的。なにかよい方法はないだろうか。解決方法が見つからなかった。

9.2.2 XMLファイルにエクスポート

この方法では一旦bibファイルをWordの文献データベースで使える形式にエクスポートしてそれを利用する。
9.2.2.1 実行方法
参考:
http://www.ademcan.net/index.php?d=2012/01/30/15/23/05-using-jabref-references-in-word-documents&PHPSESSID=75ts13su20g3fnikdlp0gl3gi0
bibtexの文献管理ソフトとしてJabRefを使った方法で説明する。
JabRefでの操作
  • JabRefでbibファイルを開く
  • ファイル->書き出す->
ファイルのタイプ:
MS Office 2007 (*.xml)
この操作でbibファイルからxmlファイルに文献情報をエクスポート
Wordでの操作
  • 参考資料->資料文献の管理->参照
  • さっきエクスポートしたxmlファイルを選択。すると資料文献の保存先bibの欄に書誌情報が登場
  • 必要な物を選択->コピー->閉じる
引用方法:
引用したい場所で参考資料->引用文献の挿入->引用する項目を選択
一覧の挿入:
参考資料->文献目録->「引用文献、文献目録、文献目録の挿入」のどれかを選択。違いは見出しが付くかどうかと、見出しの名前
9.2.2.2 メリットとデメリット
メリット:
  • 操作が簡単
  • Wordの元々の機能を使うので他のシステムと併用しやすい
  • 最悪気に入らない部分は手動で修正可能
デメリット:
  • 引用のスタイルと一覧のフォーマットのカスタマイズが困難
  • 引用していなくても登録した文献全てが一覧に表示される
  • 引用時に検索が使えず、目視でリストから選択する必要あり
  • TeXコマンド(\”{o}など)は反映されない
Wordの文献の引用と一覧のスタイルはXSL(XML StyleSheet)で設定している。理論的にはこのファイルをカスタマイズすれば望みのスタイルを作れるが、このファイルは6000行と膨大で情報が少なく馴染みがないので編集は非常に困難。
BibWordというサイト(https://bibword.codeplex.com/)でWordの文献スタイルが大量に配布されているのでこれを利用すると便利かもしれない。
この方法は以下の2パターンのいずれかの時に有効だと思われる。
  • 学会の文献フォーマットが既知か、スタイルが配布されている
  • 文献フォーマットが自由

9.2.3 csvに出力・編集

JabRefで、ファイル->書き出す->
ファイルのタイプ:
Open Office CSV(*.csv)
この操作でCSV形式で文献の情報をほぼ全て出力可能。
出力した後は、表計算ソフトで&演算子を使ってマージしたり、ソートをかけて文献一覧で掲載する形式に加工すればよい。
メリット:
  • 汎用的。表計算ソフトでなくてもマージ・ソート可能
  • Word以外のワープロでも適用可能
  • bibtexや文献書式に関する知識がなくても簡単
  • 雛形となる表計算ソフト関数や加工スクリプト・プログラムを用意しておけば以降は簡単に用意可能
デメリット
  • 可能なのは文献一覧だけで、引用は不可->文献一覧と引用のリンクも不可
  • 引用した文献だけを一覧に載せる際には、対応を自分で確認する必要あり
  • 加工のテンプレを作るのが面倒
  • TeXコマンド(\”{o}など)は反映されない
引用と文献一覧を対応付けて掲載できないのは欠点だが、それ以外は最も現実的な選択肢だと思える。

9.2.4 wordの文献スタイル

Wordの文献スタイルのカスタマイズは以下のリンクに情報がある。
参考:
  • http://msdn.microsoft.com/ja-jp/library/office/bb258052%28v=office.12%29.aspx
  • 上記の日本語http://slashdot.jp/journal/563202/Working-with-Bibliographies
  • http://slashdot.jp/journal/530943/Word-%E3%81%AE%E6%96%87%E7%8C%AE%E7%AE%A1%E7%90%86
  • Open XML http://msdn.microsoft.com/ja-jp/library/cc820649.aspx
  • http://superuser.com/questions/152290/how-to-change-the-style-of-a-source-reference-in-word
  • http://msdn.microsoft.com/en-us/library/office/jj851016.aspx
以下の場所にXSLTファイルがある。
C:\Program Files\Microsoft Office\OFFICE12\1033\Bibliography\Style
ここにファイルを追加したり変更すればカスタマイズ可能。ただし難しい。

9.2.5 Docear4Word

参考:
http://www.docear.org/2012/09/03/docear4word-1-0-managing-citations-bibliographies-and-references-in-microsoft-word-based-on-bibtex/
bibtex4wordのようにbibファイルをwordでも使えるようにするプログラム。
  • インストール
  • インストールするとwordの参考資料タブに新しい項目が登場
  • settingsでbibファイルを指定
ただ、bibtexキーに括弧があったりするとエラーになるので使えない。日本語の情報が皆無。

9.2.6 まとめ

bibファイルをWordと連携させる3通りの方法についてまとめる。
最も汎用的な方法:
csvファイルに出力してマージ・ソート
  • 引用と文献一覧のリンクはつかない
  • 引用した文献だけ文献一覧に載せるには自分で対応の把握が必要
  • TeXコマンドの入った項目の修正が必要
TeXユーザーにとってベスト:
bibtex4word
  • TeX Liveでは(私は)うまくいかなかった
  • BibTeXの動作の再現性がおそらく最も高い
  • 非TeXユーザーには負担が大きい
無難な方法:
xmlに出力
  • スタイル(XSL)のカスタマイズが困難
  • TeXコマンドの入った項目の修正が必要
  • 引用項目の検索はできない
MendeleyやZoteroも検討してみてが、結局のところ細かいスタイルの修正にはXSLのようにCSL (Citation Style Language)という記法でスタイルファイルを定義してやらないといけず、これの記法を覚えるのが非常に負担。WordやWriterで文献引用を楽にうまくやる方法はないものだろうか。誰かご存知であればいつでもいいので教えていただきたい。
現状では、結局のところbibファイルをCSVに出力して表計算ソフトなんかで文献一覧だけ用意してやるのが一番楽でよいという結論になりそうだ。ただ、これだと文献一覧と引用のリンクが貼れないのでなんだかイマイチだ...。

0 件のコメント:

コメントを投稿