Was ist falsch an dieser Makrodefinition `\newcommand{\funk}[2]{#1}{-#2}`?

Was ist falsch an dieser Makrodefinition `\newcommand{\funk}[2]{#1}{-#2}`?

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\newcommandIst

\newcommand*{<cmd>}[<args>][<default>]{<stuff>}

wobei *optional ist (impliziert, ob die resultierende \defInitialisierung sein wird \longoder 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}

\funknimmt 2Argumente 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. -#2Im 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}

verwandte Informationen