В чем разница между символами с десятичными индексами #45 и #127 из кодировки T1? Символ #45, похоже, обычный дефис, но что насчет #127? Короткое и длинное тире находятся на позициях #21 и #22 соответственно.
Это отличный ответ на мой вопрос о том, какие лигатуры содержатся в шрифтеобратил мое внимание на этот вопрос. Согласно ему, TeX создаст «лигатуру», которая выглядит как дефис (предположительно, либо #45, либо #127) из последовательности символов #45-#127. (Почему он это делает?)
решение1
Символ 127 (шестнадцатеричный "7F
) — это «выступающий дефис», что легко доказывается следующим тестовым документом.
\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}
Вот результат
Очевидно, что обычный дефис слегка асимметричен относительно своего ограничивающего прямоугольника, а «выступающий дефис» имеет большую его часть.снаружиего ограничивающая рамка.
При установке \hyphenchar\font="7F
(когда текущий шрифт закодирован в T1) можно получить следующие последствия
Явные дефисы (обычный символ
"2D
) не будут вставлять дискреционные символы, как и лигатуры, начинающиеся с него.Алгоритм переноса, если его применить, будет использовать «выступающий дефис».
Если бы язык устанавливал правила переноса, при которых обычный дефис можно было бы использовать в качестве точки разрыва, то не было бы двух символов: за ним
-
следовал бы «выступающий дефис», добавленный процедурой переноса, который был бы объединен в один выступающий дефис.
Последняя точка реализуется второй лигатурой.
(LABEL O 55)
(LIG O 55 O 25)
(LIG O 177 O 177)
(STOP)
относящийся к символу "octal 55" (то есть, десятичный 45 и шестнадцатеричный "2D
), который показан в последнем бите примера. Файл журнала сообщает
> \box0=
\hbox(4.3045+0.0)x1.66626
.\T1/cmr/m/n/10 ^^? (ligature -^^?)
Этот символ был включен в кодировку T1, когда о микротипографических функциях даже не мечтали (1990); насколько мне известно, он никогда по-настоящему не использовался. См.Статья М. Фергюсона о TUGboatЧтобы получить больше информации.