このリポジトリは、Docker を使用した KatLab の修士論文執筆環境を提供するリポジトリである。
make コマンドが利用可能な環境では、すぐに以下の手順で環境を構築できる:
# 初回セットアップ(Docker イメージのビルドと起動)
make setup
# paper.tex をコンパイルし、PDF に変換
# その後、chapters/ 内のファイル変更を自動監視
makemake 実行後は、chapters/ ディレクトリ内の .tex ファイルの変更を自動で監視し、変更があれば自動的に paper.pdf を再生成する。
生成された PDF ファイルは、プロジェクトのルートディレクトリに paper.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 ボタン の順で選択する。 - コンテナ内で以下のコマンドを使用して作業を進める。
3 の後、環境構築に時間がかかり、表ではなにも進行していないように見えるが、実際は裏でダウンロードが進んでいるのでしばらく待つこと。
上記の手順により、Docker コンテナ内で make を実行可能となり、以下のコマンドで環境を構築できる:
# paper.tex をコンパイルし、PDF に変換
makeDev Container 環境下では Docker 関連のコマンドの操作は不要。
make 実行後は、chapters/ ディレクトリ内の .tex ファイルの変更を自動監視し、各 .tex ファイルの内容を paper.tex で結合させた PDF ファイルを、ルートディレクトリに paper.pdf として出力する。
.tex ファイルは chapters/ ディレクトリに配置すること:
chapters/
├── 01-introduction.tex
├── 02-preparation.tex
├── 03-function.tex
├── 04-implementation.tex
├── 05-indication.tex
├── 06-discussion.tex
├── 07-conclusion.tex
└── 08-acknowledgments.tex
これらのファイルは、paper.tex で自動的に結合される。
# paper.tex をコンパイルし、paper.pdf を生成
make paper.pdf
# chapters/ 内のファイル変更を監視し、自動コンパイル
make watch-chapters
# デフォルト (paper.pdf を生成後、自動監視開始)
make生成された PDF ファイルは、プロジェクトルートに paper.pdf として出力される。
make または make watch-chapters コマンド実行時、chapters 内の変更を自動で監視する。
| コマンド | 説明 |
|---|---|
make help |
利用可能なコマンド一覧を表示 |
make paper.pdf |
paper.tex をコンパイルし、paper.pdf を生成 |
make watch-chapters |
chapters/ 内のファイル変更を監視してコンパイル |
make clean |
LaTeX 中間ファイルを削除 |
make clean-all |
すべての LaTeX 生成ファイルを削除 |
make open-pdf |
生成された PDF を開く (Mac 用) |
make kill-make |
既存の make プロセスを強制終了 |
| コマンド | 説明 |
|---|---|
make setup |
初回セットアップ (ビルド + 起動) |
make build |
Docker イメージをビルド |
make up |
コンテナを起動 |
make down |
コンテナを停止・削除 |
make exec |
コンテナに接続 |
make stop |
コンテナを停止 |
make logs |
コンテナのログを表示 |
make restart |
コンテナを再起動 |
make rebuild |
完全に再ビルド |
make dev |
開発モード (起動 + chapters 監視コンパイル) |
katlab-master-thesis-template/
├── Dockerfile # Docker 環境定義
├── compose.yaml # Docker Compose 設定
├── Makefile # ビルドタスク定義
├── .latexmkrc # LaTeXmk 設定
├── .gitignore # Git 無視ファイル設定
├── README.md # このファイル
├── paper.tex # メイン論文ファイル
├── paper.pdf # 生成された PDF (コンパイル後)
├── paper.bib # 参考文献データベース
├── outline.tex # 論文のアウトライン
├── languages.sty # 言語設定ファイル
├── build/ # コンパイル中間ファイル
│ └── *.aux, *.dvi, *.log など
├── chapters/ # 各章の TeX ソースファイル
│ ├── 01-introduction.tex
│ ├── 02-preparation.tex
│ ├── 03-function.tex
│ ├── 04-implementation.tex
│ ├── 05-indication.tex
│ ├── 06-discussion.tex
│ ├── 07-conclusion.tex
│ └── 08-acknowledgments.tex
├── images/ # 画像ファイル
│ └── *.png, *.jpg など
├── packages/ # カスタム LaTeX パッケージ
│ └── *.sty
└── scripts/ # 便利なスクリプト
├── watch.sh # ファイル監視スクリプト
└── sync-template.sh # テンプレート同期スクリプト
paper.tex は以下の構成で章を結合する:
- はじめに (
chapters/01-introduction.tex) - 研究の準備 (
chapters/02-preparation.tex) - 機能 (
chapters/03-function.tex) - 実装 (
chapters/04-implementation.tex) - 適用例 (
chapters/05-indication.tex) - 考察 (
chapters/06-discussion.tex) - おわりに (
chapters/07-conclusion.tex) - 謝辞 (
chapters/08-acknowledgments.tex)
このテンプレートでは、以下のパッケージが利用可能:
- latexmk: 自動コンパイルツール
- jsbook: 日本語書籍クラス
- graphicx: 画像挿入
- hyperref: ハイパーリンク機能
- listings: ソースコード挿入
- その他、TeX Live に含まれる標準パッケージ
このリポジトリをテンプレートとして使用して作成した派生リポジトリで、元のテンプレートの更新を取り込む方法を説明する。
最も簡単な方法は、同梱されている同期スクリプトを使用すること:
bash scripts/sync-template.shスクリプトを実行すると、以下の操作が行われる:
- テンプレートリポジトリの最新情報を取得
- 現在のリポジトリとの差分を表示
- 同期方法を選択(マージ / リベース / 差分確認のみ)
- 選択した方法で更新を取り込む
推奨事項:
- 作業ディレクトリに未コミットの変更がないことを確認してから実行すること
- 更新を取り込む前に、必ず現在の作業をコミットしておくこと
スクリプトを使わずに手動で同期することもできる:
# テンプレートリポジトリを remote として追加
git remote add template https://github.com/KatLab-MiyazakiUniv/katlab-master-thesis-template.git
# テンプレートの最新情報を取得
git fetch template
# テンプレートの更新を現在のブランチにマージ
git merge template/main --allow-unrelated-histories
# コンフリクトがあれば解決してコミット
git add .
git commit -m "Sync from template"
# リモートにプッシュ
git push origin mainテンプレートの改善や新機能が追加されることがあるため、定期的に更新を確認することを推奨する:
- 新しいプロジェクトを開始する前
- テンプレートに重要な修正があった際
- 月に1回程度の定期チェック
ls -l build/*.logmake clean-all # すべての生成ファイルを削除
make paper.pdf # 再コンパイルmake rebuild # コンテナの完全な再構築service "latex" is not running
make: *** [paper.pdf] Error 1原因 Docker compose 環境で動作しようとしているものの、コンテナが起動していない。
解決策 以下のコマンドでコンテナを起動する。
make upそもそもビルドをしていない、初回設定をしていない場合は、make setup を実行する。
build/ディレクトリ内の.logファイルを確認- LaTeX のエラーメッセージを確認
- 必要に応じて
make clean-allで中間ファイルをすべて削除してから再コンパイル