[我首先在 stackoverflow 上发布了这个问题,因为我不知道这个网站的存在]
你好,
我正在使用一个特殊的 usepackage 用 tex 写论文,我需要调整其中一个提供的宏。通常可以使用 \renewcommand,但在这种情况下它不起作用。命令没有更改,或者我收到错误消息,提示未设置覆盖的宏,尽管我设置了它。我想要更改的定义宏如下:
\gdef\TUD@thesis@referee{\PackageError{\@currname}{No '\noexpand\refereegiven!\MessageBreak See documentation for details.}\@ehc}
\def\referee#1#2{\@ifnextchar[{\TUD@thesis@referee@three{#1}{#2}}{\TUD@thesis@referee@two{#1}{#2}}}
\def\TUD@thesis@referee@two#1#2{
\gdef\TUD@thesis@referee{1. Gutachten: #1\\2. Gutachten: #2}
}
\def\TUD@thesis@referee@three#1#2[#3]{
\gdef\TUD@thesis@referee{1. Gutachten: #1\\2. Gutachten: #2\\3. Gutachten: #3}
}
\newcommand{\gutachter}[2]{%
\referee{#1}{#2}
\PackageError{\@currname}{Command '\noexpand\gutachter
deprecated! Use '\noexpand\referee` instead.}\@ehc%
}
我使用命令的方式是:
\referee{ref1}{ref2}
而不是
{1. Gutachten: #1\\2. Gutachten: #2}
我想拥有
{Betreuer:\\#1\\#2}
我可以通过简单地修改 sty 文件中的这部分来解决这个问题,但这意味着我必须在可能工作的每台机器上调整该文件。
我尝试使用
\renewcommand{\referee}[2]{Betreuer:\\#1\\#2}
但这显然没有起作用^^。
感谢您的帮助。
答案1
尝试在文档序言中包含以下代码(未经测试):
\makeatletter
\def\TUD@thesis@referee@two#1#2{%
\gdef\TUD@thesis@referee{Betreuer:\\#1\\#2}%
}
\def\TUD@thesis@referee@three#1#2[#3]{%
\gdef\TUD@thesis@referee{Betreuer:\\#1\\#2\\#3}%
}
\makeatother