Konflikt mit Zitat und Änderungen

Konflikt mit Zitat und Änderungen

Für eine wissenschaftliche Veröffentlichung schreibe ich eine geänderte Version meines Artikels, die die Kommentare meiner Gutachter berücksichtigt. Ich muss erkennen, welche Änderung von welchem ​​Gutachter stammt, also verwende ich das changesPaket. Natürlich habe ich in meinem Artikel Referenzen, also verwende ich das Paket cite.

PDFLaTeX (TexLive 2014) gibt mir Fehler aus, wenn ich den citeBefehl innerhalb der deletedoder replacedBefehle des changesPakets verwende. Hier ist ein minimales funktionierendes Beispiel:

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

Ich erhalte die folgenden Fehler:

! 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.}

Wenn ich die Pakete entferne cite, ist alles wieder normal. Leider benötige ich dieses Paket.

Die Frage ist wirklich nahe andiese unbeantwortete. Was soll ich machen?

Antwort1

Wie daleif in Kommentaren anmerkte, liegt das Problem an dem ulemPaket, das zum Löschen gelöschter Änderungen im changesPaket verwendet wird. Es ist bekannt, dass es sich bei einigen Befehlen seltsam verhält, darunter cite.

Wie in derDokumentation, müssen Sie Ihr citewie mboxfolgt verpacken:

As previously observed \deleted{in \mbox{\cite{someref}}, there is no banana here.}

Und es funktioniert.

Ein ziemlich ähnliches Problem, das auf die gleiche Weise gelöst wurdeHier.

Antwort2

@Neraste hat es richtig gesagt. Ich habe gerade das gleiche Problem gefunden und wollte das \mbox{\cite{someref}}bei jeder Referenz vermeiden.... Also, basierend aufDas, ich habe einfach verwendet:

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

Es hat perfekt funktioniert

Antwort3

\mboxhat bei mir nicht funktioniert.

Ich habe jedoch eine einigermaßen zufriedenstellende Lösung für das Problem, dass LaTeX abstürzt, wenn Befehle \citeinnerhalb \removeoder \addnachverfolgen von Änderungen verwendet werden. Die Lösung ignoriert einfach die Anzeige der Referenz.

Hier sind die Befehle, die ich oben im Latex-Dokument verwendet habe:

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

Bei mir hat es funktioniert.

verwandte Informationen