por que meu novo comando relata erro?

por que meu novo comando relata erro?

1

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

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

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

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

Não sei por que, realmente me confunda com diferentes informações de erro.

Responder1

É melhor fazer apenas uma pergunta por postagem e fornecer um arquivo de teste, mas:


1

\documentclass{article}

\begin{document}

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

\Qf[AA][AA][AA]

\end{document}

isso não gera o erro declarado ou qualquer erro, porém os três argumentos \Qfsão [, Ae A.

\paragraphé um comando de seccionamento com um título intermediário embutido na primeira frase do parágrafo, portanto, usar matemática de exibição \[\]no título émuitoestranho, e neste caso a exibição consiste apenas [nas duas primeiras linhas de #2e #3ambas sendo A, então você obtém:

insira a descrição da imagem aqui


2

Você não diz qual erro obteve, nem fornece um arquivo de teste.

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

Produz o erro

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

?

mostrando que \hyperlinko hiperlink é indefinido.

Mudando a \usepackagelinha para

\usepackage{etoolbox,hyperref}

resolve esse erro, mas produz o erro:

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

? 

Mostrar que \geqslanté indefinido, então mudando a \usepackagelinha para

\usepackage{etoolbox,amssymb,hyperref}

faz com que o exemplo seja executado sem erros.


3

Não consegui adivinhar como estender seu fragmento para um exemplo que apresentasse o erro declarado.

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

produz o erro

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

como aqui os três argumentos de \Qfare [e\csuse{Q1}

então #2\\o texto de substituição de \Qfwill será \csuse\\o que está tomando o comando \\como argumento, \csusemas como isso não se expande para uma lista de caracteres, ele não pode formar um csname e você obterá o \endcsnameerro de baixo nível mostrado.

informação relacionada