Использование pstool с проектором

Использование pstool с проектором

Я хотел бы использовать pstoolwith beamerдля создания презентации в pdflatexwith 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

Связанный контент