Visual Studio CodeのDev Containersを使用して日本語でLaTeX文書を執筆するためのテンプレート.
textlint,Python環境を統合している.
- Docker
- Visual Studio Code
- Dev Containers:VS Code拡張機能(ms-vscode-remote.remote-containers)
src/
├── main.tex # メイン文書
├── sections/
│ ├── introduction.tex
│ ├── methodology.tex
│ └── conclusion.tex
├── figures/ # 図
├── tables/ # 表
├── scripts/ # Pythonスクリプト(グラフ生成など)
│ ├── generate_figures.py
│ └── generate_table.py
└── Makefile # ビルド自動化
src/
├── paper-a/
│ ├── main.tex
│ └── figures/
├── paper-b/
│ ├── main.tex
│ └── figures/
└── common/
└── scripts/ # 共通のPythonスクリプト
└── utils.py
Pythonスクリプトでの図表生成とLaTeX文書のコンパイルを一括で行う.
cd src/example # または文書があるディレクトリ
make # 図・表の生成後、PDFをビルド個別のタスクを実行できる.
make figures # 図のみ生成
make tables # 表のみ生成
make pdf # 図・表生成後にLaTeXをコンパイル
make clean # 生成ファイルをクリーンアップ.texファイルを開くCtrl+Alt+B(Windows/Linux)またはCmd+Alt+B(Mac)でビルド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は残す)# パッケージを追加(例: matplotlib)
uv add matplotlib
# 開発用パッケージを追加
uv add --dev pytest
# パッケージを削除
uv remove matplotlibVS 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# パッケージを追加
pnpm i -D <package-name>
# パッケージを削除
pnpm rm <package-name># すべてのパッケージをバージョン識別子に基づいて更新
pnpm up
# すべてのパッケージを最新版に更新
pnpm up --latest
# 指定したパッケージを最新版に更新
pnpm up <package-name>@latestcorepack up- paperist/texlive-ja:latest:ベースイメージ
- システムパッケージ
python3-pygments:mintedでのシンタックスハイライトに必要
- TeX Liveパッケージ
- ChkTeX:リンター
- 日本語文書で誤検出されやすいルールを無効化済み
- latexindent:フォーマッター
- pgf:PGFグラフィックを扱うために必要
- ChkTeX:リンター
- LaTeX Workshop:VS Code拡張機能(James-Yu.latex-workshop)
文書の校正などのためにtextlintを採用している.
初期状態では全部入りかつカンマとピリオドを強制するため,文書に合わせて設定を変更する必要がある.
- preset-ja-engineering-paper:日本語の工学系論文のためのtextlintルールプリセット
- ja-hiragana-keishikimeishi:漢字よりもひらがなで表記したほうが読みやすい形式名詞を指摘
- ja-hiragana-fukushi:漢字よりもひらがなで表記したほうが読みやすい副詞を指摘
- デフォルトの辞書(fukushi.yml)をコピーし,「正しく」→「まさしく」をコメントアウト済み
- ja-hiragana-hojodoushi:漢字よりもひらがなで表記したほうが読みやすい補助動詞を指摘
- no-synonyms:同義語を表記ゆれをチェック
- prh:prhによる辞書ベースのチェック
- 辞書には論文にそぐわない表現をチェックするための設定が収録済み
- unify-kuten-and-touten:句読点を統一
- use-si-units:SI単位系の単位以外の使用を禁止
- preset-ja-technical-writing:技術文書向けのtextlintルールプリセット
- sentence-length:1文の長さは100文字以下
- max-comma:カンマは1文中に3つまで
- max-ten:読点は1文中に3つまで
- kanji-continuous-len:連続できる最大の漢字長は6文字まで
- arabic-kanji-numbers:漢数字と算用数字を使い分ける
- no-mix-dearu-desumasu:
「ですます調」、「である調」を統一- 「である調」に統一するように変更済み
- ja-no-mixed-period:
文末の句点記号として「。」を使う- preset-ja-engineering-paperに合わせて「.」に変更済み
- no-double-negative-ja:二重否定は使用しない
- no-dropping-the-ra:ら抜き言葉を使用しない
- no-doubled-conjunctive-particle-ga:逆接の接続助詞「が」を連続して使用しない
- no-doubled-conjunction:同じ接続詞を連続して使用しない
- no-doubled-joshi:同じ助詞を連続して使用しない
- no-nfd:UTF8-MAC濁点を使用しない
- no-invalid-control-character:不必要な制御文字を使用しない
- no-zero-width-spaces:不必要なゼロ幅スペースを使用しない
- no-exclamation-question-mark:感嘆符!!、疑問符??を使用しない
- no-hankaku-kana:半角カナを使用しない
- no-weak-phrase:弱い日本語表現を使用しない
- no-successive-word:同一の単語を間違えて連続しているのをチェック
- no-abusage:よくある日本語の誤用をチェック
- no-redundant-expression:冗長な表現をチェック
- ja-unnatural-alphabet:入力ミスで発生する不自然なアルファベットをチェック
- no-unmatched-pair:対になっていない括弧をチェック
- preset-JTF-style:JTF日本語標準スタイルガイド
- preset-ja-engineering-paperに合わせて句読点に関するルールを無効化済み
- preset-ja-spacing:スペース周りのスタイルを扱うtextlintルールプリセット
- ja-space-between-half-and-full-width:半角文字と全角文字の間にスペースを入れるかどうか
- ja-no-space-between-full-width:全角文字どうしの間のスペースについて
- ja-nakaguro-or-halfwidth-space-between-katakana:カタカナ語間は中黒または半角スペースを用いてカタカナ語を区切る
- ja-no-space-around-parentheses:かっこの外側,内側ともにスペースを入れないようにする
- ja-space-after-exclamation:文末に感嘆符を使用し,後に別の文が続く場合は,直後に全角スペースを挿入する.文中に感嘆符を使用する場合はスペースを挿入しない
- ja-space-after-question:文末に疑問符を使用し,後に別の文が続く場合は,直後に全角スペースを挿入する.文中に疑問符を使用する場合はスペースを挿入しない
- ja-space-around-code:インラインコードの周りをスペースで囲むかどうか
- ja-space-around-link:リンクの周りをスペースで囲むかどうか
- preset-ai-writing:AIっぽい記述パターンを検出し,より自然な日本語表現を促す
- Rules:Global
- terminology:用語のチェック
- doubled-spaces:スペースを連続して使用しない
- Rules:Japanese
- ja-no-orthographic-variants:表記ゆれをチェック
- ja-overlooked-typo:見逃しがちなタイプミスを検出
- no-mixed-zenkaku-and-hankaku-alphabet:全角と半角アルファベットの混在をチェック
- no-insert-dropping-sa:サ抜き,サ入れ表現の誤用をチェック
- prefer-tari-tari:例示・並列・対表現の「〜たり〜たりする」をチェック
- その他
- no-kangxi-radicals:康煕部首を検出
- no-dropping-i:い抜き言葉を検出
- no-insert-re:れ足す言葉を検出
- comments:ディレクティブコメントを使用してエラーを無視
図表の作成等に使用することを想定してPython環境を構築している.
- uv:パッケージマネージャー
- Ruff:リンター・フォーマッター
- charliermarsh.ruff:VS Code拡張機能
- Code Runner:VS Code拡張機能(formulahendry.code-runner)
uv runを使用してPythonスクリプトを実行するように設定済み
- dprint:フォーマッター
- npmパッケージとしてインストール済み
- dprint.dprint-vscode:VS Code拡張機能
- EditorConfig:コーディングスタイル設定ファイル
- EditorConfig.EditorConfig:VS Code拡張機能
- Git:バージョン管理ツール
- GitLens:VS Code拡張機能(eamodio.gitlens)
このテンプレートは Unlicense の下で公開されている.
自由に使用・改変・配布してよい.
各種ツールやパッケージは,それぞれのライセンスに従うものとする.