Divisão em Latex -Estou recebendo valores incorretos-Como realizar a divisão corretamente

Divisão em Latex -Estou recebendo valores incorretos-Como realizar a divisão corretamente

Estou tentando fazer uma divisão e às vezes funciona e outras vezes recebo um valor inesperado.

\documentclass[fleqn]{article}
\usepackage{amsmath}
\usepackage{enumerate}
\usepackage{cancel}
\begin{document}
\newcommand\coeff{5}
\newcommand\addend{13}
\newcommand\result{45}
\newcommand\exaddend{\the\numexpr\addend*\coeff}
\newcommand\resultrest{\the\numexpr\result-\exaddend}
\begin{align*}
        \coeff x+\exaddend&=\result \\
        -\exaddend&=-\exaddend\\
        \coeff x&=\resultrest\\
        \frac{\cancel{\coeff}x}{\cancel{\coeff}}&=\frac{\resultrest}{\coeff}\\
        x&=\boxed{\the\numexpr\resultrest/\coeff\relax}
        \end{align*}\vspace{1em} 
\end{document}

Funciona se eu usar valores fixos:
parece que a última linha \the\numexpr\resultrest/\coeff\relax parece produzir o problema. Por favor ajude!

Responder1

Você definiu \extatende \resultrestcom unterminated \numexpr(no \relax), então quando você usa eles em outro \numexpr, a expressão é efetivamente inserida de forma literal, assim você pode avaliar 5-1/2quando pretendia (5-1)/2. Eu sugiro que você coloque \relaxno final de ambos \extatende \resultrest.

Outras alternativas são defini-los incluindo parênteses, ou se desejar apenas um único valor fixo, defini-los usando \edef.

Você não diz qual valor inesperado obtém para qual entrada; portanto, permanece a possibilidade de você simplesmente não esperar a divisão inteira.

informação relacionada