当我使用 psfrag 时,如何避免手动删除所有帮助文件?

当我使用 psfrag 时,如何避免手动删除所有帮助文件?

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

  • 工具它会加载graphicxpsfrag。通过删除不必要的包来制作一个简单的 MWE 来演示错误。

  • 由于知道在辅助处理(latex->dvips->ps2pdf)期间选择哪种格式,因此不需要\DeclareGraphicsExtensions{.pdf,.png,.jpg,.eps}使用。pdflatexpsfrag

  • 在 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}
    

在此处输入图片描述

在此处输入图片描述

相关内容