#============================================================================== # LaTeX文档编译脚本 # 汕头市自然资源动态监测项目方案 #============================================================================== .PHONY: all clean view # 编译命令(使用lualatex) LATEX = lualatex LATEX_OPTS = -interaction=nonstopmode -file-line-error # 主文档名 TARGET = main # 默认目标:强制重新编译PDF all: @if [ -f $(TARGET).pdf ]; then \ echo "=== 删除旧PDF,强制重新编译 ==="; \ rm -f $(TARGET).pdf; \ fi @echo "=== 第一次编译 ===" $(LATEX) $(LATEX_OPTS) $(TARGET).tex || true @echo "" @echo "=== 第二次编译(生成目录和引用)===" $(LATEX) $(LATEX_OPTS) $(TARGET).tex || true @if [ -f $(TARGET).pdf ]; then \ echo ""; \ echo "编译完成!生成文件:$(TARGET).pdf"; \ ls -lh $(TARGET).pdf; \ else \ echo "编译失败,请检查错误信息"; \ exit 1; \ fi # 生成PDF $(TARGET).pdf: $(TARGET).tex techreport.cls @if [ -f $(TARGET).pdf ]; then \ echo "=== 已有旧版PDF,删除重新编译 ==="; \ rm -f $(TARGET).pdf; \ fi @echo "=== 第一次编译(xelatex)===" $(LATEX) $(LATEX_OPTS) $(TARGET).tex || true @echo "" @echo "=== 第二次编译(生成目录和引用)===" $(LATEX) $(LATEX_OPTS) $(TARGET).tex || true @if [ -f $(TARGET).pdf ]; then \ echo ""; \ echo "编译完成!生成文件:$(TARGET).pdf"; \ ls -lh $(TARGET).pdf; \ else \ echo "编译失败,请检查错误信息"; \ exit 1; \ fi # 快速编译(draft模式) draft: $(LATEX) --draftmode $(LATEX_OPTS) $(TARGET).tex # 清理辅助文件 clean: @echo "清理辅助文件..." rm -f $(TARGET).aux $(TARGET).log $(TARGET).out rm -f $(TARGET).toc $(TARGET).lof $(TARGET).lot rm -f $(TARGET).bbl $(TARGET).blg $(TARGET).synctex.gz rm -f $(TARGET).fdb_latexmk $(TARGET).fls rm -f missfont.log @echo "清理完成!" # 预览PDF view: $(TARGET).pdf @if command -v xdg-open > /dev/null 2>&1; then \ xdg-open $(TARGET).pdf; \ elif command -v open > /dev/null 2>&1; then \ open $(TARGET).pdf; \ else \ echo "请手动打开 $(TARGET).pdf"; \ fi # 查看辅助文件大小 size: @echo "辅助文件大小:" @ls -lh $(TARGET).aux $(TARGET).log $(TARGET).out $(TARGET).toc 2>/dev/null || echo "无辅助文件或文件不存在" # 帮助信息 help: @echo "LaTeX文档编译脚本 - 汕头市自然资源动态监测项目方案" @echo "" @echo "可用命令:" @echo " make - 完整编译PDF(推荐)" @echo " make draft - 快速编译(不生成最终PDF)" @echo " make clean - 清理辅助文件" @echo " make view - 编译并预览PDF" @echo " make help - 显示此帮助信息" @echo "" @echo "编译说明:" @echo " - 使用xelatex编译" @echo " - 需要运行两次以正确生成目录和引用" @echo " - 字体:使用fonts文件夹中的本地字体(simsun.ttc, TimesNewRoman.ttf等)"