Erro no polylongdiv ao usar babel espanhol

Oct 03 2020

Estou usando polylongdivdo polynom package. Quando uso a opção style=D, recebo

Argumento em fuga?

! Seqüência de controle proibida encontrada durante a verificação do uso de \ language @ active @ arg ~. \ par l.8 \ polylongdiv [style = D] {x ^ 5} {x ^ 3 + 2x ^ 2 + 9x + 8} Suspeito que você se esqueceu de um `} ', fazendo-me ler onde você queria Pare. Vou tentar me recuperar; mas se o erro for sério, é melhor você digitar `E 'ou` X' agora e corrigir o arquivo.

Estou usando o Overleaf, e aqui está um MWE

\documentclass{article}

\usepackage[spanish]{babel}
\usepackage{polynom}

\begin{document}

\polylongdiv[style=D]{x^5}{x^3+2x^2+9x+8}

\end{document}

Respostas

4 egreg Oct 04 2020 at 12:10

Você pode usar a es-notildeopção babelpara abreviar hoje em dia ~ne ~Nnão são mais necessários, pois você pode digitar diretamente ñe Ñ.

\documentclass{article}

\usepackage[spanish,es-notilde]{babel}
\usepackage{polynom}

\begin{document}

\polylongdiv[style=D]{x^5}{x^3+2x^2+9x+8}

\end{document}

Como alternativa, corrija a macro relevante polynom.styque usa ~(sem motivo aparente) para substituí-la por \ (barra invertida-espaço):

documentclass{article}

\usepackage[spanish]{babel}
\usepackage{polynom}
\usepackage{regexpatch}

\makeatletter
\regexpatchcmd*{\pld@ArrangeResult}{\~}{\c{nobreakspace}}{}{}
\makeatother

\begin{document}

\polylongdiv[style=D]{x^5}{x^3+2x^2+9x+8}

\end{document}

O resultado é o mesmo em ambos os casos.

3 Bernard Oct 04 2020 at 10:38

Use \shorthandoff*{~}em um grupo antes da macro:

\documentclass{article}

\usepackage[spanish]{babel}
\usepackage{polynom}

\begin{document}

{\shorthandoff*{~}
\polylongdiv[style=D]{x^5}{x^3+2x^2+9x+8}}

\end{document}