如何避免 pinlabel/postscript 错误?

如何避免 pinlabel/postscript 错误?

我想寻求帮助,解决由于软件包pinlabel和(似乎)Adobe Illustrator CS2 之间的某些交互而导致的错误。我将在下面描述情况;我的问题很简单:我该怎么做才能防止发生此错误? 该网站之前曾描述过类似的情况,但没有包含问题。我希望我的问题足够直接,我感谢任何提供的帮助。

我的设置:Mac OS 10.7.5;TexShop 2.47;pinlabel.styv 1.2;Adobe Illustrator CS6(版本 16.0)。

问题:当我使用pinlabelIllustrator 创建的 eps 文件时,出现错误消息

! Text line contains an invalid character.
<read 1> ≈–”∆ ^^@
                 ^^@^^@XÊ^^F^^@^^@^^@^^@^^@^^@^^@^^@^^@xÊ^^F^^@B    ^^@^^@ˇˇ^^@...
l.165 \includegraphics{test}

一些备注:如果我只是按回车键来响应错误消息(或q批处理模式),那么文件最终将被处理。如果我使用pinlabel在另一个应用程序中创建的 eps 文件,则不会出现问题。如果我使用相同的图形文件而不使用命令,则不会出现任何错误消息。因此,我认为问题是某些命令与 Illustrator 生成的 eps 文件 pinlabel之间的交互。pinlabel

下面重现了产生此错误的示例 LaTeX 文件。有 3 个版本,显示了上一段中提到的 3 种行为。所需的 eps 文件位于目录中http://people.brandeis.edu/~ruberman/pinquestion/以及我的会话中的 LaTeX 源和日志文件。

%%%%%%% Sample latex code %%%%%%%

\documentclass[11pt,reqno]{amsart}
\usepackage{amscd,graphicx}
\usepackage{pinlabel}

\newcommand{\M}{\mathcal M}

\begin{document}

\begin{figure}[h]
    \begin{center}
        \labellist
        \normalsize\hair 0mm
    \pinlabel {$\M(X,g_t,\beta_t)$} at 83 15
    \endlabellist
\includegraphics{fig1}
\end{center}
\caption{The figure from another drawing program, with pinlabel commands}
\label{fig:param1}
\end{figure}


\begin{figure}[h]
  \begin{center}
\includegraphics{param1}
\end{center}
\caption{The figure produced by Illustrator, without pinlabel commands}
\label{fig:param1}
\end{figure}

\begin{figure}[h]
\begin{center}
    \labellist
    \normalsize\hair 0mm
    \pinlabel {$\M(X,g_t,\beta_t)$} at 83 15
    \endlabellist
\includegraphics{param1}
\end{center}
\caption{The figure produced by Illustrator, with pinlabel commands}
\label{fig:param1}
\end{figure}

\end{document}

答案1

我与该软件包的作者进行了交流pinlabel,他给了我一些建议。问题似乎是 Illustrator 生成的 EPS 文件在起始符之前%!PS-Adobe-3.1 EPSF-3.0%%EOF终止符之后有很多垃圾。因此,对我而言,一种有效的方法是在文本编辑器中打开 EPS 文件,然后删除那些起始符和终止符。有一个 perl 脚本removepreview.pl这将删除初始字符串,并且可能可以对其进行修改以删除后面的字符%%EOF。我对这个 perl 脚本没有任何运气,但这是另一天的事情了。

我发现一种更好的方法更方便,即让 Illustrator 将图形保存为 PDF 文件,然后可以使用 进行合并pdftex。这里唯一的技巧是,如果您在同一目录中有 EPS 文件和 PDF 文件,那么pdftex实际上将使用 EPS 文件而不是 PDF 文件,从而导致相同的错误。因此,如果您出于某种原因想要保留该 EPS 文件,则需要更改其名称或以某种方式隐藏它。

相关内容