Skip to main content
PyTeXMK Logo

PyTeXMK

LaTeX 辅助编译命令行程序

PyPI version PyPI Downloads GitHub release License OS

Issues Last Commit Repo Size Stars

简体中文 · English


✨ 功能特性

  • 🚀 多引擎支持:XeLaTeX、PdfLaTeX、LuaLaTeX 三大编译引擎
  • 📚 参考文献:支持 bibtex、biblatex、thebibliography
  • 📑 索引支持:glossaries、nomencl、mkeidx
  • 🔮 魔法注释:通过 % !TEX 注释指定编译引擎、主文件、输出目录等
  • 🧹 智能清理:支持多种清理模式,精确清理辅助文件
  • 🌍 国际化:支持多语言界面
  • 🔍 日志解析:编译失败后自动解析 LaTeX 日志,定位错误
  • 📝 LaTeXDiff:支持 LaTeX 文件差异对比
  • ⚙️ 配置文件:支持用户配置和项目配置两级配置
  • 🔔 版本检查:自动检查更新,第一时间获取新版本

📸 预览

PyTeXMK 预览 1 PyTeXMK 预览 2

🚀 快速开始

安装

官方版本 PyTeXMK 发布在 PyPI 上,可以通过 pip 或 uv 轻松安装:

# 使用 pip 安装
pip install pytexmk

# 使用 uv 安装(推荐)
uv pip install pytexmk

升级

# pip
pip install --upgrade pytexmk

# uv
uv pip install --upgrade pytexmk

基本使用

在 LaTeX 项目根目录下运行:

# 使用默认配置编译
pytexmk

# 指定主文件编译
pytexmk main.tex

# 使用 XeLaTeX 编译
pytexmk -x main.tex

# 清理辅助文件
pytexmk -c

注意:PyTeXMK 仅支持 UTF-8 编码的 TeX 文件。


⚙️ 默认配置

配置项 默认值 说明
编译程序 XeLaTeX 可选:XeLaTeX、PdfLaTeX、LuaLaTeX
主文件名 main.tex 待编译的 LaTeX 主文件
输出目录 Build 编译结果存放目录
辅助目录 Auxiliary 辅助文件存放目录
编译模式 batch 模式 编译过程不显示详细信息

提示:以上参数均可在配置文件中修改,详见 配置文件说明

VSCode 用户需在 settings.json 中设置 "latex-workshop.latex.outDir": "./Build" 以便 LaTeX-Workshop 找到 PDF 文件。


📖 使用说明

编译命令

PyTeXMK 支持的编译选项:

位置参数

参数 说明
document 要被编译的文件名

选项参数

选项 说明
-h, --help 显示帮助信息
-v, --version 显示程序版本号
-p, --PdfLaTeX 使用 PdfLaTeX 进行编译
-x, --XeLaTeX 使用 XeLaTeX 进行编译
-l, --LuaLaTeX 使用 LuaLaTeX 进行编译
-d, --LaTeXDiff 使用 LaTeXDiff 生成改动对比文件
-dc, --LaTexDiff-compile 使用 LaTeXDiff 生成对比文件并编译新文件
-dr, --draft 启用草稿模式(无图显示,提高编译速度)
-c, --clean 清除主文件的辅助文件
-C, --Clean 清除辅助文件(含根目录)和输出文件
-ca, --clean-any 清除所有带辅助文件后缀的文件
-Ca, --Clean-any 清除所有辅助文件(含根目录)和主文件输出
-nq, --non_quiet 非安静模式,显示编译过程
-vb, --verbose 显示 PyTeXMK 运行详细信息
-pr, --pdf-repair 修复所有根目录以外的 PDF 文件
-pv, --pdf-preview 编译后预览 PDF 文件

参数说明

  • -pr:当 LaTeX 编译过程中报类似 invalid X X R object at offset XXXXX 的警告时,可使用此参数尝试修复所有 PDF 文件。该警告通常由 PDF 图片文件损坏导致。
  • -d / -dc:输入示例:pytexmk -d old_tex_file new_tex_file,生成的改动对比文件名为 LaTeXDiff.tex
  • -pv:编译结束后调用浏览器或本地 PDF 阅读器预览。示例:pytexmk main -pvpytexmk -pv
  • -dc / -d:支持在参考文献和符号索引中显示修改痕迹,编译过程中会提示选择风格(1-显示修改 / 2-不显示修改)。

魔法注释

PyTeXMK 支持使用魔法注释来自定义编译行为(仅检索文档前 50 行)。

魔法注释 说明 示例
% !TEX program = <XeLaTeX> 指定编译类型 % !TEX program = PdfLaTeX
% !TEX root = <主文件名> 指定待编译主文件 % !TEX root = test_file
% !TEX outdir = <输出目录> 指定编译结果存放位置 % !TEX outdir = output
% !TEX auxdir = <辅助目录> 指定辅助文件存放位置 % !TEX auxdir = auxfiles

注意:魔法注释仅支持在主文件中定义,不支持在子文件中定义。

主文件与编译类型选定逻辑

📂 待编译主文件选定逻辑
  1. 命令行参数中指定主文件 → 编译该文件(如 pytexmk <主文件名>,可省略后缀)
  2. 当前目录仅有一个 .tex 文件 → 默认使用该文件
  3. 存在魔法注释 % !TEX root → 使用注释指定的文件
  4. 检索 \documentclass[]{}\begin{document} 判定(仅前 200 行)
  5. 默认主文件名 main.tex → 尝试使用
  6. 以上均失败 → 输出错误信息并退出
⚙️ 编译类型选定逻辑
  1. 命令行参数 -p / -x / -l 指定 → 优先级最高
  2. 魔法注释 % !TEX program 指定 → 使用注释值
  3. 均未指定 → 使用默认 XeLaTeX

