交付前需锁定可复现版本:执行git clean -fdx清除残留,导出tex发行版与宏包列表至env-info.txt和tlmgr-list.txt,用latexmkrc固化编译流程,禁用.aux时间戳更新,最后打包源码、pdf、环境信息并生成sha256校验值。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

LaTeX协作定稿后,多人修改痕迹混杂、编译环境不一致、宏包版本错位,导致最终交付的PDF与团队确认稿出现页眉错位、参考文献编号跳变、公式渲染异常等问题,交付前必须锁定一个可复现、可验证、不可篡改的统一版本。
冻结源码与依赖环境
进入项目根目录,执行:git status 确认所有修改已提交或暂存;若存在未跟踪文件(如临时.log/.aux),运行 git clean -fdX 彻底清除编译残留。
导出当前TeX发行版信息:在终端中执行 pdflatex --version 和 tlmgr --version(TeX Live)或 mpm --version(MiKTeX),将输出结果保存为 env-info.txt。
生成完整依赖快照:运行 tlmgr list --only-installed > tlmgr-list.txt(TeX Live)或使用 MiKTeX Console 导出“已安装包列表”,【此文件必须随源码一同归档,否则他人无法复现相同编译结果】。
固化编译流程与输出参数
方法一:用 latexmk 统一驱动
创建 latexmkrc 配置文件,写入以下内容:
$pdf_mode = 1;<br>$out_dir = 'build';<br>$clean_ext = 'aux log out toc lof lot fls synctex.gz';<br>system('mkdir -p build');
该配置强制输出到独立 build/ 目录,避免污染源码树,并明确指定清理范围,防止旧辅助文件干扰新编译。
方法二:禁用自动更新机制
在主 .tex 文件导言区顶部添加:\usepackage[freeze]{etoolbox},并在 \begin{document} 前插入:\patchcmd{\@setckpt}{\immediate\write}{\relax}{}{}。这一步【阻止 LaTeX 自动重写 .aux 文件中的交叉引用时间戳,确保多次编译结果完全一致】。
生成可验证交付包
第一步:打包源码与构建产物
执行:zip -r paper_v1.2_delivery_20260928.zip *.tex *.bib build/*.pdf env-info.txt tlmgr-list.txt latexmkrc
第二步:计算校验值
运行:sha256sum paper_v1.2_delivery_20260928.zip > paper_v1.2_delivery_20260928.zip.sha256
第三步:签署交付包(可选但推荐)
若有 GPG 密钥,执行:gpg --clearsign paper_v1.2_delivery_20260928.zip.sha256,生成带签名的校验文件,收件方可用公钥验证来源真实性。











