[備忘録]VSCode(LaTeX Workshop)+BibCompanionでLaTeXを使う

 VSCodeには、LaTeX Workshopと呼ばれる拡張機能が存在しており、この機能を使うことで、エディットからコンパイルまでVSCodeで完結して作業できる。特殊文字のスニペットやオートフィル機能などもあり非常に使いやすい。一方でLaTeXでは、bibファイルと呼ばれる文献情報を記述しておくファイルが存在する。このファイルはコンパイルの際に参照されるため、文章中での順序などを考慮せずとも文献管理ができ、参考文献の数が膨大な時には非常に重宝する。
 ここではLaTeXの使用環境をVSCodeに統一する上で、bibファイルの運用の仕方(というか筆者がしている運用の仕方)をまとめる。

1. BibCompanion

 BibCompanionは文献管理ソフトの一つであり、bibファイルの生成に使用する。ソフトを起動した後にデータベースから文献を追加することでbibファイルを生成できる。bibファイルの書式についてはここでは説明を省略する。ここでは例えばtest.bibというファイルを作り説明していく。中身はこのようにしたとしよう。

@comment{BibCompanion_Settings,
  textencoding        = {4},
  linemode            = {0},
  database_id         = {GBk7Dmo3PoxV3hDPTRGdjvrgSAAUCW9B},
  attachment_mode     = {1},
  rename_after_bibkey = {YES},
  keep_full_path      = {NO},
  attachment_path     = {Attachments}
}


@article{hoge,
  author  = {Sato Taro},
  journal = {hoge hoge},
  pages   = {11--12},
  title   = {HOGE Huga},
  volume  = 1,
  year    = 2022
}

@article{huga,
  author  = {Suzuki Hanako},
  journal = {huga huga},
  pages   = {1122--9876},
  title   = {huga huga hoge},
  volume  = 4,
  year    = 1989
}

ここで注意点としてBibCompanionのエンコードはデフォルトで「日本語(Mac OS)」と呼ばれるものになっているため、後のコンパイルのためにUTF-8に変更しておく。またコンパイルの際にbibファイルのパスを通していない場合には、texファイルと同じ階層にbibファイルを置いておく。パスの通し方は以下を参照ください。

2. LaTeX Workshop

 LaTeX Workshopではsetting.jsonを書き換えることで、様々なコンパイラを用いてLaTeXのコンパイルができる。ここでは、以下のようにsetting.jsonに書き足す。

"latex-workshop.latex.tools": [
        {
            "name": "ptex2pdf",
            "command": "ptex2pdf",
            "args": [
                "-l",
                "-ot",
                "-kanji=utf8 -synctex=1",
                "%DOC%"
            ]
        },
        {
            "name": "pbibtex",
            "command": "pbibtex",
            "args": [
                "-kanji=utf8",
                "%DOCFILE%"
            ]
        }
    ],
"latex-workshop.latex.recipes": [
        {
            "name": "ptex2pdf -> pbibtex -> ptex2pdf*2",
            "tools": [
                "ptex2pdf",
                "pbibtex",
                "ptex2pdf",
                "ptex2pdf"
            ]
        }
     ]

latex-workshop.latex.tools部で、ビルドを実行した際に使用されるコンパイラの設定をしている。latex-workshop.latex.recipes部では、実際にビルドする際にどのような手順で実行するかを設定する。
 今回のコンパイルの順序は以下の通りになる。

  1.  ptex2pdfを実行し、bib・texファイルからauxファイルを生成。(この時点ではpdf上には[?]で表示される)

  2. pbibtexを実行し、auxファイルからbblファイルを生成。

  3.  ptex2pdfの実行でbblファイルをtexファイルと再度処理する。ここで参照された文献がpdfに表示される。

  4. 再度ptex2pdfを実行することで、相互参照と番号付が行われる。

またtexファイル上では、\end{document}の前に、

\bibliographystyle{plain}
\bibliography{test}

と記述しておく。bibliographystyleでは参考文献の表記順を設定する。bibliographyでは参照するbibファイルを指定する。

3. コンパイル


以下のようなtexファイルをコンパイルしてみる。

\documentclass[a4paper,11pt]{jsarticle}
\usepackage[margin=2cm]{geometry}
\begin{document}

さらなる検討の例\cite{huga}も存在するが、この説明では不十分とする場合もある\cite{hoge}。

\bibliographystyle{plain}
\bibliography{test}

\end{document}

すると出力結果のpdfでは、

さらなる検討の例 [1] も存在するが、この説明では不十分とする場合もある [2]。
参考文献
[1] Suzuki Hanako. huga huga hoge. huga huga, 4:1122–9876, 1989.
[2] Sato Taro. Hoge huga. hoge hoge, 1:11–12, 2022.

と出力され、無事に参照できていることが分かる。

[追記]

ptex2pdfだけでなくlatexmkでのビルドも出来る様に設定し直しました。詳細は以下の記事を参照して下さい。


いいなと思ったら応援しよう!