为什么我的 psfrag 替换没有发生?

为什么我的 psfrag 替换没有发生?

我无法让简单的psfrag变电站运行,并且想知道我是否缺少某个可以让它们工作的选项或偏好。

我使用 LyX 按文档构建,但我尝试的几乎每个工具都存在同样的问题。我能够进行替换的唯一方法是使用Typeset > TeX and DVIMWE 在 TeXShop 中进行选择。但这不是我构建实际文档的地方,而且我认为我无法(可能也不想)在我实际工作的 LyX 中进行等效更改。

有没有什么方法可以修改下面的代码以便使用 pdflatex 进行替换(如果这甚至相关的话)?

\documentclass{scrartcl}  
\usepackage{pstool}
\usepackage{psfrag}
\usepackage{tikz}

\begin{document}

\psfragfig*{graphA}{
    \psfrag{X}{$\epsilon$}
} 

\psfragfig{graphA}{
    \psfrag{X}{$\pi$}
} 

\psfragfig!{graphA}{
    \psfrag{X}{Q}
} 

\psfrag{X}{Help}
\includegraphics{graphA}

\end{document} 

答案1

为了在直接编译 tex-->pdf 时获得正确排版的 psfrag(和 pstricks)内容,您应该使用包auto-pst-pdf,该包在第一次运行中创建一个文件\jobname-pics.pdf,该文件收集所有转换为 pdf 并嵌入 pstricks 内容的 eps 文件。

你只需要\usepackage{auto-pst-pdf}在前言中。
如果-pics.pdf创建了它并且你不再更改图片,你可以将选项 [off] 设置为调用\usepackage[off]{auto-pst-pdf}以获得更快的编译速度。

给出一个工作示例:

\documentclass{article}
\usepackage{auto-pst-pdf}
\usepackage{graphicx}
\usepackage{psfrag}

\begin{document}

Some text

{
\psfrag{P1}{$P_1$}\psfrag{a}{\alpha}
\includegraphics[width=0.5\textwidth]{TestEps}
}

{
\psfrag{P1}{$Q=P_1$}
\includegraphics[width=0.5\textwidth]{TestEps}
}

\end{document}

答案2

正如您现在所知,psfrag需要latex->dvips链条并且不能与一起使用pdflatex

一种可能的(不太好的)解决方法是创建一个最小文档,其中仅包含该图形并用于psfrag替换标签,然后使用latex->dvips->pstopdf(或者可能是latex->dvipdfm)编译该文档,以获得pdf仅包含该图形的文件。您还可以使用preview包创建一个页面大小与所含图形大小完全匹配的 pdf。

一旦您通过这种方式创建了 pdf 图形,您就可以通过将其导入到您的“主”文件中\includegraphics,并使用它pdflatex来处理该文件。

相关内容