warum meldet mein neuer Befehl einen Fehler?

warum meldet mein neuer Befehl einen Fehler?

1

\newcommand{\Qf}[3]{\paragraph{\[#1\]}#2\\#3\\}
...
\Qf[AA][AA][AA]

es sagt There's no line here to end. \Qf[AA.

2

\usepackage{etoolbox}
...
\csdef{Q1}{
    1.1.2-1992-2,3-1
}  
\csdef{Q1=}{
    $f(x)=e^{x^2},f[\varphi(x)]=1-x,\varphi(x) \geqslant 0,\varphi(x),D(\varphi(x))$
} 
\csdef{A1}{
    $e^{\varphi(x)^2}=1-x \Rightarrow \varphi(x)=\sqrt{\ln (1-x)}\Rightarrow x<1$
}
\newcommand{\toA}[1]{\hyperlink{answer-#1}{answer}\hypertarget{question-#1}{}}
\newcommand{\toQ}[1]{\hyperlink{question-#1}{back}\hypertarget{answer-#1}{}}

\toQ{\csuse{Q1}}
\csuse{Q1=}
\newpage
\toA{\csuse{Q1}}

es heißt Undefined control sequence. \toQ{\csuse{Q1}}undUndefined control sequence. \toA{\csuse{Q1}}

3

\usepackage{etoolbox}
...
\csdef{Q1}{
    1.1.2-1992-2,3-1
}  
\csdef{Q1=}{
    $f(x)=e^{x^2},f[\varphi(x)]=1-x,\varphi(x) \geqslant 0,\varphi(x),D(\varphi(x))$
} 
\csdef{A1}{
    $e^{\varphi(x)^2}=1-x \Rightarrow \varphi(x)=\sqrt{\ln (1-x)}\Rightarrow x<1$
}
\newcommand{\toA}[1]{\hyperlink{answer-#1}{answer}\hypertarget{question-#1}{}}
\newcommand{\toQ}[1]{\hyperlink{question-#1}{back}\hypertarget{answer-#1}{}}


\Qf[\csuse{Q1}][\toA[\csuse{Q1}]][\csuse{Q1=}]

es sagtThere's no line here to end. \Qf[\csuse{Q1}

Ich weiß nicht, warum, die verschiedenen Fehlerinformationen verwirren mich wirklich.

Antwort1

Am besten stellen Sie nur eine Frage pro Beitrag und stellen eine Testdatei zur Verfügung, aber:


1

\documentclass{article}

\begin{document}

\newcommand{\Qf}[3]{\paragraph{\[#1\]}#2\\#3\\}

\Qf[AA][AA][AA]

\end{document}

dies erzeugt weder den angegebenen noch einen Fehler, die drei Argumente für \Qfsind jedoch [, Aund A.

\paragraphist ein Abschnittsbefehl mit einer Überschrift, die in den ersten Satz des Absatzes eingebettet ist. Daher \[\]ist die Verwendung von Anzeigemathematik in der Überschriftsehrkomisch, und in diesem Fall besteht die Anzeige nur aus [den ersten beiden Zeilen von #2und #3beide sind A, also erhalten Sie:

Bildbeschreibung hier eingeben


2

Sie sagen nicht, welcher Fehler aufgetreten ist, und stellen auch keine Testdatei zur Verfügung.

\documentclass{article}



\usepackage{etoolbox}

\begin{document}
\csdef{Q1}{
    1.1.2-1992-2,3-1
}  
\csdef{Q1=}{
    $f(x)=e^{x^2},f[\varphi(x)]=1-x,\varphi(x) \geqslant 0,\varphi(x),D(\varphi(x))$
} 
\csdef{A1}{
    $e^{\varphi(x)^2}=1-x \Rightarrow \varphi(x)=\sqrt{\ln (1-x)}\Rightarrow x<1$
}
\newcommand{\toA}[1]{\hyperlink{answer-#1}{answer}\hypertarget{question-#1}{}}
\newcommand{\toQ}[1]{\hyperlink{question-#1}{back}\hypertarget{answer-#1}{}}

\toQ{\csuse{Q1}}
\csuse{Q1=}
\newpage
\toA{\csuse{Q1}}
\end{document}

Erzeugt den Fehler

! Undefined control sequence.
\toQ #1->\hyperlink 
                    {question-#1}{back}\hypertarget {answer-#1}{}
l.20 \toQ{\csuse{Q1}}

?

zeigt an, dass \hyperlinkder Hyperlink nicht definiert ist.

Ändern der \usepackageZeile in

\usepackage{etoolbox,hyperref}

behebt diesen Fehler, erzeugt aber den Fehler:

! Undefined control sequence.
\Q1= ...,f[\varphi (x)]=1-x,\varphi (x) \geqslant 
                                                  0,\varphi (x),D(\varphi (x...
l.21 \csuse{Q1=}

? 

Zeigt, dass dies \geqslantnicht definiert ist. Ändern Sie daher die \usepackageZeile in

\usepackage{etoolbox,amssymb,hyperref}

lässt das Beispiel fehlerfrei laufen.


3

Ich konnte nicht erraten, wie ich Ihr Fragment in ein Beispiel erweitern könnte, das den angegebenen Fehler verursacht.

\documentclass{article}



\usepackage{etoolbox,amssymb,hyperref}

\begin{document}

\newcommand{\Qf}[3]{\paragraph{\[#1\]}#2\\#3\\}

\csdef{Q1}{
    1.1.2-1992-2,3-1
}  
\csdef{Q1=}{
    $f(x)=e^{x^2},f[\varphi(x)]=1-x,\varphi(x) \geqslant 0,\varphi(x),D(\varphi(x))$
} 
\csdef{A1}{
    $e^{\varphi(x)^2}=1-x \Rightarrow \varphi(x)=\sqrt{\ln (1-x)}\Rightarrow x<1$
}
\newcommand{\toA}[1]{\hyperlink{answer-#1}{answer}\hypertarget{question-#1}{}}
\newcommand{\toQ}[1]{\hyperlink{question-#1}{back}\hypertarget{answer-#1}{}}


\Qf[\csuse{Q1}][\toA[\csuse{Q1}]][\csuse{Q1=}]
\end{document}

erzeugt den Fehler

! Missing \endcsname inserted.
<to be read again> 
                   \protect 
l.24 \Qf[\csuse{Q1}
                   ][\toA[\csuse{Q1}]][\csuse{Q1=}]
? 

da hier die drei Argumente von \Qfsind [, \csuseund{Q1}

#2\\Der Ersetzungstext lautet \Qfalso „ , wobei der Befehl als Argument \csuse\\verwendet wird. Da sich dies jedoch nicht in eine Liste von Zeichen erweitern lässt, kann kein CSNAME gebildet werden und Sie erhalten den angezeigten Fehler auf niedriger Ebene.\\\csuse\endcsname

verwandte Informationen