You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Makefile中为目标.tex文件前置fm.tex并后置bm.tex

解决方法

直接修改你的Makefile规则,通过临时合并文件的方式实现前置fm.tex、后置bm.tex的需求,同时保证生成的PDF和原.tex文件名一致:

# 模式规则:匹配任意xxx.tex,生成xxx.pdf
%.pdf: %.tex fm.tex bm.tex
	# 生成临时tex文件,按顺序合并前置、目标文件、后置文件
	cat fm.tex $< bm.tex > temp_$*.tex
	# 编译临时tex文件,生成临时PDF
	texify --pdf --synctex=1 --clean temp_$*.tex
	# 将临时PDF重命名为目标文件名的PDF
	mv temp_$*.pdf $@
	# 清理临时tex文件
	rm -f temp_$*.tex

关键部分说明

  • %.pdf: %.tex fm.tex bm.tex:把目标改成%.pdf,同时把fm.tex和bm.tex加为依赖,只要这三个文件有任何一个修改,都会触发重新编译。
  • cat fm.tex $< bm.tex > temp_$*.tex:$<代表第一个依赖文件(也就是你要处理的xxx.tex),这条命令把三个文件按顺序合并成一个临时tex文件。
  • texify --pdf --synctex=1 --clean temp_$*.tex:编译临时文件,--clean会自动清理编译生成的辅助文件(比如aux、log这些)。
  • mv temp_$*.pdf $@:$@代表目标文件(xxx.pdf),把编译出来的临时PDF重命名成你需要的文件名。
  • rm -f temp_$*.tex:手动删除我们自己创建的临时tex文件。

使用方式

比如你要处理test.tex,直接运行:

make test.pdf

或者简化成:

make test

Make会自动匹配对应的规则,最终生成test.pdf,内容包含fm.tex、test.tex、bm.tex的内容。

内容的提问来源于stack exchange,提问作者Russell Urquhart C

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 15:32:35