新命令不会导致任何错误或输出

新命令不会导致任何错误或输出

我正在为一些输出编写包装器。我需要文件,beamer.tex其内容如下

% !TEX encoding = UTF-8 Unicode
\documentclass{beamer}

% add page numbers for malmoe
\newcommand*\oldmacro{}%
\let\oldmacro\insertshorttitle%
\renewcommand*\insertshorttitle{%
  \oldmacro\hfill%
  \insertframenumber\,/\,\inserttotalframenumber}
\usetheme{Malmoe}
\date{}
\input{content}

content.tex,类似于

\newcommand{\pdfslide}[1]{
\begin{frame}[plain]
\vspace*{-1pt}
\makebox[\linewidth]{\includegraphics[page=1,width=\paperwidth]{#1}}
\end{frame}
}

\begin{document}
\maketitle
\mode*
\pdfslide{fig4.pdf}

\end{document}

如果我不编写pdfslide命令,而是直接将命令放入文档中(用 fig4.pdf 替换 #1),我会得到正确的输出。但就目前情况而言,我没有得到正确的输出(文档的其余部分得到正确处理,只是缺少 pdf 幻灯片)。我也没有收到任何错误消息(我想这来自我的\include结构)。

有人发现错误了吗?或者在这种情况下我该如何调试?

答案1

'错误' 是\mode*因为它强制beamer忽略frame环境之外的所有内容,这是命令的情况\pgfslide,因为它是在frame环境内部使用的。

评论/删除\mode*将导致成功编译包含所含图形的框架。

\documentclass{beamer}

% add page numbers for malmoe
\newcommand*\oldmacro{}%
\let\oldmacro\insertshorttitle%
\renewcommand*\insertshorttitle{%
  \oldmacro\hfill%
  \insertframenumber\,/\,\inserttotalframenumber}
\usetheme{Malmoe}
\date{}
\input{content}

内容.tex

\newcommand{\pdfslide}[1]{
\begin{frame}[plain]
\vspace*{-1pt}
\makebox[\linewidth]{\includegraphics[page=1,width=\paperwidth]{#1}}
\end{frame}
}

\begin{document}
\maketitle
%\mode*  Must be switched off!!
\pdfslide{fig4.pdf}

\end{document}

相关内容