
Para uma publicação científica, estou escrevendo uma versão modificada do meu artigo que leva em consideração os comentários dos meus revisores. Preciso identificar qual modificação se deve a qual revisor, então uso o changes
pacote. Obviamente, tenho referências em meu artigo, então uso o cite
pacote.
PDFLaTeX (TexLive 2014) apresenta erros quando uso o cite
comando dentro dos comandos deleted
ou replaced
do changes
pacote. Aqui está um exemplo mínimo de trabalho:
\documentclass{article}
\usepackage{cite}
\usepackage{changes}
\begin{document}
As previously observed \deleted{in \cite{someref}, there is no banana here.}
\begin{thebibliography}{9}
\bibitem{someref}
Some ref here.
\end{thebibliography}
\end{document}
Eu recebo os seguintes erros:
! Extra }, or forgotten \endgroup.
\UL@stop ...alty \ifnum \lastkern =\thr@@ \egroup
\egroup \ifdim \wd \UL@box...
l.8 ...n \cite{someref}, there is no banana here.}
! Extra }, or forgotten \endgroup.
\UL@stop ...num \lastkern =\thr@@ \egroup \egroup
\ifdim \wd \UL@box =\z@ \e...
l.8 ...n \cite{someref}, there is no banana here.}
! Missing } inserted.
<inserted text>
}
l.8 ...n \cite{someref}, there is no banana here.}
! Missing } inserted.
<inserted text>
}
l.8 ...n \cite{someref}, there is no banana here.}
Se eu remover os cite
pacotes, tudo volta ao normal. Infelizmente preciso deste pacote.
A questão está realmente próxima deessa sem resposta. O que devo fazer?
Responder1
Como daleif apontou nos comentários, o problema se deve ao ulem
pacote usado para eliminar alterações excluídas no changes
pacote. É conhecido por se comportar de maneira estranha com alguns elogios, entre eles cite
.
Como indicado nodocumentação, você tem que embrulhar cite
assim mbox
:
As previously observed \deleted{in \mbox{\cite{someref}}, there is no banana here.}
E funciona.
Um problema bastante semelhante resolvido da mesma maneiraaqui.
Responder2
@Neraste disse certo. Acabei de encontrar o mesmo problema e queria evitar \mbox{\cite{someref}}
todas as referências .... Então, com base emesse, acabei de usar:
\let\oldcitep\citep
\renewcommand{\citep}[1]{\mbox{\oldcitep{#1}}}
\let\oldcitet\citet
\renewcommand{\citet}[1]{\mbox{\oldcitet{#1}}}
\let\oldcite\cite
\renewcommand{\cite}[1]{\mbox{\oldcite{#1}}}
Funcionou perfeitamente
Responder3
\mbox
não funcionou para mim.
No entanto, tenho uma solução um tanto satisfatória para solucionar o problema de travamento do LaTeX ao usar comandos \cite
dentro \remove
ou \add
rastrear alterações. A solução alternativa simplesmente ignora a exibição da referência.
Aqui estão os comandos que usei na parte superior do documento latex:
\usepackage[ignoremode,inline]{trackchanges} % use the "ignoremode" option here
\tcignore{\cite}{1}{0} % To ignore parenthetical citation (previously used to be \citep)
\tcignore{\citeA}{1}{0} % To ignore in-text citation (previously used to be \citet)
Funcionou para mim.