原理_在Linux终端仿Overleaf,已Ai细化 📅 2026/7/2 9:19:47 # LaTeX 编译思路脱敏版 ## 目录与路径说明 - **脚本存放目录**[脚本路径] - **LaTeX 项目工作目录**[工作目录] - **编译程序** - XeLaTeX[XeLaTeX 程序路径] - Biber参考文献处理[Biber 程序路径] --- ## 1. 编译前清理工作目录 删除工作目录下的所有文件保留目录本身 bash find [工作目录] -maxdepth 1 -type f -delete重建主文件和参考文献文件强制删除并重新创建 ARGD923.tex 和 ARGD923.bib存在则删不存在则新建rm-f[工作目录]/ARGD923.{tex,bib}touch[工作目录]/ARGD923.{tex,bib}编辑源文件编辑 ARGD923.texnano[工作目录]/ARGD923.tex编辑 ARGD923.bib带交互询问[-f[工作目录]/ARGD923.bib]nano[工作目录]/ARGD923.bib||{read-p文件不存在是否创建(y/N) ans;[[$ans~^[Yy]$]]touch[工作目录]/ARGD923.bibnano[工作目录]/ARGD923.bib||echo未创建取消操作;}逻辑说明· 若文件已存在 → 直接打开 nano 编辑无询问。· 若文件不存在 → 提示 (y/N)· 输入 y 或 Y → 创建空文件并打开编辑。· 直接回车或输入其他内容 → 取消操作不创建文件。该命令为独立逻辑链执行后不影响后续命令的执行。判断文件是否非空判断 ARGD923.tex 是否大于 0 字节if[-s[工作目录]/ARGD923.tex];thenecho文件非空大于0字节elseecho文件为空或不存在fi判断 ARGD923.bib 是否大于 0 字节同理if[-s[工作目录]/ARGD923.bib];thenecho文件非空大于0字节elseecho文件为空或不存在fi编译策略根据 ARGD923.bib 是否含有内容采取不同的编译流程。情况一ARGD923.bib 为空或不存在仅编译两次 XeLaTeX用于解决交叉引用[XeLaTeX 程序路径]--interactionnonstopmode ARGD923.tex[XeLaTeX 程序路径]--interactionnonstopmode ARGD923.tex情况二ARGD923.bib 非空包含参考文献条目执行完整编译流程XeLaTeX → Biber → XeLaTeX → XeLaTeX[XeLaTeX 程序路径]--interactionnonstopmode ARGD923.tex[Biber 程序路径]ARGD923[XeLaTeX 程序路径]--interactionnonstopmode ARGD923.tex[XeLaTeX 程序路径]--interactionnonstopmode ARGD923.tex编译产物最终生成的文件位于 [工作目录] 下· ARGD923.log日志文件· ARGD923.pdfPDF 文档推送至远程设备如 Termux远程连接信息· 端口[SSH 端口]· 用户名[用户名]· IP 地址[IP 地址]· 目标目录[远程目录]推送命令模板scp-P[端口][本地文件][用户名][IP]:[远程目标绝对路径]具体推送分别独立判断 log 和 pdf若 [工作目录]/ARGD923.log 存在 → 推送该文件若 [工作目录]/ARGD923.pdf 存在 → 推送该文件两者互不影响独立推送。特别说明· ARGD923 为示例文档名非敏感信息。· 所有 [占位符] 需替换为实际值。