由于缓冲区大小,Latex 文件无法编译

由于缓冲区大小,Latex 文件无法编译

所以我有一些包含大型 eps 图像的 Latex 文件,这会导致错误buf_size。几个月前,当我编译这些文件时,我通过增加缓冲区大小解决了这个问题texmf.cnf。我最近在 Linux 和 Mac 上更新了 TeXLive,所以不得不再次更新。当我在 Mac 上添加以下内容时buf_size=2000000,它工作正常,但无论我在 Linux 上将其设置得多大,我都会遇到缓冲区大小太小的问题。我正在运行 Fedora 和 TeXLive 2014。有什么想法吗?

所以我把可疑文件缩小了,现在它可以在 Linux 上编译了,但这并不能解释为什么文件buf_size中的 texmf.cnf较大图像在 Mac 上可以修复它,但在 Linux 上却不行。不知道我可以在哪里发布有问题的文件,以便其他人可以尝试。

我正在修改文件/usr/local/texlive/2014/texmf.cnf

答案1

buff_size用作 tex 源的输入行缓冲区以及用于宏扩展的缓冲区。

因此,我认为它用于图形包含的唯一地方是寻找边界框。如果你查看文件,你应该会看到以下形式的注释

%%BoundingBox: 19 19 221 221

大概在它前面有一行 >2000000 个字符 (tiff 预览??)

如果你使用

\includegraphics[bb=19 19 221 221]{your_file}

使用适合您的 EPS 的任何数字,那么 LaTeX 将不需要读取边界框的文件。在这种情况下,latex 根本不会读取文件(实际文件包含由 dvi 驱动程序(如 dvips)完成)如果您使用 pdftex 或 luatex,那么它们实际上充当自己的驱动程序,因此需要包含文件,但不需要使用输入缓冲区逐行包含。

相关内容