RenewDocummentCommand 与 newdocument 命令的细微错误(语法)

RenewDocummentCommand 与 newdocument 命令的细微错误(语法)

我有这个:

\let\otitle\title
\renewcommand\title[2] {\otitle{#1 \\ \bigskip \large #2\\ \bigskip}}

工作正常,将其修改为此(xparser):

\RenewDocumentCommand\title{m m} {\otitle{#1 \\ \bigskip \large #2\\ \bigskip}}

打算添加可选参数和其他 xparse 功能,但实际上它出错了

\title{Notes for Grade 7 Math, 2020}
{
   Complied from the 2013 Curriculum Guide
  \thanks{Thanks to Gereina Skanes for presentation and formatting review} 
}

之前运行良好。我以为我理解了 RenewDocumentCommand 的语法吗?

答案1

\title是一个强大的命令,\let无法正确复制此类命令。您可以使用\LetLtxMacro

\documentclass{article}

\usepackage{letltxmacro}
\LetLtxMacro\otitle\title

\RenewDocumentCommand\title{m m} {\otitle{#1 \\ \bigskip \large #2\endgraf \bigskip}}

\title{abc}{cde}

\begin{document}
\maketitle
\end{document}

在下一个 LaTeX 版本中将会有一个\NewCommandCopy您也可以使用的命令:

\documentclass{article}
\NewCommandCopy\otitle\title %new in the next latex ...
\RenewDocumentCommand\title{m m} {\otitle{#1 \\ \bigskip \large #2\endgraf \bigskip}}

\title{abc}{cde}

\begin{document}
\maketitle
\end{document}

相关内容