Usando pstool com projetor

Usando pstool com projetor

Eu gostaria de usar pstoolwith beamerpara criar uma apresentação pdflatexcom figuras processadas por psfrag. No entanto, como mostra o exemplo simples abaixo, as figuras são processadas usando a beamerdocumentclass, 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}

Exemplo

Suspeito que se for possível substituir a documentclass usada por pstoolpara 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 psfragsubstituiçõ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

pstoolO 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 .epscomandos figure e psfrag. Então, para obter uma circle.pdffigura 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

insira a descrição da imagem aqui

Depois de ter todos os valores em PDF, eles serão gerados por meio de processamento auxiliar. Defina a opção process=noneem vez de process=alle 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: \EndPreamblepode 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

informação relacionada