使用 pstool 和 beamer

使用 pstool 和 beamer

我想使用pstoolbeamer创建一个演示文稿,pdflatex其中包含由 处理过的图像psfrag。但是,正如下面的简单示例所示,图像是使用 documentclass 处理的beamer,因此每个图像beamer周围都有一个完整的“框架”。有办法解决这个问题吗?

\documentclass{beamer}

\usepackage{lmodern}
\usepackage{graphicx}
\usepackage[process=all,crop=pdfcrop]{pstool}

\begin{document}
\begin{frame}
    \frametitle{Circle}
    \begin{figure}
        \psfragfig[width=0.3\textwidth]{figures/circle}
        {
            \psfrag{1}{\(s\)}
        }
    \end{figure}
\end{frame}
\end{document}

例子

我怀疑如果可以覆盖用于pstool处理图形的文档类,那将是一个解决方案,但我还没有找到如何做到这一点。

谢谢。

答案1

解决这个问题的关键是认识到“常规”编译过程以 PDF 模式通过 pdfLaTeX 发送您的文档,并且为了进行替换,psfrag图形以 DVI 模式通过 pdfLaTeX 发送。

因此,仅针对主文档或仅针对每个图形的条件命令可以简单地使用\ifpdf

\ifpdf
  % setup for the main document only
\else
  % setup for pstool images only
\fi

就你的情况来说:

\ifpdf\else
  \setbeamertemplate{navigation symbols}{}
\fi

文档中完全没有提到这一点,所以我现在就去修复它。

答案2

pstool软件包使用主文档类(在您的 Q 中是 beamer)的前导码在图形和 psfrag 命令latex-dvips-ps2pdf的底层辅助处理() 期间构建 pdf 图形。因此,要获得没有导航栏的图形,请添加.epscircle.pdf

\setbeamertemplate{navigation symbols}{} 

在序言中\documentclass{beamer}如何摆脱投影仪中的导航符号?并编译pdflatex -shell-escape得到

在此处输入图片描述

一旦所有 pdf 图形都通过辅助处理生成。设置选项process=none而不是process=all并注释掉仅有的像这样 %\setbeamertemplate{navigation symbols}{}用图形(无导航栏)处理投影仪幻灯片,最后你会在主投影仪幻灯片上得到导航栏。

笔记:\EndPreamble可用于限制用于辅助处理的前导码,从而加快处理速度。更多详细信息请参阅pstool 文档

答案3

使用 {背景画布}-图像时也会出现同样的问题。因此,这是使用 {背景画布}-图像的情况下 @Will 解决方案的扩展。

 \ifpdf
    \setbeamertemplate{background canvas}{%
    \includegraphics[width=\paperwidth,height=\paperheight]{my_background_image}  
    }
 \else
     \setbeamertemplate{navigation symbols}{}
     \setbeamertemplate{background canvas}{}
 \fi

相关内容