登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
科技
›
$\LaTeX{}$之快速编译和删除中间文件
$\LaTeX{}$之快速编译和删除中间文件
[ 复制链接 ]
施婉秀
2025-10-1 13:38:05
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
本文介绍了在 \(\LaTeX{}\) 中如何使用批处理文件和Makefile来实现快速编译和删除中间文件,保持工作目录的清爽整洁。
批处理文件
在Windows下可以使用批处理文件来处理,也可以使用Makefile(但需配置make环境)。这里为了操作简单性,在Windows下只介绍如何使用批处理文件来实现快速删除中间文件和快速编译。
快速删除中间文件(辅助文件)
步骤如下:
新建文本文件命名为clean.bat;
复制下面的代码放到文本文件中;
@echo off
echo Cleaning auxiliary files...
del /s /q "*.aux" "*.log" "*.out" "*.bbl" "*.blg" "*.toc" "*.lof" "*.lot" "*.synctex.gz"
echo Cleaning completed!
pause
复制代码
将文件放入主文件(.tex)所在文件夹中,双击运行即可删除中间文件以及子文件夹中的中间文件。
快速编译并删除中间文件
步骤如下:
新建文本文件命名为compile.bat;
复制下面的代码放到文本文件中;
@echo off
:: ==============================================
:: LaTeX Compile Automation Script (XeLaTeX + BibTeX)
:: Usage: Drag and drop the .tex file onto this script or manually specify the file name
:: ==============================================
:: set variable
set TEX_COMPILER=xelatex
set BIB_COMPILER=bibtex
set MAX_ATTEMPTS=3
set LOG_EXTENSIONS=*.aux *.log *.out *.bbl *.blg *.toc *.lof *.lot *.synctex.gz
:: Check whether the file is obtained by dragging
if "%~1"=="" (
echo Error: Please drag the .tex file onto this script or manually specify the file name
pause
exit /b 1
)
:: Extract the file name (without extension)
set "TEX_FILE=%~1"
set "BASE_NAME=%~n1"
:: Compile function definition
:compile
echo.
echo =============== Start Compiling... ===============
echo Compiling document: %TEX_FILE%
:: First XeLaTeX Compilation
echo.
echo [1/4] First %TEX_COMPILER% compiling...
%TEX_COMPILER% -interaction=nonstopmode -synctex=1 "%BASE_NAME%.tex"
if %ERRORLEVEL% neq 0 (
echo Error: First %TEX_COMPILER% Compilation failed
goto error_handling
)
:: BibTeX Compilation
echo.
echo [2/4] %BIB_COMPILER% compiling reference...
%BIB_COMPILER% "%BASE_NAME%.aux"
if %ERRORLEVEL% neq 0 (
echo Warning: %BIB_COMPILER% There may be issues with the compilation (check the .blg file)
)
:: Second XeLaTeX Compilation
echo.
echo [3/4] Second %TEX_COMPILER% compiling...
%TEX_COMPILER% -interaction=nonstopmode -synctex=1 "%BASE_NAME%.tex"
if %ERRORLEVEL% neq 0 (
echo Error: Second %TEX_COMPILER% Compilation failed
goto error_handling
)
:: Third XeLaTeX Compilation (Ensure correct cross-referencing)
echo.
echo [4/4] Third %TEX_COMPILER% compiling...
%TEX_COMPILER% -interaction=nonstopmode -synctex=1 "%BASE_NAME%.tex"
if %ERRORLEVEL% neq 0 (
echo Error: Third %TEX_COMPILER% Compilation failed
goto error_handling
)
:: Cleaning auxiliary files (Optional)
echo.
echo Cleaning auxiliary files...
del /s /q %LOG_EXTENSIONS% 2>nul
:: Completed Successfully
echo.
echo =============== Compilation Completed Successfully ===============
echo Final output file: %BASE_NAME%.pdf
start "" "%BASE_NAME%.pdf" :: Automatically open the generated PDF
goto end
:: Error Handling
:error_handling
set /a ATTEMPTS+=1
if %ATTEMPTS% lss %MAX_ATTEMPTS% (
echo.
echo Attempting to fix the issue (attempt %ATTEMPTS%/3)...
goto compile
)
echo.
echo =============== Compilation Failed ===============
echo After %MAX_ATTEMPTS% attempts, it has not been successful. Please check the logs:
type "%BASE_NAME%.log" | more
goto end
:end
pause
复制代码
将文件放入主文件(.tex)所在文件夹中,拖动主文件到该脚本上,或者命令行运行:compile.bat main.tex。
注意事项:
TEX_COMPILER可更换为pdflatex或lualatex编译命令,且删除辅助文件的命令可选择删除掉,避免每次都需要重新生成中间文件浪费时间。
Makefile
常规编译方法
[code]# 定义编译器LATEX = xelatex# 定义需要清理的辅助文件扩展名AUX_FILES = *.aux *.log *.out *.toc *.lof *.lot *.bbl *.blg *.synctex.gz *.fls *.fdb_latexmk *.run.xml *.nav *.snm *.vrb *.bcf *.idx *.ilg *.ind *.xdv# 获取当前目录下所有 .tex 文件(排除带空格的文件名)TEX_FILES = $(wildcard *.tex)PDF_FILES = $(TEX_FILES:.tex=.pdf)# 默认目标:编译所有 .tex 文件all: $(PDF_FILES) @echo "编译完成!"# 模式规则:从 .tex 生成 .pdf%.pdf: %.tex $(LATEX) -interaction=nonstopmode -halt-on-error $< #@# 如果有参考文献,运行 biber 或 bibtex #@if [ -f $(basename $
LaTeX
快速
编译
删除
中间
相关帖子
快速构建一个基础、现代化的 WinForm 管理系统!
【工具分享】如何快速地、可视化地跟其他同学沟通复杂逻辑——用代码画流程图
LaTeX学习笔记:文档排版基础
快速了解Linux中的lsmod命令
LightRAG:简单快速的检索增强生成工具,多项功能革新RAG领域!
命令行创建与删除Oracle数据库:全流程实战指南
如何快速对接印度股票市场 (NSE/BSE) 数据接口
快速配置Containerd镜像加速(附最新可用加速地址)
MAF快速入门(4)多Agent工作流编排
从0开始完成ActiveMQ-cpp在windows_x86平台的编译(从编译openssl开始)
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
快速构建一个基础、现代化的 WinForm 管理系统!
1
713
言晓莉
2025-11-20
安全
【工具分享】如何快速地、可视化地跟其他同学沟通复杂逻辑——用代码画流程图
3
582
章海
2025-11-21
业界
LaTeX学习笔记:文档排版基础
0
570
庞悦
2025-11-22
业界
快速了解Linux中的lsmod命令
1
303
靳谷雪
2025-11-25
安全
LightRAG:简单快速的检索增强生成工具,多项功能革新RAG领域!
2
1009
左丘雅秀
2025-11-29
业界
命令行创建与删除Oracle数据库:全流程实战指南
0
696
薛小春
2025-12-01
安全
如何快速对接印度股票市场 (NSE/BSE) 数据接口
0
909
吕清莹
2025-12-01
业界
快速配置Containerd镜像加速(附最新可用加速地址)
0
944
阎怀慕
2025-12-02
业界
MAF快速入门(4)多Agent工作流编排
1
155
赖珊
2025-12-02
业界
从0开始完成ActiveMQ-cpp在windows_x86平台的编译(从编译openssl开始)
0
333
鲫疹
2025-12-04
回复
(1)
荡俊屯
2025-11-27 07:11:37
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
热心回复!
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
业界
安全
签约作者
程序园优秀签约作者
发帖
施婉秀
2025-11-27 07:11:37
关注
0
粉丝关注
29
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
anyue1937
9994893
kk14977
6845355
3934307807
991122
4
xiangqian
638210
5
宋子
9987
6
闰咄阅
9991
7
刎唇
9993
8
俞瑛瑶
9998
9
蓬森莉
9952
10
匝抽
9986
查看更多