我对锻炼环境的定义如下:
\newtheorem{aufg}{Exercise}
\newenvironment{aufgabe}[2] % #1: Anzahl der Punkte, #2: Anzahl der Karozeilen unter der Aufgabenstellung
{\setcounter{karo_counter}{#2}
\begin{aufg} (#1 Points)\\[0.5em]}
{\end{aufg}
\karos{\arabic{karo_counter}}
\newpage
\phantom{.}\hfill Name: \ldots \ldots \ldots \ldots \ldots \ldots \ldots \ldots \ldots \ldots \ldots \\
\karos{43}
\begin{flushright}
\underline{\hspace*{2.5cm}} \\ (#1 points)
\end{flushright}
}
不幸的是,当通过
\begin{aufgabe}{3+3=6}{40}
XXX
\end{aufgabe}
我遇到了You can't use `macro parameter character #' in horizontal mode. \endaufgabe ...underline {\hspace *{2.5cm}} \\ (##
。这是由(#1 points)
倒数第三行的 引起的,如果我删除该部分,它将再次正常工作。但我想要那个。我该如何解决这个问题?
谢谢你的帮助!
答案1
根据 David Carlisle 的评论,以下代码解决了该问题:
\newtheorem{aufg}{Exercise}
\newenvironment{aufgabe}[2] % #1: Anzahl der Punkte, #2: Anzahl der Karozeilen unter der Aufgabenstellung
{\setcounter{karo_counter}{#2}
\newcommand{\scoreawarding}{
\begin{flushright}
\underline{\hspace*{2.5cm}} \\ (#1 points)
\end{flushright}
}
\begin{aufg} (#1 Points)\\[0.5em]}
{\end{aufg}
\karos{\arabic{karo_counter}}
\newpage
\phantom{.}\hfill Name: \ldots \ldots \ldots \ldots \ldots \ldots \ldots \ldots \ldots \ldots \ldots \\
\karos{43}
\scoreawarding
}