Qual é a diferença entre os caracteres semelhantes a hífen #45 e #127 da codificação T1?

Qual é a diferença entre os caracteres semelhantes a hífen #45 e #127 da codificação T1?

Qual é a diferença entre os símbolos com índices decimais #45 e #127 da codificação T1? O caractere #45 parece ser o hífen comum, mas e o #127? O travessão e o travessão estão nas posições 21 e 22, respectivamente.

Esta excelente resposta à minha pergunta sobre quais ligaduras estão contidas em uma fontechamou minha atenção para esse assunto. De acordo com ele, o TeX construirá uma "ligadura" que se parece com um hífen (presumivelmente #45 ou #127) a partir da sequência de caracteres #45-#127. (Por que ele faz isso?)

Responder1

O caractere 127 (hexadecimal "7F) é um "hífen saliente", como é facilmente comprovado pelo seguinte documento de teste.

\documentclass{article}
\usepackage[T1]{fontenc}

\showboxbreadth=\maxdimen % show completely the box contents
\showboxdepth=\maxdimen   % at every inner level

\begin{document}
\setlength{\parindent}{0pt} % just for the example

\sbox0{\char"2D}\the\wd0

\sbox0{\char"7F}\the\wd0

a\char"2D b

a\char"7F b

\begingroup
\setlength{\fboxsep}{-\fboxrule}
\fbox{\char"2D}\quad\fbox{\char"7F}
\endgroup

\sbox0{\char"2D \char"7F }\showbox0

\end{document}

Aqui está a saída

insira a descrição da imagem aqui

É evidente que o hífen normal é ligeiramente assimétrico em relação à sua caixa delimitadora e que o "hífen saliente" tem a maior parte deleforasua caixa delimitadora.

Ao definir \hyphenchar\font="7F(quando a fonte atual é codificada em T1), obtém-se essas consequências

  1. Hífens explícitos (o caractere normal "2D) não inserirão discricionários, nem as ligaduras que começam com ele

  2. O algoritmo de hifenização, quando aplicado, usaria o "hífen saliente".

  3. Se a linguagem estabelecesse regras de hifenização onde o hífen normal pudesse ser usado como ponto de interrupção, não haveria dois caracteres: o -seguido do "hífen saliente" adicionado pelo procedimento de hifenização seria mesclado em um único hífen saliente.

O último ponto é realizado pela segunda ligadura

(LABEL O 55)
(LIG O 55 O 25)
(LIG O 177 O 177)
(STOP)

pertencente ao caractere "octal 55" (ou seja, decimal 45 e hexadecimal "2D), que é mostrado no último bit do exemplo. O arquivo de log relata

> \box0=
\hbox(4.3045+0.0)x1.66626
.\T1/cmr/m/n/10 ^^? (ligature -^^?)

Esse caractere foi incluído na codificação T1 quando os traços microtipográficos nem sequer eram sonhados (1990); até onde eu sei, nunca foi realmente explorado. VerArtigo de M. Ferguson sobre TUGboatPara maiores informações.

informação relacionada