Skip to content

Visual Studio CodeのDev Containersを使用して日本語でLaTeX文書を執筆するためのテンプレート

License

Notifications You must be signed in to change notification settings

Per-Terra/latex-python-template

Repository files navigation

latex-python-template

Visual Studio CodeのDev Containersを使用して日本語でLaTeX文書を執筆するためのテンプレート.
textlint,Python環境を統合している.

前提条件

運用方法

src/ディレクトリの使用例

パターン1:単一文書の場合

src/
├── main.tex             # メイン文書
├── sections/
│   ├── introduction.tex
│   ├── methodology.tex
│   └── conclusion.tex
├── figures/             # 図
├── tables/              # 表
├── scripts/             # Pythonスクリプト(グラフ生成など)
│   ├── generate_figures.py
│   └── generate_table.py
└── Makefile             # ビルド自動化

パターン2:複数文書の場合

src/
├── paper-a/
│   ├── main.tex
│   └── figures/
├── paper-b/
│   ├── main.tex
│   └── figures/
└── common/
    └── scripts/         # 共通のPythonスクリプト
        └── utils.py

LaTeX文書のビルド

Makefileを使用したビルド(推奨)

Pythonスクリプトでの図表生成とLaTeX文書のコンパイルを一括で行う.

cd src/example  # または文書があるディレクトリ
make            # 図・表の生成後、PDFをビルド

個別のタスクを実行できる.

make figures  # 図のみ生成
make tables   # 表のみ生成
make pdf      # 図・表生成後にLaTeXをコンパイル
make clean    # 生成ファイルをクリーンアップ

VS Code内でのビルド

  1. .texファイルを開く
  2. Ctrl+Alt+B(Windows/Linux)またはCmd+Alt+B(Mac)でビルド
  3. Ctrl+Alt+V(Windows/Linux)またはCmd+Alt+V(Mac)でPDFプレビュー

コマンドラインでのビルド

VS Codeを使わずに直接ビルドする場合:

cd src  # または文書があるディレクトリ
latexmk -synctex=1 -interaction=nonstopmode -file-line-error -lualatex main.tex

オプションの説明:

  • -synctex=1: SyncTeX有効化(PDFとソースの相互ジャンプ)
  • -interaction=nonstopmode: エラー時も停止せず最後まで実行
  • -file-line-error: エラーメッセージにファイル名と行番号を表示
  • -lualatex: LuaLaTeXエンジンを使用
  • -outdir=<dir>: 出力ディレクトリ指定(オプション)

クリーンアップ:

latexmk -C  # 中間ファイルとPDFを削除
latexmk -c  # 中間ファイルのみ削除(PDFは残す)

Python開発

パッケージのインストール

# パッケージを追加(例: matplotlib)
uv add matplotlib

# 開発用パッケージを追加
uv add --dev pytest

# パッケージを削除
uv remove matplotlib

Pythonスクリプトの実行

VS Code内:

  • Code Runner拡張機能を使用:Ctrl+Alt+N
    • 自動的にuv runで実行される

コマンドライン:

# 個別に実行する場合
uv run scripts/generate_figures.py
uv run scripts/generate_table.py

# Makefileを使用する場合(推奨)
make figures
make tables

依存関係の更新

# すべてのパッケージを最新版に更新
uv lock --upgrade

# 指定したパッケージを最新版に更新
uv lock --upgrade-package <package-name>

# 仮想環境を同期
uv sync

Node.jsパッケージの管理

パッケージのインストール

# パッケージを追加
pnpm i -D <package-name>

# パッケージを削除
pnpm rm <package-name>

依存関係の更新

# すべてのパッケージをバージョン識別子に基づいて更新
pnpm up

# すべてのパッケージを最新版に更新
pnpm up --latest

# 指定したパッケージを最新版に更新
pnpm up <package-name>@latest

pnpmの更新

corepack up

テンプレートの構成要素

LaTeX環境

  • paperist/texlive-ja:latest:ベースイメージ
  • システムパッケージ
    • python3-pygmentsmintedでのシンタックスハイライトに必要
  • TeX Liveパッケージ
    • ChkTeX:リンター
      • 日本語文書で誤検出されやすいルールを無効化済み
    • latexindent:フォーマッター
    • pgf:PGFグラフィックを扱うために必要
  • LaTeX Workshop:VS Code拡張機能(James-Yu.latex-workshop

textlint環境

文書の校正などのためにtextlintを採用している.
初期状態では全部入りかつカンマとピリオドを強制するため,文書に合わせて設定を変更する必要がある.

VS Code拡張機能

3w36zj6.textlint

インストール済みのパッケージ

プリセット
ルール
フィルター
  • comments:ディレクティブコメントを使用してエラーを無視

Python環境

図表の作成等に使用することを想定してPython環境を構築している.

  • uv:パッケージマネージャー
  • Ruff:リンター・フォーマッター
  • Code Runner:VS Code拡張機能(formulahendry.code-runner
    • uv runを使用してPythonスクリプトを実行するように設定済み

補助ツール

ライセンス

このテンプレートは Unlicense の下で公開されている.
自由に使用・改変・配布してよい.

各種ツールやパッケージは,それぞれのライセンスに従うものとする.

About

Visual Studio CodeのDev Containersを使用して日本語でLaTeX文書を執筆するためのテンプレート

Resources

License

Stars

Watchers

Forks