arara 能检测文件大小吗?

arara 能检测文件大小吗?

我有一本大书,里面有很多章节、很多图表和 tikz 图片,其中一些文件非常大(超过 100MB)。我利用https://docs.google.com/viewer?url=从 GitHub 获取章节并在浏览器上可视化 pdf。问题是文件大小限制为 20MB。

我目前使用ghostscript来减小文件大小,我最近发现arara并在文档中读到它支持gs。我想知道是否可以创建一个条件使用,仅当文件大小超过 20MB 时才arara运行。gs

答案1

绝对有可能利用底层File类。为了测试目的,让我们创建一个正好 20MB 的文件:

[paulo@cambridge ~] $ truncate -s 20MB foo.dat
[paulo@cambridge ~] $ ls -l foo.dat
-rw-rw-r--. 1 paulo paulo 20000000 ago  8 10:46 foo.dat

现在,让我们创建一个非常简单的 TeX 文件:

Hello
\bye

并添加以下指令:

% arara: pdftex if toFile('foo.dat').length() <= 20000000
% arara: xetex if toFile('foo.dat').length() < 20000000

我们利用toFile(...),它返回一个File对象,然后使用length()方法来获取特定文件的总字节数。第一个指令将运行 PDFTeX,当且仅当 的大小foo.dat小于或等于 20MB(20,000,000 字节)。同样,第二个指令将运行 XeTeX,当且仅当 的大小foo.dat小于 20MB。

跑步arara test.tex会给我们

[paulo@cambridge ~] $ arara test.tex
  __ _ _ __ __ _ _ __ __ _
 / _` | '__/ _` | '__/ _` |
| (_| | | | (_| | | | (_| |
 \__,_|_|  \__,_|_|  \__,_|

Processing "test.tex" (size: 129 B, last modified: 08/08/2021
11:00:38), please wait.

(PDFTeX) PDFTeX engine .................................. SUCCESS

Total: 0.45 seconds

这是意料之中的,因为的大小foo.dat等于 20MB。这个技巧也可以在规则上下文中使用。希望这可以作为一个起点。;)

相关内容