0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

DockerでSphinxの日本語ドキュメントをPDF出力する

0
Posted at

はじめに

SphinxのドキュメントをPDF出力するためにはLaTeXの環境構築が必要です。
筆者は学生の頃にLaTeXの環境構築で大変苦労した記憶があり、できればやりたくないです(今は簡単にインストールできるのかもしれないですが...)。

そこで、SphinxのDockerイメージを使用して、面倒な環境構築無しにSphinxのドキュメントをPDF出力してみます。

Dockerイメージのビルド

公式が出しているDockerイメージ sphinx-latexpdf を使います。

拡張機能を使用していない場合は、sphinx-latexpdfをそのまま使用して良いのですが、 myst_parser などの拡張機能を使用している場合は自分でDockerイメージをビルドする必要があります。

以下の例のように、requirements.txtDockerfile を作成します。

requirements.txt
myst-parser>=4.0.1
Dockerfile
FROM sphinxdoc/sphinx-latexpdf

WORKDIR /docs
ADD requirements.txt /docs
RUN pip3 install -r requirements.txt

以下のコマンドでDockerイメージをビルドします。

docker build . -t my-sphinx-latexpdf

PDFファイルの作成

以下のコマンドで、PDFファイルを作成します。

docker run --rm -v /path/to/document:/docs my-sphinx-latexpdf make latexpdf

以下のようなエラーが起きてしまいました。

! LaTeX Error: Unicode character サ (U+30B5) not set up for use with LaTeX.

このエラーは、conf.py に以下の1行を追加し、LaTeXのエンジンを変えることで回避できました。

conf.py
latex_engine = 'uplatex'

諦めたこと

なぜか以下の画像のように、タイトルや章見出しのメタデータ(?)が文字化けしていました。

image.png

簡単に解決できなさそうだったので、またの機会に調べようと思います。

根本的な解決にはならないですが、GoogleChromeでPDFを開いて、[印刷] → [PDFに保存] をすると、保存されたPDFでは、タイトルや章見出しが消えるので文字化けは気にならなくなります(笑)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?