¿Por qué mi nuevo comando informa un error?

¿Por qué mi nuevo comando informa un error?

1

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

dice 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}}

dice Undefined control sequence. \toQ{\csuse{Q1}}yUndefined 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=}]

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

No sé por qué, realmente me confunden con información de error diferente.

Respuesta1

Es mejor hacer solo una pregunta por publicación y proporcionar un archivo de prueba, pero:


1

\documentclass{article}

\begin{document}

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

\Qf[AA][AA][AA]

\end{document}

esto no genera el error indicado ni ningún error, sin embargo los tres argumentos \Qfson [, Ay A.

\paragraphes un comando de sección con un encabezado inicial que está insertado en la primera oración del párrafo, por lo que usar visualización matemática \[\]en el encabezado esmuyextraño, y en este caso la pantalla solo consiste en [las dos primeras líneas de #2y #3ambas son A, por lo que obtienes:

ingrese la descripción de la imagen aquí


2

No dice qué error obtuvo ni proporciona un archivo de prueba.

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

Produce el error

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

?

mostrando que el \hyperlinkhipervínculo no está definido.

Cambiando la \usepackagelínea a

\usepackage{etoolbox,hyperref}

resuelve ese error, pero produce el error:

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

? 

Mostrando que \geqslantno está definido, por lo que cambiar la \usepackagelínea a

\usepackage{etoolbox,amssymb,hyperref}

hace que el ejemplo se ejecute sin errores.


3

No pude adivinar cómo extender su fragmento a un ejemplo que diera el error indicado.

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

produce el error

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

como aquí los tres argumentos de \Qfson [, \csusey{Q1}

entonces, #2\\en el texto de reemplazo \Qfserá \csuse\\el que toma el comando \\como argumento, \csusepero como esto no se expande a una lista de caracteres, no puede formar un nombre cs y se muestra el \endcsnameerror de bajo nivel.

información relacionada