使用 sapthesis 时删除“(主席)”

使用 sapthesis 时删除“(主席)”

我正在使用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}

结果:

在此处输入图片描述

相关内容