使用 Volume (tomo) 扩展 amsmath 书籍结构

使用 Volume (tomo) 扩展 amsmath 书籍结构

我尝试定义一个新的文档部分,称为托莫(英文中的“volume”)位于amsmath 部分文档部分如下:

\documentclass[12pt,italian]{amsbook}

\newcounter{tomo}
\renewcommand\thetomo          {\roman{tomo}}
\let\tomorunhead\tomorunhead
\def\tomoname{tomo}
\def\tomo{\cleardoublepage \thispagestyle{empty}%
  \null\vfil  \markboth{}{}\secdef\@tomo\@tomo}
\def\@tomo[#1]#2{%
  \ifnum \c@secnumdepth >-2\relax \refstepcounter{tomo}%
    \addcontentsline{toc}{tomo}{\tomoname\ \thetomo.
    \protect\enspace\protect\noindent#1}%
  \else
    \addcontentsline{toc}{tomo}{#1}\fi
  \begingroup\centering
  \ifnum \c@secnumdepth >-2\relax
       {\fontsize{\@xviipt}{22}\bfseries
     \tomoname\ \thetomo} \vskip 20\p@ \fi
  \fontsize{\@xxpt}{25}\bfseries
      #1\vfil\vfil\endgroup \newpage\thispagestyle{empty}}

\def\@stomo#1{\addcontentsline{toc}{tomo}{\protect\noindent#1}%
  \begingroup\centering
  \fontsize{\@xxpt}{25}\bfseries
     #1\vfil\vfil\endgroup \newpage\thispagestyle{empty}}
\def\tomorunhead#1#2#3{%
  \@ifnotempty{#2}{\uppercase{#1 #2}\@ifnotempty{#3}{. }}%
  \def\@tempa{#3}%
  \ifx\@empty\@tempa\else\uppercasenonmath\@tempa\@tempa\fi}
\def\l@tomo{\@tocline{-1}{12pt plus2pt}{0pt}{}{\bfseries}}
\let\toctomo\tocsection

\begin{document}

\tomo{example}
\part{ciao}
\chapter{test}

\end{document}

但是在编译时,它返回以下错误:

! Use of \@ doesn't match its definition.
\@xdblarg #1#2->#1[
               {#2}]{#2}
l.36     \tomo
          {example}

我一直在使用amsbook 类定义以下扩展。我错在哪里?

顺便说一句,我没有使用该volumes包,因为它不会添加托莫在我的目录中。

答案1

将代码放在 \makeatletter 和 \makeatother 之间。

\makeatletter 和 \makeatother 起什么作用?

相关内容