如果 \title{} 已被调用,如何才能调用 \maketitle

如果 \title{} 已被调用,如何才能调用 \maketitle

我正在pandoc使用该包合并 5-10 个生成的 tex 文件docmute。各个文件都已生成,但是当我\subimport\input它们合并到主文档中时,出现了错误:

! LaTeX Error: No \title given

这是因为 之外的所有内容\begin{document}...\end{document}都被 剥离了docmute,因此\title{}合并时不会对单个文档调用 。实际上,我\maketitle根本不想对合并的文档调用 。

我如何有条件地使用maketitle?我尝试了各种\if组合,包括:

\ifdef{\@title}{\maketitle}{}

答案1

的初始状态\@title不是未定义的,而是定义为

\def\@title{\@latex@error{No \noexpand\title given}\@ehc}

所以你要

\makeatletter
\def\zz@title{\@latex@error{No \noexpand\title given}\@ehc}

\ifx\zz@title\@title
% do nothing
\else
\maketitle
\fi

\makeatother

相关内容