pstool
我在工作中遇到了问题\psfragfig
。
我有一个如下所示的文件夹结构:
main.tex
images/
|
|-testeps.eps
MWE 如下所示。为了完整起见,所有软件包都包括在内,因为这反映了我使用的大学提供的自定义类文件。该类文件中还包含一些其他命令,但这些命令主要与标题和标题的自定义有关,因此省略。
\documentclass[a4paper,11pt,twoside,onecolumn,openright]{book}
% Packages found in the class (.cls) file
\RequirePackage{fncychap}
\RequirePackage{ifthen}
\RequirePackage{ifpdf}
\RequirePackage{hyperref}
\RequirePackage{colortbl}
\RequirePackage{geometry}
\RequirePackage{fancyhdr}
\RequirePackage{graphicx}
\RequirePackage{eso-pic}
\RequirePackage{psfrag}
\RequirePackage{nomencl}
\RequirePackage{subfig}
\RequirePackage{caption}
% Packages added by me
\usepackage{pdfsync} % enable tex source and pdf output syncronicity
\usepackage{natbib} % fancy citations
\usepackage{amsmath} % enables no-number equations {equations*}
\usepackage{tikz} % needed to import .tikz graphics
\usepackage{pgfplots} % needed to import .tikz graphics
\usetikzlibrary{plotmarks} % needed for tikz scatter plot
\usepackage[section]{placeins} % keeps figures from floating out of a
\usepackage{pstool} % necessary for psfrag with pdflatex
\DeclareGraphicsExtensions{.pdf,.png,.jpg,.eps} %graphicsx package set-up
\begin{document}
Text.
\psfragfig*[width=0.8\linewidth]{images/testeps}
{
\psfrag{A}{$flatplate_2$}
\psfrag{B}{$Plate_2$}
\psfrag{C}{$\gamma$}
}
\end{document}
这个 MWE 第一次编译很好,但是当我第二次尝试时,输出如下所示:
日志文件中包含以下错误行:
! LaTeX Error: Cannot determine size of graphic in testeps.pdf (no BoundingBox)
我必须手动删除图像文件夹中除 .eps 文件之外的所有文件,然后它才能再次工作。
显然,我不想每次重新运行之前都手动删除所有文件,那么如何解决这个问题呢?
我在 Mac OSX 上使用 TeXShop 3.24。
更新 1:
pstool
第一次运行后,似乎会因 .pdf 文件的存在而出错。首次运行后,图像文件夹包含以下文件:
testeps-pstool.aux
testeps-pstool.out
testeps-pstool.pdfsync
testeps.eps
testeps.pdf
如果我删除 .pdf 文件并重新运行,一切都会顺利。
更新 2:
似乎
\DeclareGraphicsExtensions{.pdf,.png,.jpg,.eps} %graphicsx package set-up
出现了问题。删除该行即可解决我的问题。
答案1
和工具它会加载
graphicx
并psfrag
。通过删除不必要的包来制作一个简单的 MWE 来演示错误。由于知道在辅助处理(latex->dvips->ps2pdf)期间选择哪种格式,因此不需要
\DeclareGraphicsExtensions{.pdf,.png,.jpg,.eps}
使用。pdflatex
psfrag
在 TeXLive 发行版中,
.eps
文件也包含通过epstopdf自动(在引擎盖下)但在 MiKTeX 中,它需要明确包含在前言中。以下示例使用 EPS 图形试用.eps在 ctan 和更多示例在ctan
% compiled by `pdflatex --shell-escape` enabled \documentclass{book} \listfiles % to show the list of packages loaded in .log file \usepackage[crop=pdfcrop,process=all,cleanup={.tex,.dvi,.ps,.pdf,.log}]{pstool} % Good options for pstool package \EndPreamble % Will help to pick the right preamble in pstool auxillary process \usepackage{color} \begin{document} \begin{figure} \centering \includegraphics[width=0.8\linewidth]{trial.eps} \caption{Tagged eps image} \end{figure} \begin{figure} \centering \psfragfig[width=0.8\linewidth]{trial}{\color{red} \psfrag{[Mp]}{$M_A$}% \psfrag{[hb]}{$H_B$}} \caption{Replacing tags with real labels with psfrag} \end{figure} \end{document}