CC56

CC56: 567収束までに達成したい56リスト

MakefileでDocker+LaTeX環境を使いやすくする【日本語・英語対応】

f:id:hyper-pigeon:20210223172137j:plain

イントロ

論文を使うとき何のツールを使っていますか?

大半の方はOverleafを使っていると予想しています。 なぜなら、Overleafの著者共有機能や、ブラウザで書ける利便性が圧倒的だからです。(他にもっと強いツールが出ていたら教えて下さい。)

一方で、Docker+LaTexで環境を作る場合のメリットは、「Overleafより軽い」「Gitで管理しやすい」等が挙げられます(もちろん、Overleaf単体 / Overleaf+Gitでのバージョン管理機能はあります)。また、最近Overleafは使っていないので分かりませんが、アップロード周りがちょっとめんどくさかった気がします。

また、日本語で論文や資料を書かかざるを得ないタイミングがあったりします。そういうときに、Overleafを日本語対応しようとして、四苦八苦したことがある方もいると思います。これに対し、確実に動く日本語環境が爆速でセットアップできるのは便利だと思います。

個人的には、1人で論文をもくもくと書く場合、OverleafよりDocker+LaTeXでサーバーに設置し、VSCodeで書くほうが気楽に素早く書けると思っています。ある程度進んだら、Overleafにアップして、そこからはOverleafで作業するのも1つの手段だと思います。

要するに、時と場合によってOverleafとDocker+LaTeX環境を使い分けられれば、より楽に作業を進められるんじゃないかという話です。Overleafはなんだかんだいって便利。

本題

以下のMakefileでだいたいすべて完結します。(Dockerが入っていない場合は入れる必要があります。)

英語版の論文を書く場合、make en。日本語の論文を書く場合、make jp

それだけで完結するようにしています。

解説

既に Docker HUB に、LaTeX 環境をアップしてくれている方がいたので、それをpullして使わせてもらっています。コマンドが5つも並んでいるのは、Bibliographyを確実に更新するためです。(これを手動でやるとかなりめんどくさい)

日本語版と英語版で使用するコンテナが異なります。これは結果的に動いたという話であり、ちょっとLaTexがどうなっているかとかは分かりません。ごめんなさい。

日本語版の構築は、DockerでらくらくLaTeX環境構築 - Qiita を参考にさせて貰っています。

最後にある clean 作業は、LaTeXのコンパイルの過程で発生するログファイルや、途中経過ファイルであり、これも手作業で消したりするとめんどくさいので自動化しています。rmしてしまうと、ログも消してしまうので、一旦 progress_files というディレクトリに移動したあと、次のコンパイル時に上書きされるようにしています。

Makefileだけだとファイル構成がわかりにくいと思ったので、上記をまとめたものをGitHubにアップロードしておきました。個人的に作っているDockerの盆栽リポジトリです。

github.com

英語版はICCVフォーマットを使わせてもらっています。

不具合等ありましたらご連絡ください。

関連記事

blacktanktop.hatenablog.com