Google 出品 arXiv上传神器:一键清除辅助文件,保护隐私;自动精简压缩图片文件,轻松应对 50MB 限制

发布于 2024-07-31 09:47:27

提交前使用 arxiv_latex_cleaner,删除注释、精简文件!🚀

image.png

这是 Google Research 推出的一个开源项目,旨在帮助科研人员和学术界人士优化他们的 LaTeX 源代码,使其更符合出版标准,更易于阅读和维护。这个工具可以自动检测并修复常见的 LaTeX 错误、冗余代码以及其他可能影响编译效率或可读性的问题。

项目基于 Python 开发,利用了 pylatexenc 库来解析和操作 LaTeX 源文件。

它的核心功能包括:

  • 代码格式化:通过调整缩进、去除空行和不必要的空白字符,使得源代码更加整洁。
  • 错误检查与修复:识别并解决潜在的 LaTeX 语法错误,例如未闭合的环境、缺失的引用等。
  • 宏定义优化:统一并简化宏定义,避免重复或不一致的命令。
  • 依赖管理:自动提取并更新所需的包,确保文档编译顺畅。
  • 代码结构改善:整理 input 和 include 指令,提高源码组织性。

应用场景

  • 对于经常撰写和维护 LaTeX 论文的研究者来说,这个工具可以帮助他们节省时间,减少手动清理代码的工作量,专注于内容创作。
  • 学生在编写毕业论文时,可以使用它来保持代码规范,提高审阅者的阅读体验。
  • 教授或导师可以要求学生提交经过此工具处理的代码,以保证论文质量的一致性。

用途表述

🔒 隐私保护:

  1. 一键清除所有辅助文件(.aux, .log, .out 等),让隐私泄露无处藏身。
  2. 智能去除代码中的所有注释,无论是begin{comment}还是iffalsefi,统统不见!

📝 自定义清理:

  1. 支持删除用户自定义命令,比如将todo{}重新定义为空字符串,让它们在提交前消失无踪。
  2. 通过 cleaner_config.yaml 文件,自定义正则表达式替换规则,满足你的个性化需求。

📏 文件尺寸优化:

  1. 智能识别并删除所有未使用的.tex 文件和图片,节省空间。
  2. 可选功能:统一调整图片大小,或压缩 PDF 文件,进一步减小提交文件的体积。

无论你是 LaTeX 新手还是经验丰富的用户,ArXiv LaTeX Cleaner 都能为你的文档编写过程带来便利。 一键清除注释和辅助文件,保护信息隐私;而且可以精简文件,轻松应对 arXiv 的 50MB 限制!让科研工作变得更加高效!

工具获取

安装方法

通过 pip 安装 arxiv-latex-cleaner

pip install arxiv-latex-cleaner

arxiv_latex_cleaner 仅与 Python >=3.9 兼容 ❗

如果是使用 MacOS,你可以使用 Homebrew 进行安装:

brew install arxiv_latex-cleaner

或者,你可以下载源代码:

git clone https://github.com/google-research/arxiv-latex-cleaner
cd arxiv-latex-cleaner/
python -m arxiv_latex_cleaner --help

然后从源代码直接安装为命令行程序:

python setup.py install

示例调用

arxiv_latex_cleaner /path/to/latex --resize_images --im_size 500 --images_allowlist='{"images/im.png":2000}'

或者简单地从一个配置文件开始:

arxiv_latex_cleaner /path/to/latex --config cleaner_config.yaml

参数说明

arxiv_latex_cleaner@v1.0.8 的使用方法如下:
命令格式

arxiv_latex_cleaner@v1.0.8 [选项] 输入文件夹

位置参数

  • 输入文件夹: 包含 LaTeX 代码的文件夹。

可选参数

  • -h, --help: 显示帮助信息并退出。
  • –resize_images: 调整图像大小。
  • –im_size IM_SIZE: 输出图像的大小(以像素为单位,最长边)。请根据您的需求调整,以尽可能接近 10MB。
  • –compress_pdf: 使用 ghostscript 压缩 PDF 图像(仅限 Linux 和 Mac)。
  • –pdf_im_resolution PDF_IM_RESOLUTION: 工具重新采样 PDF 图像的分辨率(以 dpi 为单位)。
  • –images_allowlist IMAGES_ALLOWLIST: 不会被调整到默认分辨率的图像(和 PDF),而是使用此处提供的分辨率。值对于图像是像素,对于 PDF 是 dpi,分别对应 --im_size 和 --pdf_im_resolution。格式是字典,例如:{"path/to/im.jpg": 1000}
  • –keep_bib: 避免删除 *.bib 文件。
  • –commands_to_delete COMMANDS_TO_DELETE [COMMANDS_TO_DELETE …] : 将被删除的 LaTeX 命令。例如,删除所有 \todo1{}\todo2{} 的实例,可以使用 --commands_to_delete todo1 todo2。请注意,位置参数 input_folder 不能紧跟在 commands_to_delete 之后,因为解析器无法判断它是另一个要删除的命令。
  • –commands_only_to_delete COMMANDS_ONLY_TO_DELETE [COMMANDS_ONLY_TO_DELETE …] : 将被删除的 LaTeX 命令,但保留命令中的文本。这对于更改文本格式和颜色的命令很有用,您可能想要删除这些命令,但保留其中的文本。用法与 commands_to_delete 完全相同。请注意,如果此处列出的命令与 commands_to_delete 之后重复,则默认操作是保留包装文本。
  • –environments_to_delete ENVIRONMENTS_TO_DELETE [ENVIRONMENTS_TO_DELETE …] : 将被删除的 LaTeX 环境。例如,删除所有 \begin{note} … \end{note} 的实例,可以使用 --environments_to_delete note。请注意,位置参数 input_folder 不能紧跟在 environments_to_delete 之后,因为解析器无法判断它是另一个要删除的环境。
  • –if_exceptions IF_EXCEPTIONS [IF_EXCEPTIONS ...] : 简化常量 TeX 原始条件语句 (iffalse, iftrue 等),即保留真分支,删除假分支。为了正确解析条件结构,所有以 \if 开头的命令都被假定为 TeX 原始条件语句(例如,由 newififvar 声明)。一些已知规则的例外情况已包括在内(例如,iff, ifthenelse 等),但您可以使用 --if_exceptions iffalt 添加自定义例外。
  • –use_external_tikz USE_EXTERNAL_TIKZ: 包含外部化 tikz 图形的 PDF 格式的文件夹(相对于输入文件夹)。
  • –svg_inkscape [SVG_INKSCAPE] : 包含由 Inkscape 生成的 PDF 文件,使用 svg 包的 \includesvg 命令。这是通过将 \includesvg 调用替换为指向生成的 .pdf_tex 文件的 \includeinkscape 调用来实现的。默认情况下,这些文件和生成的 PDF 位于 ./svg-inkscape(相对于输入文件夹),但可以提供不同的路径(相对于输入文件夹),以防在加载 svg 包时设置了不同的 inkscapepath
  • –config CONFIG: 从 .yaml 配置文件读取设置。如果还提供了命令行参数,则配置文件参数将使用命令行参数更新。
  • –verbose: 启用详细输出。
0 条评论

发布
问题