인용 및 변경 사항과의 충돌

인용 및 변경 사항과의 충돌

과학 출판물의 경우, 나는 리뷰어의 의견을 고려하여 기사를 수정한 버전을 작성하고 있습니다. 어느 리뷰어가 어떤 수정을 했는지 확인해야 하므로 패키지를 사용합니다 changes. 분명히 내 기사에 참고 자료가 있으므로 패키지를 사용합니다 cite.

PDFLaTeX(TexLive 2014)는 패키지 의 또는 명령 cite내에서 명령을 사용할 때 오류를 발생시킵니다 . 다음은 최소한의 작업 예입니다.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그러나 inside \remove또는 track 변경 명령을 사용할 때 LaTeX가 충돌하는 문제를 다소 만족스럽게 해결했습니다 \add. 해결 방법은 참조가 표시되는 것을 무시합니다.

라텍스 문서 상단에서 사용한 명령은 다음과 같습니다.

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

그것은 나를 위해 일했습니다.

관련 정보