[備忘録]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部では、実際にビルドする際にどのような手順で実行するかを設定する。
今回のコンパイルの順序は以下の通りになる。
ptex2pdfを実行し、bib・texファイルからauxファイルを生成。(この時点ではpdf上には[?]で表示される)
pbibtexを実行し、auxファイルからbblファイルを生成。
ptex2pdfの実行でbblファイルをtexファイルと再度処理する。ここで参照された文献がpdfに表示される。
再度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では、
と出力され、無事に参照できていることが分かる。
[追記]
ptex2pdfだけでなくlatexmkでのビルドも出来る様に設定し直しました。詳細は以下の記事を参照して下さい。