cite が IEEEtran \markboth ヘッダーのコロンの後のスペースに影響を与えるのはなぜですか?

cite が IEEEtran \markboth ヘッダーのコロンの後のスペースに影響を与えるのはなぜですか?

アップデート:これはバージョン5.5で解決されましたcite

パッケージをロードするかしないかによって、cite見出しのコロンの後のスペースが変わることに気付きました\markbothIEEEtran

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

違いは微妙で、違いを確認するには 2 つの 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

その理由は、 のスペース係数:が元に戻ったためです。

この問題は、LaTeX が、文書の開始時に有効な の値に応じて、\normalsfcodes設定されている または\frenchspacingの見出しのスペース係数を正規化する場合に、見出しにのみ影響します。\nonfrenchspacing

ただし、LaTeX が使用するテストは、 のスペース係数が.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}

または、パッケージ オプションを使用してパッケージをロードしますnomove(これは、移動リストからすべての最初の文字を削除するのと同じです)。

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

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

関連情報