我正在使用sapthesis
包。它允许通过命令指示多个审查员\examiner
(例如\examiner{Jon Doe}
)。如果指示了至少一个审查员,则在第一个审查员后附加字符串(chairman)
。
由于我没有主席,所以我需要去掉那根绳子。
这是一个最小的可重现示例:
\documentclass[a4paper,english,binding=0.6cm]{sapthesis}
\newcommand{\thesistitle}{XYZ}
\newcommand{\myname}{XXX}
\title{\thesistitle}
\author{\myname}
\IDnumber{XXX}
\course{XXX}
\courseorganizer{XXX}
\AcademicYear{XXX}
\advisor{XXX}
\authoremail{X@Y}
\copyyear{XXX}
\examdate{MY DATE}
\examiner{Jon Doe}
\examiner{Mary Smith}
\begin{document}
\frontmatter
\maketitle
\mainmatter
\end{document}
答案1
您可以在以下位置查找原始定义sapthesis.cls
,例如https://ctan.org/tex-archive/macros/latex/contrib/sapthesis或者在您的本地 LaTeX 安装目录中。在第 320 行,我们找到以下代码:
\newcommand{\examiner}[2][]{%
\ifnum\SAP@examinercount=\z@
\SAP@examinertoks={#2 (\SAP@chairman\if|#1|\relax\else, #1\fi)}%
\else
\SAP@examinertoks=\expandafter{\the\SAP@examinertoks\\[0.75mm]#2 \if|#1|\relax\else (#1)\fi}%
\fi
\advance\SAP@examinercount\@ne}
您可以看到 ifnum-else 结构:如果当前审查员计数器为零(\z@
),则打印(主席)。
为了简化,您可以删除整个 if-else,并将 else 的主体保留为默认值。
要将此更改放入您的文档中,您将需要\renewcommand
而不是\newcommand
,否则您将收到一条错误,提示您尝试定义的命令已存在。
@
另外,因为命令定义中有符号,所以需要在重新定义周围加上“\makeatletter
和” 。\makeatother
代码:
\documentclass[a4paper,english,binding=0.6cm]{sapthesis}
\newcommand{\thesistitle}{XYZ}
\newcommand{\myname}{XXX}
\title{\thesistitle}
\author{\myname}
\IDnumber{XXX}
\course{XXX}
\courseorganizer{XXX}
\AcademicYear{XXX}
\advisor{XXX}
\authoremail{X@Y}
\copyyear{XXX}
% adapted from original definition at sapthesis.cls line 320
\makeatletter
\renewcommand{\examiner}[2][]{%
\SAP@examinertoks=\expandafter{\the\SAP@examinertoks\\[0.75mm]#2 \if|#1|\relax\else (#1)\fi}%
\advance\SAP@examinercount\@ne}
\makeatother
\examdate{MY DATE}
\examiner{Jon Doe}
\examiner{Mary Smith}
\begin{document}
\frontmatter
\maketitle
\mainmatter
\end{document}
结果: