このリポジトリは、Docker を使用した日本語 LaTeX 執筆環境を提供するリポジトリである。 標準的な LaTeX 文書に加え、情報処理学会 (IPSJ) 論文形式にも対応している。
本環境では、IPSJ が配布するテンプレートファイル一式(ipsj.cls、.bst、.sty など)を src/IPSJ/ 以下のサブディレクトリにそのまま配置することで、IPSJ 指定の環境で PDF を作成できる。
具体的には、情報処理学会 LaTeX スタイルファイル から入手したテンプレートフォルダの中身を、エンコーディングに応じて以下のディレクトリにコピーする:
src/IPSJ/
├── UTF8/ # UTF-8 エンコーディング用(推奨)
│ ├── .latexmkrc # IPSJ 用コンパイル設定
│ ├── ipsj.cls # IPSJ クラスファイル
│ ├── ipsjpref.sty # IPSJ スタイルファイル
│ ├── ipsjtech.sty
│ ├── *.bst # 参考文献スタイル (ipsjsort.bst, ipsjunsrt.bst 等)
│ ├── *.bib # 参考文献データ
│ ├── images/ # 図版ディレクトリ
│ └── your-paper.tex # 自分の論文ファイル
└── SJIS/ # Shift-JIS エンコーディング用
├── .latexmkrc
├── ipsj.cls
└── ...(同様の構成)
テンプレートファイルをディレクトリごと配置することで、以下が可能になる:
- IPSJ 指定環境での PDF 生成:
ipsj.clsや各種.bstファイルが同一ディレクトリにあるため、IPSJ のフォーマットに準拠した PDF をmakeコマンド一つで生成できる - 句読点の自動変換: IPSJ 論文で求められるカンマ・ピリオド表記(「、」→「,」、「。」→「.」)への変換を
make convert-punctuationで一括実行できる - 参考文献の処理: pBibTeX による参考文献処理と、参照番号の解決のための多重コンパイルを自動で行う
make コマンドが利用可能な環境では、以下の手順で環境を構築できる:
# 初回セットアップ(Docker イメージのビルドと起動)
make setup
# src 下の .tex ファイルをコンパイルし、PDF に変換。その後、変更を自動監視
make生成された PDF ファイルは pdf/ ディレクトリに出力される。
VS Code の Dev Containers を使用して環境を構築することもできる:
- VS Code に Dev Containers 拡張機能をインストールする。
- このリポジトリを VS Code で開く。
- コマンドパレット(
Cmd + Shift + P または Ctrl + Shift + P)を開き、Dev Containers: Rebuild and Reopen in Containerを選択する。もしくは、GUI 左下の青い >< から、コンテナーで再度開く->ワークスペースに構成を追加する->`Dockerfile` から-> 青い OK ボタン -> 青い OK ボタン の順で選択する。 - コンテナ内で以下のコマンドを使用して作業を進める:
# src 下の .tex ファイルをコンパイルし、PDF に変換。その後、変更を自動監視
make
# ファイルの変更を監視してコンパイル(監視のみ)
make watchDev Container 環境下では Docker 関連のコマンドの操作は不要。
生成された PDF ファイルは pdf/ ディレクトリに出力される。
src/ ディレクトリ直下に .tex ファイルを配置する:
src/
├── sample.tex
└── other.tex
IPSJ 論文の場合は、IPSJ から配布されるテンプレートファイル一式をエンコーディングに応じたサブディレクトリに配置する。テンプレートは 情報処理学会 LaTeX スタイルファイル から入手できる。
重要: ipsj.cls や .bst ファイルなど、テンプレートに含まれるファイルをすべて同一ディレクトリに配置すること。これにより、IPSJ のスタイル定義やコンパイル設定がそのまま利用でき、IPSJ 指定のフォーマットで PDF が生成される。
src/IPSJ/
├── UTF8/ # UTF-8 エンコーディング(推奨)
│ ├── .latexmkrc # コンパイル設定(同梱済み)
│ ├── ipsj.cls # クラスファイル(テンプレートからコピー)
│ ├── ipsjpref.sty # スタイルファイル(テンプレートからコピー)
│ ├── ipsjsort.bst # 参考文献スタイル(テンプレートからコピー)
│ ├── ipsjunsrt.bst
│ ├── your-paper.tex # 自分の論文
│ ├── your-paper.bib # 参考文献データ
│ └── images/ # 図版
└── SJIS/ # Shift-JIS エンコーディング
└── ...(同様の構成)
# src/ 下のすべての .tex ファイルの変更分をコンパイルし、監視開始
make
# src/ 下のすべての .tex ファイルを強制的に再コンパイル
make compile
# src/ 下のすべての .tex ファイルを監視し、変更があったら自動コンパイル、PDF 出力
make watch生成された PDF ファイルは pdf/ ディレクトリにサブディレクトリ構造を保持して出力される。
例: src/IPSJ/UTF8/paper.tex → pdf/IPSJ/UTF8/paper.pdf
| コマンド | 説明 |
|---|---|
make |
すべての TeX ファイルを PDF に変換し、変更の自動監視を開始 |
make help |
利用可能なコマンド一覧を表示 |
make compile |
src 下の TeX ファイルを強制再コンパイル |
make watch |
ファイルの変更を監視してコンパイル |
make clean |
LaTeX 中間ファイルを削除 |
make clean-all |
すべての LaTeX 生成ファイルを削除 |
make open-pdf |
生成された PDF を開く (Mac 用) |
| コマンド | 説明 |
|---|---|
make convert-punctuation FILE=<path> |
指定した IPSJ ファイルの句読点をカンマ・ピリオドに変換(「、」→「,」、「。」→「.」) |
make restore-punctuation FILE=<path> |
変換前の句読点に戻す |
使用例:
# 句読点変換(IPSJ 投稿規定に合わせる)
make convert-punctuation FILE=src/IPSJ/UTF8/paper.tex
# 句読点復元(元の表記に戻す)
make restore-punctuation FILE=src/IPSJ/UTF8/paper.tex| コマンド | 説明 |
|---|---|
make setup |
初回セットアップ (ビルド + 起動) |
make build |
Docker イメージをビルド |
make up |
コンテナを起動 |
make down |
コンテナを停止・削除 |
make exec |
コンテナに接続 |
make stop |
コンテナを停止 |
make logs |
コンテナのログを表示 |
make restart |
コンテナを再起動 |
make rebuild |
完全に再ビルド |
make dev |
開発モード (起動 + 監視コンパイル) |
texlive-ja-template/
├── Dockerfile # Docker 環境定義
├── compose.yaml # Docker Compose 設定
├── Makefile # ビルドタスク定義
├── .latexmkrc # LaTeXmk 設定(標準 LaTeX 用)
├── scripts/ # ビルドスクリプト
│ ├── watch.sh # ファイル監視スクリプト
│ └── full-compile.sh # IPSJ 用多重コンパイルスクリプト
├── build/ # コンパイル中間ファイル
├── image/ # 標準 LaTeX 用の画像ファイル
├── pdf/ # 生成された PDF
└── src/ # TeX ソースファイル
├── *.tex # 標準的な LaTeX ファイル
└── IPSJ/ # IPSJ 論文形式(テンプレートごと配置)
├── UTF8/ # UTF-8 エンコーディング用
│ ├── .latexmkrc # IPSJ 用コンパイル設定
│ ├── ipsj.cls # クラスファイル
│ ├── *.sty # スタイルファイル
│ ├── *.bst # 参考文献スタイル
│ ├── *.tex # 論文ファイル
│ └── images/ # 図版ディレクトリ
└── SJIS/ # Shift-JIS エンコーディング用
└── ...(UTF8 と同様の構成)
- エンコーディング: UTF-8
- コンパイラ: uplatex + dvipdfmx
- 配置場所:
src/*.tex
- エンコーディング: UTF-8 または Shift-JIS
- コンパイラ: platex + dvipdfmx(
full-compile.shによる多重コンパイル) - 配置場所:
- UTF-8:
src/IPSJ/UTF8/(テンプレートファイル一式を含む) - SJIS:
src/IPSJ/SJIS/(テンプレートファイル一式を含む)
- UTF-8:
- クラスファイル: IPSJ 配布のテンプレートから
ipsj.clsを各ディレクトリに配置 - 句読点変換:
make convert-punctuationによる自動変換に対応(「、」→「,」、「。」→「.」)
- latexmk: 自動コンパイルツール
- algorithms, algorithmicx: アルゴリズム記述
- graphicx: 図版挿入
- color: カラー対応
- ログファイルの確認
ls -l build/*.log- クリーンアップして再コンパイル
make clean-all # すべての生成ファイルを削除
make compile # 再コンパイル- Docker 環境の再構築
make rebuild # コンテナの完全な再構築-
フォントエラーが発生する場合
ipsj.clsの日本語フォント定義でエラーが発生することがあるが、デフォルトフォントで代替されるため問題ない
-
句読点の変換を間違えた場合
# 元に戻す
make restore-punctuation FILE=src/IPSJ/UTF8/your-file.tex-
エンコーディングエラーが発生する場合
- UTF-8 ファイルは
src/IPSJ/UTF8/に配置 - Shift-JIS ファイルは
src/IPSJ/SJIS/に配置 - ファイルのエンコーディングとディレクトリが一致していることを確認
- UTF-8 ファイルは
-
参考文献や図表の番号が表示されない場合
make compileで再コンパイルを実行する(多重コンパイルにより参照が解決される).bibファイルが論文ファイルと同じディレクトリに配置されているか確認する