输出目录优先级:% !TEX outdir 魔法注释 > 默认 Build

配置文件说明

PyTeXMK 支持两级配置文件:系统配置项目配置

  • 系统配置:首次运行时自动生成,位于用户主目录下 .pytexmkrc
  • 项目配置:项目首次运行时自动生成,位于当前工作目录下 .pytexmkrc

自动生成的配置文件中包含详细注释,可根据需要进行修改。

配置文件路径

类型 Windows Linux / macOS
系统配置 C:\Users\用户名\.pytexmkrc ~/.pytexmkrc
项目配置 当前目录 .pytexmkrc 当前目录 .pytexmkrc

优先级:项目配置 > 系统配置


🛠 开发与构建

环境要求

  • Python 3.14+
  • uv(推荐)或 pip

开发环境搭建

# 克隆项目
git clone https://github.com/YanMing-lxb/PyTeXMK.git
cd PyTeXMK

# 安装开发依赖
uv sync --all-extras --dev

# 运行开发版本
uv run pytexmk --help

构建分发包

# 构建 wheel 和 sdist
uv build

构建可执行程序

# 生成平台图标
make icon

# 构建 Cython 加密的可执行程序(onedir 模式)
make build

# 清理构建产物
make clean

Windows 中的 make 命令需要单独配置,详见 Windows 下使用 make

代码检查

uv run ruff check src/
uv run ruff format src/

📄 许可证

本项目基于 GPLv3 许可证开源。


📝 更新记录

详细更新记录请参阅 CHANGELOG.md


⭐ Star History

Star History Chart


如果这个项目对你有帮助,欢迎点个 Star ⭐ 支持一下!

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytexmk-1.1.1.tar.gz (91.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pytexmk-1.1.1-py3-none-any.whl (91.9 kB view details)

Uploaded Python 3

File details

Details for the file pytexmk-1.1.1.tar.gz.

File metadata

  • Download URL: pytexmk-1.1.1.tar.gz
  • Upload date:
  • Size: 91.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for pytexmk-1.1.1.tar.gz
Algorithm Hash digest
SHA256 145c94e30e4cd0e3603bc1233f663d7702e1569c9b254b98ef5337de6460ee95
MD5 c65f3afc846bee2fdadf6b16f71b2853
BLAKE2b-256 6e84157f4f8f5a282a9e327dde85894b957c62057f3e47b992bbb066b891b8b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytexmk-1.1.1.tar.gz:

Publisher: Release.yml on YanMing-lxb/PyTeXMK

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytexmk-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: pytexmk-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 91.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for pytexmk-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 001d678a690200ef457566be66a918912136802576e39dbffffb817257fbc1ef
MD5 fd2da7b5841a3458d262cc453bbda933
BLAKE2b-256 3b9ec72b967c140f78ce899808dd57f24ca506c719310d04309df6413a54f3a7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytexmk-1.1.1-py3-none-any.whl:

Publisher: Release.yml on YanMing-lxb/PyTeXMK

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

1.2.1

2 files

1.2.0

2 files

1.1.3

2 files

1.1.2

2 files

This release

1.1.1 This release

2 files

1.1.0

2 files

1.0.5

2 files

1.0.4.251001

2 files

1.0.3.251001

2 files

1.0.2.250515

2 files

1.0.1.250506

2 files

1.0.0.250506

2 files

0.9.6.250430

2 files

0.9.5.250430

2 files

0.9.4.250314

2 files

0.9.3.250308

2 files

0.9.2.241006

2 files

0.9.1.240921

2 files

0.9.0.240916

2 files

0.8.13.240912

2 files

0.8.12.240902

2 files

0.8.11.240901

2 files

0.8.10.240816

2 files

0.8.9.240816

2 files

0.8.8.240816

2 files

0.8.7.240809

1 file

0.8.6.240807

2 files

0.8.5.240806

2 files

0.8.4.240806

2 files

0.8.3.240806

2 files

0.8.2.240806

2 files

0.8.1.240806

2 files

0.8.0.240805

2 files

0.7.10.240804

2 files

0.7.9.240803

2 files

0.7.8.240803

2 files

0.7.7.240803

2 files

0.7.6.240802

1 file

0.7.5.240729

1 file

0.7.4.240728

1 file

0.7.3.240727

1 file

0.7.2.240727

1 file

0.7.1.240727

1 file

0.7.0.240726

1 file

0.6.11.240726

1 file

0.6.10.240726

1 file

0.6.9.240725

1 file

0.6.8.240723

1 file

0.6.7.240723

1 file

0.6.6.240723

1 file

0.6.5.240720

1 file

0.6.4.240720

1 file

0.6.3.240720

1 file

0.5.7.240616

1 file

0.5.6.240616

1 file

0.5.5.240427

2 files

0.5.4.240427

2 files

0.5.1.240426

2 files

0.5.0.240426

2 files

0.4.3.240405

2 files

0.4.2.240322

2 files

0.4.1.240322

2 files

0.4.0.240322

2 files

0.3.4.240322

2 files

0.3.3.240322

2 files

0.3.2.240321

2 files

0.3.1.240321

2 files

0.2.20.240316

2 files

0.2.19.240315

2 files

0.2.18.240309

2 files

0.2.17.240306

2 files

0.2.16.240306

2 files

0.2.15.240303

2 files

0.2.14.240303

2 files

0.2.13.240303

2 files

0.2.10.240302

2 files

0.2.8.240302

2 files

0.2.7.240302

2 files

0.2.6.240302

2 files

0.2.5.240302

2 files

0.2.4.240302

2 files

0.2.3.240302

2 files

0.2.2.240302

2 files

0.2.0.240302

2 files

0.1.9.240301

2 files

0.1.4.240229

2 files

0.0.18.240309

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page