この記事は高知工科大学 Advent Calendar 2019の1日目の記事です.
今年もこの時期がやってまいりました.私は現在進行系で修論を完成させるべく毎日大学に閉じこもってます.
この記事では修論を書くためにラズパイにlatexのビルド環境を用意したことについて書きます.
学部の卒論はWordで書いたのですが,修士になってから論文はoverleafを使ってlatexで書いていました.
ただ修論だとページ数増えるし,overleafのサーバーが落ちないとも限りません.そこで手元にlatexの環境を用意することにしました.しかしながら,windowsにlatexをインストールするのは抵抗があったため研究室に転がしてるラズパイにlatexmkとsambaをインストールして,修論ビルドサーバーとしました.
$ sudo apt-get install texlive-lang-cjk xdvik-ja latexmk
sambaはググっていい感じにインストールしてほしい
texファイルをpdfにするには
- texファイルをdviファイルに変換
- dviファイルからpdfを生成
と手順があるのですがlatexmkなら1コマンドでpdfが生成できます.
latexmk -pdfdvi hoge.tex
でhoge.texをdvi経由でpdfに変換します.
また,latexmk -pvc hoge.tex
でhoge.texを監視して,更新されたら自動的にpdfを生成します.
そこで今回は.nohup latexmk -pvc hoge.tex &
とすることでバックグラウンドでコマンドを実行します.
あとは共有フォルダに編集したいtexファイルを置いてwindowsから編集したら自動的にpdfファイルが生成されます.
エディターとしてVScodeを,pdfビューワとしてSumatraPDFをインストール
VScodeには拡張機能としてLaTeX Workshopを入れる.
Ctrl + ,
で設定を開き左上のOpen Setting (JSON)
からVScode用のJSON設定ファイルを開いて以下を入力
"latex-workshop.view.pdf.viewer": "external",
"latex-workshop.view.pdf.external.viewer.command": "C:/Program Files/SumatraPDF/SumatraPDF.exe",
"latex-workshop.view.pdf.external.viewer.args": [
"-reuse-instance",
"%PDF%"
],
"latex-workshop.view.pdf.external.synctex.command": "C:/Program Files/SumatraPDF/SumatraPDF.exe",
"latex-workshop.view.pdf.external.synctex.args": [
"-reuse-instance",
"-forward-search",
"%LINE%",
"%PDF%",
"%TEX%"
]
SumatraPDFのオプション -> 設定(S) -> オプション(O)... の「逆順検索コマンドラインの設定」に以下の設定を入力
"C:\Program Files\Microsoft VS Code\bin\code.cmd" -g "%f:%l"
これでビューワーをSumatraPDFに設定して,相互にハイライトが入るようになる.(と言われているがハイライトのところがうまく行ってない)
- overleafみたいに毎回画像ファイル等をアップロードしなくて良くなった
- VScodeで書ける
- VPNつなぐことでどこからでも論文書ける
- Wordを捨てることができる
実際にVScodeで書くことで普段プログラム書くノリで書けるのは嬉しいところ
- pdfビューワとしてSumatraを使っているがリロードがちょっとラグがある
- エラーが起きたときがちょっと面倒
修論を快適に書くためにラズパイにlatexビルドサーバーを作りました.
結局の所環境ではなく書く内容なんですけどね...
VPNのこととかも記事にできたらしたいです.
ラズパイだけに原稿残しておくのは不安なので毎晩自動的に研究室のNASにアップロードするスクリプトを走らせてます.
研究室のNASでも不安なら何かしらクラウドサービスと連携させたり複数バックアップするようにしておくのもアリだと思います.