Eu gostaria de usar pstool
with beamer
para criar uma apresentação pdflatex
com figuras processadas por psfrag
. No entanto, como mostra o exemplo simples abaixo, as figuras são processadas usando a beamer
documentclass, de modo que cada uma delas tenha uma beamer
“moldura” completa ao seu redor. Existe uma maneira de contornar isso?
\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}
Suspeito que se for possível substituir a documentclass usada por pstool
para processar as figuras, isso seria uma solução, mas não encontrei como fazer isso.
Obrigado.
Responder1
A chave para resolver isso é perceber que um processo de compilação "normal" envia seu documento através do pdfLaTeX em modo PDF, e para fazer as psfrag
substituições o gráfico é enviado através do pdfLaTeX em modo DVI.
Portanto, comandos condicionais apenas para o documento principal ou apenas para cada gráfico podem simplesmente usar \ifpdf
:
\ifpdf
% setup for the main document only
\else
% setup for pstool images only
\fi
E assim no seu caso:
\ifpdf\else
\setbeamertemplate{navigation symbols}{}
\fi
Isso não é mencionado na documentação, então irei consertar isso agora.
Responder2
pstool
O pacote usa o preâmbulo da classe do documento principal (no seu Q é beamer) para construir as figuras pdf durante o processamento auxiliar subjacente ( latex-dvips-ps2pdf
) dos .eps
comandos figure e psfrag. Então, para obter uma circle.pdf
figura sem barra de navegação, adicione
\setbeamertemplate{navigation symbols}{}
no preâmbulo depois, \documentclass{beamer}
conforme mostrado em
Como se livrar dos símbolos de navegação no beamer?e compilar com pdflatex -shell-escape
dá
Depois de ter todos os valores em PDF, eles serão gerados por meio de processamento auxiliar. Defina a opção process=none
em vez de process=all
e comente oapenaslinha como esta
%\setbeamertemplate{navigation symbols}{}
para processar slides do beamer com figuras (menos barra de navegação) e, finalmente, você obterá a barra de navegação nos slides do beamer principal.
Nota: \EndPreamble
pode ser usado para limitar o preâmbulo usado para processamento auxiliar e, assim, acelerá-lo. Mais detalhes consultedocumentação do ptool
Responder3
O mesmo problema aparece ao usar uma imagem {background canvas}. Então aqui está uma extensão da solução do @Will no caso de usar uma imagem {background canvas}.
\ifpdf
\setbeamertemplate{background canvas}{%
\includegraphics[width=\paperwidth,height=\paperheight]{my_background_image}
}
\else
\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{background canvas}{}
\fi