cangoxina

生産性向上見習いのブログ的な何かです

DockerでらくらくLaTeX環境構築

この記事は、DockerでらくらくLaTeX環境構築 - Qiitaアーカイブです。

卒論を書くために、MacLaTeX環境の構築を行っていましたが、フォント周りの問題でうまくコンパイルできなかったため、Dockerを用いてLaTeX環境の構築をしようと考えました。

そのため、upLaTeXが使えるDockerイメージを作ろうと思ったのですが、既に作っている方がいました。

日本語が扱える alpine の LaTeX イメージを作った話

本投稿では、上記のサイトを参考にLaTeXの環境構築をしていきます。 というか、本当に簡単にできます。


目次


追記:2020/01/11

VS CodeのRemote Container機能を使って、LaTeX執筆環境を簡単に構築する記事を書きました。

korosuke613.hatenablog.com

paperist/alpine-texlive-ja

使用するDockerイメージ(paperist/alpine-texlive-ja)の特徴を以下に示します。

  • platexuplatexが使える(つまり日本語が扱える)
  • イメージのサイズがとても軽量(2018年3月6日時点でletestが訳400MBのみ)
  • デフォルトのフォントがIPAexフォント

使い方

先にDockerをインストールしておいてください。

今回は試しに用意した以下のTeXファイルをPDFにコンパイルします。

report.tex

\documentclass[uplatex]{jsarticle}
\和暦
\usepackage[top=25truemm,bottom=25truemm,left=25truemm,right=25truemm]{geometry}
\usepackage[dvipdfmx]{graphicx}
\usepackage{color}

\begin{document}

\title{\huge 報告書}
\author{焼肉 太郎}
\date{\today}
\maketitle

\section{仮面ライダービルドに出てくる仮面ライダー}
    \begin{itemize}
        \item 仮面ライダービルド
        \item 仮面ライダークローズ
        \item 仮面ライダーグリス
        \item 仮面ライダーローグ
    \end{itemize}

\section{仮面ライダービルドに出てくる仮面ライダーもどき}
    \begin{itemize}
        \item ナイトローグ
        \item ブラッドスターク
        \item エンジンブロス
        \item リモコンブロス
    \end{itemize}

\end{document}

以下の順序でPDFを生成します。 1. uplatexにてtexdviに変換 2. dvipdfmxにてdvipdfに変換

Windows(PowerShell)の場合

texファイルがあるフォルダに移動して、以下のコマンドを実行します。(今回はC:Users\hoge\latex\report.texコンパイルします。) 移動しないで実行する場合は${PWD}を指定ファイルのあるフォルダの絶対パスに書き換えてください。

> docker run --rm -v ${PWD}:/workdir paperist/alpine-texlive-ja uplatex report.tex
> docker run --rm -v ${PWD}:/workdir paperist/alpine-texlive-ja dvipdfmx report.dvi

Mac(bash)の場合

texファイルがあるフォルダに移動して、以下のコマンドを実行します。(今回は/Users/hoge/latex/report.texコンパイルします。) 移動しないで実行する場合は$PWDを指定ファイルのあるディレクトリの絶対パスに書き換えてください。

$ docker run --rm -v $PWD:/workdir paperist/alpine-texlive-ja uplatex report.tex
$ docker run --rm -v $PWD:/workdir paperist/alpine-texlive-ja dvipdfmx report.dvi

結果

以下のPDFが生成されるはずです。

f:id:korosuke613:20200926195608p:plain

おまけ - TeXstudio上で実行する

わざわざコマンドなんて打ってられっか!という方のために、私が愛用しているTeXIDEであるTeXstudioでこの方法を使う方法を記します。

  1. TeXstudioを開き、「TeXstudioの設定」を開きます。(Windowsの場合: オプション(O)TeXstudioの設定(C)), (Macの場合: TeXstudio環境設定)

  2. 「ビルド」タブの「既定のコンパイラ」を「LaTeX」に設定します。

  3. 「ビルド」タブの「ビルド & 表示」を「DVI->PDFチェーン」に設定します。
  4. 「コマンド」タブの「LaTeX」にdocker run --rm -v C:Users\hoge\latex:/workdir paperist/alpine-texlive-ja uplatex -interaction=nonstopmode %.texを設定します。
  5. 「コマンド:」タブの「DviPdf」にdocker run --rm -v C:Users\hoge\latex:/workdir paperist/alpine-texlive-ja dvipdfmx %.dviを設定します。

ビルドタブ設定例 ビルドタブ

コマンドタブ設定例 コマンドタブ

上記の設定を行ったら、「ビルド & 表示」ボタンを押してみましょう。 PDFが生成され、以下のような画面になるはずです。

f:id:korosuke613:20200926195628p:plain

しかし、この方法では、上記で示した${PWD}$PWDが使えません... texファイルの存在するディレクトリの絶対パスを、毎回設定しなおさなければならないという欠点があります...

おわりに

paperist/alpine-texlive-jaイメージを使うことで、簡単に日本語を扱うLaTeX環境の構築ができます。

Docker全般に言えることですが、マシンの環境を汚すこともなく、インストールとアンインストールがらくらくにできるため、非常におすすめです。フォントもOSに依存しません。 もっと便利な使い方、コマンドを知っている方は、ぜひコメントしてください。

また、他人が作成したDockerイメージを利用する際は、悪意のないイメージであることを確認してから利用しましょう。今回のpaperist/alpine-texlive-jaは、Docker HubでDockerfileにてビルドされているため、このDockerfileを見ることで安心できます。

作者様に感謝です。



スポンサーリンク