我想寻求帮助,解决由于软件包pinlabel
和(似乎)Adobe Illustrator CS2 之间的某些交互而导致的错误。我将在下面描述情况;我的问题很简单:我该怎么做才能防止发生此错误? 该网站之前曾描述过类似的情况,但没有包含问题。我希望我的问题足够直接,我感谢任何提供的帮助。
我的设置:Mac OS 10.7.5;TexShop 2.47;pinlabel.sty
v 1.2;Adobe Illustrator CS6(版本 16.0)。
问题:当我使用pinlabel
Illustrator 创建的 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 文件,则需要更改其名称或以某种方式隐藏它。