\def
在我编辑的一本大书中,我有时会通过或简化(美化或以其他方式更改)序言中定义的全局宏,\(new|renew|provide)command
然后观察更改是否对编译时间和输出的 PDF 文件产生影响。为此,我通过 测量编译书籍的时间,\usr\bin\time -p <my compilation command>
并使用 将更改前的文件与更改后的文件进行比较diff -a book_before_the_changes.pdf book_after_the_changes.pdf
。当宏简化没有效果时,唯一的变化diff
就是输出一个人类可读的 ACSII 时间戳,我可以从屏幕上读取它。当宏简化确实有一定效果时,diff
会输出一堆难以阅读的乱码,这导致我通过 之类的命令进一步检查情况diffpdf
,这会花费更长的时间。
最近,我从 切换pdflatex
到xelatex
,它以这样一种方式压缩输出的 PDF 文件,即diff -a book_before_the_changes.pdf book_after_the_changes.pdf
总是输出不可读的乱码。有没有办法解决这个问题,例如,通过阻止压缩,或者通过迅速地通过其他实用程序比较前一版本和当前版本以查找有意义的更改?如果有这样的方法,那会是什么?
答案1
您可以使用 \special 来避免压缩:
\documentclass{article}
\special{dvipdfmx:config z 0}
\begin{document}
blbl
\end{document}
测试系统l3build
还可以基于 pdf 输出进行测试——它创建文件,其中删除了编译期间发生变化的二进制文件和其他内容(如日期)。