![Was ist falsch an dieser Makrodefinition `\newcommand{\funk}[2]{#1}{-#2}`?](https://rvso.com/image/370770/Was%20ist%20falsch%20an%20dieser%20Makrodefinition%20%60%5Cnewcommand%7B%5Cfunk%7D%5B2%5D%7B%231%7D%7B-%232%7D%60%3F.png)
Hier ist ein MnWE:
\documentclass{minimal}
\usepackage{amsmath}
\newcommand{\funk}[2]{#1}{-#2}
\begin{document}
$\funk{x}{2}$
\end{document}
Es wird nicht kompiliert und gibt mir die Fehlermeldung:
Sie können das `Makroparameterzeichen #' nicht im horizontalen Modus verwenden. \newcommand{\funk}[2]{#1}{-#
Was ist falsch an dem Befehl?
Antwort1
Derformale Spezifikation für\newcommand
Ist
\newcommand*{<cmd>}[<args>][<default>]{<stuff>}
wobei *
optional ist (impliziert, ob die resultierende \def
Initialisierung sein wird \long
oder nicht), <cmd>
eine nicht vorhandene Steuersequenz ist, <args>
(ebenfalls optional) die Anzahl der von verschlungenen übergebenen Argumente bezeichnet <cmd>
, <default>
der Standardwert eines optionalen Arguments ist, wenn es nicht angegeben ist (wenn <args>
> 0) und <stuff>
die Erweiterung (oder der Ersetzungstext) von nach dem Verschlingen der Argumente ist . Jedes Argument (bis zu 9) wird für das -te Argument <cmd>
durch ersetzt ( für das erste, für das zweite usw.).#<num>
<num>
#1
#2
In Ihrem Setup
\newcommand{\funk}[2]{#1}{-#2}
\funk
nimmt 2
Argumente an, beide sind obligatorisch und der Ersetzungstext ist nur das erste Argument #1
(und verschlingt effektiv das zweite).
{-#2}
ist nicht Teil der Erstellung der Steuersequenz und wird daher unverändert erweitert. -#2
Im Eingabestrom (in der Präambel) verbleibt etwas, das nicht zulässig ist, da es eine #
besondere Bedeutung hat – es ist ein Makroparameterzeichen.
Sie interessieren sich wahrscheinlich für
\newcommand{\funk}[2]{#1-#2}