Конфликт с цитированием и изменениями

Конфликт с цитированием и изменениями

Для научной публикации я пишу измененную версию своей статьи, которая учитывает комментарии моих рецензентов. Мне нужно определить, какое изменение связано с каким рецензентом, поэтому я использую пакет changes. Очевидно, что в моей статье есть ссылки, поэтому я использую пакет cite.

PDFLaTeX (TexLive 2014) выдает мне ошибки, когда я использую citeкоманду в пределах deletedили replacedкоманд пакета changes. Вот минимальный рабочий пример:

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

Я получаю следующие ошибки:

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

Если я удалю citeпакеты, все вернется к норме. К сожалению, мне нужен этот пакет.

Вопрос действительно близок кэтот без ответа. Что я должен делать?

решение1

Как daleif указал в комментариях, проблема связана с ulemпакетом, который используется для удаления удаленных изменений в changesпакете. Известно, что он ведет себя странно для некоторых commends, среди них cite.

Как указано вдокументация, вам придется обернуть его вот citeтак mbox:

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

И это работает.

Очень похожая проблема, решенная тем же способомздесь.

решение2

@Neraste сказал правильно. Я только что нашел ту же проблему и хотел избежать \mbox{\cite{someref}}при каждой ссылке.... Итак, основываясь наэтот, я просто использовал:

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

Это сработало идеально.

решение3

\mboxмне не помогло.

Однако у меня есть довольно удовлетворительное решение проблемы сбоя LaTeX при использовании команд \citewithin \removeили \addtrack changes. Решение просто игнорирует отображение ссылки.

Вот команды, которые я использовал в верхней части документа 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)

Мне это помогло.

Связанный контент