![RenewDocummentCommand 与 newdocument 命令的细微错误(语法)](https://linux22.com/image/419795/RenewDocummentCommand%20%E4%B8%8E%20newdocument%20%E5%91%BD%E4%BB%A4%E7%9A%84%E7%BB%86%E5%BE%AE%E9%94%99%E8%AF%AF%EF%BC%88%E8%AF%AD%E6%B3%95%EF%BC%89.png)
我有这个:
\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}