如何创建Make规则批量将所有*.md文件编译为PDF
批量生成Markdown对应的PDF的Makefile配置
直接在现有Makefile中新增一个pdf目标即可实现需求,修改后的完整Makefile如下:
pdf: $(patsubst %.md, %.pdf, $(wildcard *.md)) %.pdf: %.md pandoc $< -o $@
核心逻辑说明
$(wildcard *.md):自动获取当前目录下所有后缀为.md的文件,新增或删除.md文件时无需修改Makefile$(patsubst %.md, %.pdf, ...):把每个.md文件名转换为对应的.pdf文件名,作为pdf目标的依赖项- 执行
make pdf时,Make会自动对比每个.md和对应的.pdf的修改时间,只生成或更新需要的PDF文件,不用手动指定单个目标
额外提示
如果需要处理子目录中的Markdown文件,可将wildcard部分改为$(wildcard **/*.md)(此特性需要GNU Make支持)。
内容的提问来源于stack exchange,提问作者Thrastylon
相关产品推荐
相关产品推荐

