
Для научной публикации я пишу измененную версию своей статьи, которая учитывает комментарии моих рецензентов. Мне нужно определить, какое изменение связано с каким рецензентом, поэтому я использую пакет 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 при использовании команд \cite
within \remove
или \add
track 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)
Мне это помогло.