Por que citar influencia o espaçamento após dois pontos no cabeçalho IEEEtran \markboth?

Por que citar influencia o espaçamento após dois pontos no cabeçalho IEEEtran \markboth?

Atualizar:Isso foi resolvido na citev5.5.

Percebi que carregar (ou não) o citepacote altera o espaçamento após dois pontos nos \markbothtítulos deIEEEtran

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

As diferenças são sutis, tenho que criar dois pdfs e Alt-Tab entre eles para ver a diferença, mas está aí.

Por que isso acontece e o que posso fazer antes e/ou depois \usepackage{cite}(como \let\org...\...e \let\...\org...) para evitá-lo? Não vejo nenhuma outra diferença em um documento de 8 páginas, exceto nos cabeçalhos.

Responder1

Um tem

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

O outro tem

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

A razão é que o fator espacial de :foi revertido.

o problema afeta apenas o título, pois o látex normaliza os fatores de espaço no título com \normalsfcodeso qual está definido ou \frenchspacingou \nonfrenchspacingdependendo do valor em vigor no início do documento.

no entanto, o teste que o latex usa é testar se o fator de espaço .é 1000, mas citeo torna 1001 por seus próprios motivos, de modo que o teste sempre falha, portanto, se citefor carregado, \normalsfcodessempre define o \nonfrenchspacingvalor.

isso afeta o IEEEtran, pois o padrão é\frenchspacing

A solução mais simples é redefinir \normalsfcodes:

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

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

Responder2

O pacote cite possui uma lista de caracteres

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

que movem a citação sobrescrita após a pontuação e isso está produzindo o comportamento indesejado. Para evitar isso, você pode excluir os dois pontos dessa lista:

\documentclass{IEEEtran}
\usepackage{cite}

\providecommand{\CiteMoveChars}{.,;}

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

ou carregue o pacote com a nomoveopção package (que é o mesmo que remover todos os caracteres iniciais da lista de movimentação):

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

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

informação relacionada