![如何防止 \endlinechar=-1 干扰已加载的 EPS 图像?](https://linux22.com/image/239371/%E5%A6%82%E4%BD%95%E9%98%B2%E6%AD%A2%20%5Cendlinechar%3D-1%20%E5%B9%B2%E6%89%B0%E5%B7%B2%E5%8A%A0%E8%BD%BD%E7%9A%84%20EPS%20%E5%9B%BE%E5%83%8F%EF%BC%9F.png)
我必须在一个块中工作,该块从\endlinechar=-1\relax
删除每行末尾的任何空格开始。之后\endlinechar=-1\relax
,将有与加载图像(EPS、PNG、JPG、PDF)和绘制几何对象(由 PSTricks 提供)相关的代码。
不幸的是\endlinechar=-1\relax
破坏了加载的 EPS 图像的结构,如下所示。
% Trash.tex
\documentclass{standalone}
\usepackage{graphicx}
\begin{document}
\endlinechar=-1\relax
% other settings go here
% ...
\includegraphics{Image.eps}% extension is explicitly specified to emphasize that it is an EPS image!
% other codes go here
% ...
\end{document}
如何防止\endlinechar=-1\relax
干扰加载的EPS图像?
注意:此问题仅在加载 EPS 时发生。加载 PDF 或 JPG 已测试过,没有问题。
答案1
正如错误消息所示,错误发生在\Gread@eps
宏中(它是 DVI/PS 输出驱动程序的一部分,当然是 EPS 特有的,这解释了为什么 PDF 或 JPG 文件不受影响)。那里的代码想要将行尾字符的 catcode 更改为 5(RETURN,即正常值),但不会更改本身\endlinechar
。这里是 -1,这不是有效的输入\catcode<char number>=<catcode>
。恕我直言,这实际上是该代码中的一个错误。
您需要将 改回\endlinechar
周围的正常值 (13) \includegraphics
,修补 的一些内部宏以graphics/x
自动执行此操作,或者根本不更改 的值\endlinechar
。在后一种情况下,您可以使用\catcode\endlinechar=9\relax
使 TeX 忽略结束符,而不是像以前那样不插入它们\endlinechar=-1\relax
。它应该会在文档中产生相同的结果,但可以与\Gread@eps
宏一起使用。