目前,我正在处理基于标准的文档book.cls
。我重新定义了部分命令(取消星号)以获得更漂亮的标题。但在执行此操作时,我遇到了一些障碍。
\renewcommand{\section}{\secdef\@section\@ssection}
\newcommand{\@section}[2][?]{...}
显然,我用 重新定义了未加星号的版本\@section
,并\secdef
修复了目录中的错误(奇怪的重复),并尝试保留加星号版本的定义。简而言之,它不起作用……输出如下:
! Undefined control sequence.
\reserved@a *->\@ssection
有人知道该怎么处理吗?甚至\let
在这里也帮不上忙……
答案1
\section
是不是定义通过\secdef
。所以没有\@ssection
。
这可能有效:
\makeatletter
\let\latex@section\section
\def\section{\secdef\my@section{\latex@section*}}
\def\my@section[#1]#2{...}
\makeatother
因此\section*
将调用\latex@section*
,而\section{title}
将调用
\my@section[title]{title}
while\section[x]{title}
将会调用
\my@section[x]{title}