Я хотел бы использовать pstool
with beamer
для создания презентации в pdflatex
with figures processing by 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
Ключом к решению этой проблемы является понимание того, что «обычный» процесс компиляции отправляет ваш документ через 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) для построения pdf-фигур во время вспомогательной обработки ( latex-dvips-ps2pdf
) .eps
команд figure и psfrag. Таким образом, чтобы получить circle.pdf
фигуру без навигационной панели, добавьте
\setbeamertemplate{navigation symbols}{}
в преамбуле после \documentclass{beamer}
того, как показано в
Как избавиться от навигационных символов в бимере?и компилировать с pdflatex -shell-escape
дает
После того, как вы все pdf цифры сгенерированы через вспомогательную обработку. Установите опцию process=none
вместо process=all
и закомментируйтетолькоПодобная строка
%\setbeamertemplate{navigation symbols}{}
используется для обработки слайдов проектора с рисунками (без панели навигации), и в конечном итоге вы получите панель навигации на основных слайдах проектора.
Примечание: \EndPreamble
может использоваться для ограничения преамбулы, используемой для вспомогательной обработки, и тем самым ее ускорения. Более подробную информацию см.документация pstool
решение3
Та же проблема возникает при использовании {background canvas}-изображения. Итак, вот расширение решения @Will в случае использования {background canvas}-изображения.
\ifpdf
\setbeamertemplate{background canvas}{%
\includegraphics[width=\paperwidth,height=\paperheight]{my_background_image}
}
\else
\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{background canvas}{}
\fi