我想使用pstool
withbeamer
創建一個演示文稿,其中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