![使用“chemmacros”包定义新命令时出现错误](https://linux22.com/image/312184/%E4%BD%BF%E7%94%A8%E2%80%9Cchemmacros%E2%80%9D%E5%8C%85%E5%AE%9A%E4%B9%89%E6%96%B0%E5%91%BD%E4%BB%A4%E6%97%B6%E5%87%BA%E7%8E%B0%E9%94%99%E8%AF%AF.png)
我正在使用 chemmacros 包在我的论文中写化学符号。(我正在使用带有书籍类的 Easy Thesis 模板)。
我在 thesis.cls 文件的顶部添加了这些包(如下所示)
\RequirePackage{textcomp}
\RequirePackage{etoolbox}
\RequirePackage{paralist}
\RequirePackage[bahasam,english]{babel}
\def\theauthor{\textbf{!INSERT AUTHOR!}}
\def\thetitle{\textbf{!TITLE!}}
\def\@mtsubmissionyear{\textbf{!YEAR!}}
\def\@mtsijil{\textbf{!DEGREE!}}
\newcommand{\submissionyear}[1]{\def\@mtsubmissionyear{#1}}
\newcommand{\sijil}[1]{\def\@mtsijil{#1}}
\RequirePackage[T1]{fontenc}
\RequirePackage[scaled]{helvet}
\RequirePackage{mathptmx}
\RequirePackage{courier}
\renewcommand\ttdefault{lmvtt}
我定义了 newcommand\makecoverandtitlepage
在 thesis.cls 文件底部定义了如下 newcommand。(我从 UMthesis.cls 中获取了此命令(https://www.sharelatex.com/templates/thesis/universiti-malaya-thesis))
\newcommand{\makecoverandtitlepage}{%
\ignorespaces
\changepage{-40mm}{-15mm}{15mm}{0em}{0em}{20mm}{0em}{0em}{0em}
\begin{titlingpage}
\SingleSpacing%
\centering%
\renewcommand\ttdefault{lmtt}%
\fontfamily{phv}\fontseries{mc}\fontsize{15pt}{17pt}\selectfont%
\MakeUppercase{\thetitle}\par%
\vfill%
\MakeUppercase{\theauthor}\par%
\vfill%
INSTITUTE OF POSTGRADUATE STUDIES\\%
UNIVERSITY OF MALAYA\\%
KUALA LUMPUR\par%
\bigskip%
\@mtsubmissionyear\par%
\end{titlingpage}%
{\SingleSpacing\centering\thispagestyle{empty}\setcounter{page}{1}%
\fontsize{15pt}{17pt}\selectfont%
\renewcommand\ttdefault{lmtt}%
\MakeUppercase{\thetitle}\par%
\vfill%
{\MakeUppercase{\theauthor}\par}%
\vfill%
{THESIS SUBMITTED IN FULFILMENT\\%
OF THE REQUIREMENTS\\%
FOR THE DEGREE OF \MakeUppercase{\@mtsijil}\par}%
\vfill%
{INSTITUTE OF POSTGRADUATE STUDIES\\%
UNIVERSITY OF MALAYA\\%
KUALA LUMPUR}\\[1em]%
\@mtsubmissionyear%\\[3em]%
\par\clearpage}%
\changepage{40mm}{15mm}{-15mm}{0em}{0em}{-20mm}{0em}{0em}{0em}%
\renewcommand\ttdefault{lmvtt}%
}
当我执行时出现错误,如下图所示
我需要一些帮助来修复这个错误。
答案1
你不得不说
\makeatletter
\newcommand{\submissionyear}[1]{\def\@mtsubmissionyear{#1}}
\newcommand{\sijil}[1]{\def\@mtsijil{#1}}
\makeatother
因为您想使用内部命令(带有@
)。