В чем разница между дефисоподобными символами #45 и #127 из кодировки T1?

В чем разница между дефисоподобными символами #45 и #127 из кодировки T1?

В чем разница между символами с десятичными индексами #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) можно получить следующие последствия

  1. Явные дефисы (обычный символ "2D) не будут вставлять дискреционные символы, как и лигатуры, начинающиеся с него.

  2. Алгоритм переноса, если его применить, будет использовать «выступающий дефис».

  3. Если бы язык устанавливал правила переноса, при которых обычный дефис можно было бы использовать в качестве точки разрыва, то не было бы двух символов: за ним -следовал бы «выступающий дефис», добавленный процедурой переноса, который был бы объединен в один выступающий дефис.

Последняя точка реализуется второй лигатурой.

(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Чтобы получить больше информации.

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