Нужно ли проявлять особую осторожность, если за точкой внутри аббревиатуры следует \hskip или \hspace?

Нужно ли проявлять особую осторожность, если за точкой внутри аббревиатуры следует \hskip или \hspace?

Предположим, что мы хотим вставить небольшой пробел внутри сокращений, например:т.е.,например,д. ч.,г. Б.,а. С.,Округ Колумбия.,и т. д.,и т. п., … Выше я ввел пробел для волос « » (U+200A). (Хорошее это решение или нет, зависит от языка, руководства по стилю, редактора и автора. Для целей этого поста это просто простое предположение.) В \nonfrenchspacingмы могли бы рассмотреть возможность сделать это, пропустив 1/24 em (1/24 em упоминается вhttp://helpx.adobe.com/illustrator/using/special-characters.html; некоторые люди, как вhttp://forum.glyphsapp.com/t/creating-hair-space-thin-space-figure-space-punctuation-space/12542/6возьмите 1/25 em; некоторые люди, как вhttp://www.myfonts.com/pages/fontshop-adventures-in-space_spacesвозьмите 1/3 тонкого пробела, не указывая, насколько он «тонкий») и допуская некоторое растяжение/сокращение (только для редких случаев, когда в другом месте строки недостаточно места для растяжения/сокращения; если вы набираетемноготекста, вы рано или поздно с ними столкнетесь):

(1) Сначала определим

\newcommand{\hairsp}{\hskip.0416666666em plus.0208333333em minus.0208333333em}

или

\newcommand{\hairsp}{\hspace{.0416666666em plus.0208333333em minus.0208333333em}}

(2) Во-вторых, скажем

i.\hairsp e., e.\hairsp g., d.\hairsp h., z.\hairsp B., a.\hairsp C., d.\hairsp C., и т.\hairsp д., и т.\hairsp п.

Или, может быть, стоит сказать

i.\@\hairsp e., e.\@\hairsp g., d.\@\hairsp h., z.\@\hairsp B., a.\@\hairsp C., d.\@\hairsp C., и т.\@\hairsp д., и т.\@\hairsp п.

на шаге (2)?

Мои собственные тесты не смогли различить результаты двух возможностей на этапе (2), но, может быть, я не провел правильные тесты?

решение1

{.0416666666em нет смысла использовать так много десятичных знаков, tex использует арифметику с фиксированной точкой примерно до 5dp.

Поскольку вы добавляете пробел через \hskipпробел, а не через слово, эффекта \spacefactor это \@не даст.

Обычно, если вы хотите использовать пропуск, я бы основывал значения на размерах шрифта, а не на em (то есть fontdimen 2,3,4, а не 6), см.Что означают разные \fontdimen<num>

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