对于一篇科学出版物,我正在撰写我的文章的修改版本,其中考虑到了审稿人的评论。我需要确定哪项修改是由哪位审稿人进行的,因此我使用了该changes
软件包。显然,我的文章中有参考文献,因此我使用了该cite
软件包。
当我在包的或命令cite
中使用命令时,PDFLaTeX(TexLive 2014)会出错。这是一个最小的工作示例: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
答案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)
它对我有用。