將 pstool 與 beamer 結合使用

將 pstool 與 beamer 結合使用

我想使用pstoolwithbeamer創建一個演示文稿,其中pdflatex包含由 處理的數字psfrag。然而,正如下面的簡單範例所示,這些圖形是使用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

解決這個問題的關鍵是要實現「常規」編譯過程透過 pdfLaTeX 以 PDF 模式發送文檔,並且為了進行替換,psfrag圖形是透過 pdfLaTeX 以 DVI 模式發送。

因此,僅用於主文檔或僅用於每個圖形的條件命令可以簡單地使用\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)在figure和psfrag命令latex-dvips-ps2pdf的底層輔助處理() 期間建立pdf圖形。.eps因此,要獲得circle.pdf沒有導覽列的圖形,請添加

\setbeamertemplate{navigation symbols}{} 

在序言中之後,\documentclass{beamer}如圖所示 如何擺脫投影機中的導覽符號?並用pdflatex -shell-escape給出進行編譯

在此輸入影像描述

一旦你有了所有的 pdf 圖形,就會透過輔助處理產生。設定該選項process=none而不是process=all並註解掉僅有的像這樣的行 %\setbeamertemplate{navigation symbols}{}來處理帶有數字的投影機幻燈片(少導航列),最後您將在主投影機幻燈片上獲得導航列。

注意:\EndPreamble可用於限制用於輔助處理的前導碼,從而加快處理速度。更多詳情請參考pstool 文檔

答案3

使用{背景畫布}影像時也會出現相同的問題。因此,這裡是 @Will 在使用 {background canvas}-image 的情況下解決方案的擴充。

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

相關內容