IEEEtran \markboth 헤더에서 인용이 콜론 뒤의 공백에 영향을 미치는 이유는 무엇입니까?

IEEEtran \markboth 헤더에서 인용이 콜론 뒤의 공백에 영향을 미치는 이유는 무엇입니까?

업데이트:v5.5 에서는 이 문제가 해결되었습니다 cite.

패키지를 로드하거나 로드하지 않으면 제목의 cite콜론 뒤 간격이 변경되는 것을 확인했습니다 .\markbothIEEEtran

\documentclass{IEEEtran}
%\usepackage{cite}
\begin{document}
\markboth{: A}{}
: A
\end{document}

차이점은 미묘합니다. 두 개의 PDF를 만들고 그 사이에 Alt-Tab을 눌러 차이점을 확인해야 하지만 차이가 있습니다.

\usepackage{cite}그 이유는 무엇이며, 이를 방지하기 위해 이전 및/또는 이후 (예: \let\org...\...및 ) 에 무엇을 할 수 있습니까 \let\...\org...? 8페이지짜리 문서에서는 머리글을 제외하고는 다른 차이점을 찾을 수 없습니다.

답변1

하나는

....\hbox(0.0+0.0)x0.0
....\OT1/ptm/m/n/7 :
....\glue 2.45004 plus 1.04996 minus 0.84007
....\OT1/ptm/m/n/7 

다른 하나는

....\hbox(0.0+0.0)x0.0
....\OT1/ptm/m/n/7 :
....\glue 2.87003 plus 2.09991 minus 0.42003
....\OT1/ptm/m/n/7 A

그 이유는 의 공간인자가 :되돌아왔기 때문이다.

라텍스가 시작 문서에서 적용되는 값에 따라 \normalsfcodes설정되거나 \frenchspacing그에 따라 제목의 공간 요소를 정규화하므로 문제는 제목에만 영향을 미칩니다 .\nonfrenchspacing

그러나 테스트 라텍스는 공간 요소가 .1000 인지 테스트하는 것이지만 cite자체적인 이유로 1001로 만들므로 테스트는 항상 실패하므로 cite로드 되면 \normalsfcodes항상 \nonfrenchspacing값이 설정됩니다.

이는 기본적으로 IEEEtran에 영향을 미칩니다.\frenchspacing

가장 간단한 수정은 재설정하는 것입니다 \normalsfcodes.

\documentclass{IEEEtran}
\usepackage{cite}\AtBeginDocument{\let\normalsfcodes\frenchspacing}
\begin{document}

\markboth{: A}{}
: A
\end{document}

답변2

cite 패키지에는 문자 목록이 있습니다.

\providecommand{\CiteMoveChars}{.,:;}

위 첨자를 구두점 뒤에 옮기면 원하지 않는 행동이 발생합니다. 이를 방지하려면 해당 목록에서 콜론을 삭제하면 됩니다.

\documentclass{IEEEtran}
\usepackage{cite}

\providecommand{\CiteMoveChars}{.,;}

\begin{document}
\markboth{: A}{}
: A
\end{document}

또는 package 옵션을 사용하여 패키지를 로드합니다 nomove(이동 목록에서 모든 초기 문자를 제거하는 것과 동일).

\documentclass{IEEEtran}
\usepackage[nomove]{cite}

\begin{document}
\markboth{: A}{}
: A
\end{document}

관련 정보