与引用和更改相冲突

与引用和更改相冲突

对于一篇科学出版物,我正在撰写我的文章的修改版本,其中考虑到了审稿人的评论。我需要确定哪项修改是由哪位审稿人进行的,因此我使用了该changes软件包。显然,我的文章中有参考文献,因此我使用了该cite软件包。

当我在包的或命令cite中使用命令时,PDFLaTeX(TexLive 2014)会出错。这是一个最小的工作示例:deletedreplacedchanges

\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包中已删除更改的包造成的。众所周知,它在某些命令中表现异常,其中包括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对我没用。

\cite不过,我对于使用within\remove或track changes 命令时 LaTeX 崩溃的问题有一个比较满意的解决方案\add。这个解决方案只是忽略了显示的引用。

以下是我在 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)

它对我有用。

相关内容