Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
80
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

@Shitimi_613

DockerでらくらくLaTeX環境構築

はじめに

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

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

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

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

追記:2020/01/11

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

爆速で日本語LaTeX執筆環境を用意する

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}を指定ファイルのあるフォルダの絶対パスに書き換えてください。

C:Users\hoge\latex
> 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を指定ファイルのあるディレクトリの絶対パスに書き換えてください。

/Users/hoge/latex
$ 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が生成されるはずです。
report.pdf

おまけ - TeXstudio上で実行する

わざわざコマンドなんて打ってられっか!という方のために、私が愛用しているTeXのIDEである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が生成され、以下のような画面になるはずです。

image.png

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

おわりに

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

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

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

作者様に感謝です。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
80
Help us understand the problem. What are the problem?