Почему cite влияет на интервал после двоеточий в заголовке IEEEtran \markboth?

Почему cite влияет на интервал после двоеточий в заголовке IEEEtran \markboth?

Обновлять:Эта проблема решена в citeверсии 5.5.

Я заметил, что загрузка (или не загрузка) citeпакета изменяет интервал после двоеточий в \markbothзаголовкахIEEEtran

\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в зависимости от значения, действующего в начале документа.

Однако тест, который использует 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опцией package (что то же самое, что удалить все начальные символы из списка ходов):

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

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

Связанный контент