abntex / biblatex-abnt

:books: Estilo para BibLaTeX compatível com as normas da ABNT
126 stars 27 forks source link

Erro "Undefined control sequence. \xpretobibmacro{textcite}" após atualização recente do banco de dados do MikTeX. #83

Closed ammagalhaes closed 2 years ago

ammagalhaes commented 2 years ago

Pessoal boa tarde.

O biblatex passou apresentar o seguinte erro "Undefined control sequence. \xpretobibmacro{textcite}" após compilação via TexStudio. Também apresenta o mesmo erro ao compilar por linha de programa, usando o pdfLatex. Todos os meus códigos com o biblatex, usando estilo abnt estão apresentando o mesmo problema, mas vou deixar esse MWE para que possa ser analisado. Também passei a observar que esse problema passou a acontecer logo após eu atualizar o banco de dados do MikTeX.

Desde já, agradeço pela colaboração.

\documentclass{report}
\usepackage[style=abnt,ittitles]{biblatex}
\usepackage{geometry}
\usepackage{booktabs}
\usepackage{bbding}
\usepackage{filecontents}

\begin{filecontents*}{\jobname.bib}
    @book{TELFORD1990,
        author    = {William Murray Telford and Lloyd Philip Geldart and Robert Edward Sheriff},
        title     = {Applied geophysics},
        edition   = {2},
        address   = {Cambridge},
        publisher = {Cambridge University Press},
        year      = {1990}
    }
\end{filecontents*}
\addbibresource{\jobname.bib}

\begin{document}
    \begin{table}[ht]
        \caption{Estilo \texttt{abnt}}
        \vspace{1em}
        \begin{tabular}{lll}
            \toprule
            COMANDO & SAÍDA ATUAL & SUGERIDA \\ \midrule
            \verb+\cite{TELFORD1990}+       & \cite{TELFORD1990}        & \CheckmarkBold    \\ \midrule
            \verb+\cite*{TELFORD1990}+      & \cite*{TELFORD1990}       & ---               \\ \midrule
            \verb+\citetitle{TELFORD1990}+  & \citetitle{TELFORD1990}   & \CheckmarkBold    \\ \midrule
            \verb+\citetitle*{TELFORD1990}+ & \citetitle*{TELFORD1990}  & Applied geophysics\\ \midrule
            \verb+\citeyear{TELFORD1990}+   & \citeyear{TELFORD1990}    & \CheckmarkBold    \\ \midrule
            \verb+\citeyear*{TELFORD1990}+  & \citeyear*{TELFORD1990}   & \CheckmarkBold    \\ \midrule
            \verb+\citeauthor{TELFORD1990}+ & \citeauthor{TELFORD1990}  & \CheckmarkBold    \\ \midrule
            \verb+\citeauthor*{TELFORD1990}+& \citeauthor*{TELFORD1990} & \CheckmarkBold    \\ \midrule
            \verb+\textcite{TELFORD1990}+   & \textcite{TELFORD1990}    & \CheckmarkBold    \\ \midrule
            \verb+\textcite*{TELFORD1990}+  & \textcite*{TELFORD1990}   & Telford, Geldart e Sheriff \\
            \bottomrule
        \end{tabular}
    \end{table}
\end{document}
ammagalhaes commented 2 years ago

Eu também executei o código disponível https://gist.github.com/moewew/b1acc005108dc5befbecfcc14904f3f2 e o problema se repete. Por isso, tenho disponibilizado o arquivo do .log nesse mesmo link para análises e testes.

dbmrq commented 2 years ago

Ixi, eu vou demorar um pouco pra conseguir olhar isso, mas vou tentar. De todo modo, parece que o pessoal do stack exchange conseguiu compilar o exemplo sem problemas, né? Se você conseguir responder atualize aqui, por favor.

ammagalhaes commented 2 years ago

@dbmrq bom dia.

Eu testei a solução provida nos comentários do @moewew no TeX da StackExchange e funcionou. Ao analisar o arquivo .log da compilação do MWE acima, @moewew verificou que a versão do pacote xpatch estava desatualizada. Então eu fui verificar no console do MikTeX, na versão do administrador, e observei que esse pacote xpatch nem estava instalado. Então eu instalei, e os problemas de Undefined control sequence. \xpretobibmacro{textcite} after updating MikTeX database desapareceram. Em seguida ao compilar o mesmo MWE, o execução aconteceu normalmente, sem erros. Porém, ao compilar minha apresentação beamer no TeXStudio, está retornando os seguintes erros:

  1. TeX capacity exceeded, sorry [main memory size=3000000]. } referente ao arquivo brazilian.lbx e
  2. Extra \endgroup. \begin{document} no arquivo MainFile.tex, que o arquivo que costumo usar como base para chamar outros arquivos de pacotes, configurações do beamer, seções etc.

Depois eu compilei no TeXStudio outra apresentação beamer, e retornou os mesmos erros. Detalhe: as duas apresentações beamer estavam funcionando normalmente antes de atualizar os pacotes no console MikTeX, bem como o próprio TeXStudio. Agora estou tentado resolver estes problemas. Por isso, ainda não respondi no TeX da StackEngeni, posto que eu não sei se estes problemas que surgiram agora tem algo a ver com o problema anterior. Mas vamos seguindo até encontrar a solução definitiva do problema.

Desde já muito obrigado pela ajuda.

dbmrq commented 2 years ago

Endendi. Parece que o problema não é aqui com o estilo então, mas vou deixar a issue aberta por enquanto; vai me avisando se você descobrir mais alguma coisa que eu dou uma olhada quando puder.

ammagalhaes commented 2 years ago

@dbmrq, eu acho que encontrei a solução para os dois erros do comentário anterior, os quais são referentes a execução do bearmer:

  1. Quanto ao erro 1, eu aumentei o tamanho da memória principal para 12000000 (acredito que a unidade de medida deva ser palavras), conforme proposto por @Ashok. Compilei e deu certo.
  2. Quanto ao erro 2, eu descobri ao estranho: em cada atualização do MikTeX, ele está desinstalando os pacotes já instalados na versão anterior antes da atualização. Como eu descobri isso? Eu abri o console do MikTeX e verifiquei que todos os pacotes do beamer (incluíndo o próprio beamer) estavam disponíveis para serem instalados (com o sinal de +), o que indica que eles não estavam instalados. Ressalto que isso aconteceu depois da atualização do banco de dados de pacotes do MikTeX. Já observei esse fato em atualizações anteriores, só não acreditava que isso aconteceria com o beamer, já que (aparentemente) é um pacote bem famoso por fazer apresentações no LaTeX. O mesmo aconteceu com o pacote xpatch. No mais, uma vez instalados os pacotes associados ao beamer e ao xpatch, a compilação aconteceu corretamente sem erros.

Bom, agora voltei a fazer minhas aulas em beamer normalmente. Desde já, agradeço pela ajuda.

dbmrq commented 2 years ago

Ah, maravilha então. Obrigado pela atualização!