Об использовании нестандартных пробелов

Якась стаття про Lingvo і GoldenDict, але є дещо цікавого

В таблице символов Unicode имеется несколько видов нестандартных пробелов. Эти пробелы могут применяться для форматирования текста словарей такими способами, которые невозможно реализовать стандартными средствами DSL. Перечислим наиболее распространённые примеры:

  • создание отбивок между абзацами;

  • создание красных строк;

  • эффект разрядки между буквами в словах.

Сымитировать перечисленное при помощи обычных пробелов не удаётся, поскольку в словарных программах действует правило их сокращения. Имитация успешно осуществляется при помощи пробелов нестандартных.

Красную строку, т.е. отступ первой строки в абзаце, можно набирать неразрывными пробелами обычной ширины (No-break space, первый в таблице ниже), как правило от 4 до 7. При этом последним пробелом, примыкающим к первой букве слова, рекомендуется ставить стандартный пробел (о причинах см. ниже).

Отбивка, т.е. пустая строка между абзацами, также создаётся при помощи неразрывного пробела, помещённого на отдельной строке. Для удобства чтения и дальнейшей обработки исходного DSL можно заключать пробел в тэг отступа [m0], хотя побочно это незначительно повлияет на размер файла.

Существует возможность регулировать высоту отбивки при помощи тэгов надстрочного [sup] и подстрочного [sub] индекса, расставленных вокруг неразрывного пробела. Это средство вполне работоспособно, но к сожалению неодинаково трактуется словарными программами. В Lingvo максимальная высота получается при употреблении [sub], а минимальная — при [sup]:

В GoldenDict максимальную высоту даёт неразрывный пробел без тэгов, а минимальную — в связке с [sub]:

Помимо неразрывного пробела для перечисленных целей можно использовать любой другой нестандартный пробел. Единственное преимущество первого в том, что он более распространён в шрифтах, чем другие.

Относительное неудобство, возникающее при работе с нестандартными пробелами, как и с другими специальными символами, заключается в том, что для доступа к ним напрямую с клавиатуры не предусмотрены отдельные клавиши. Это препятствие преодолевается следующими способами.

Можно воспользоваться сторонней утилитой BabelMap (или её аналогами: PopChar, системной Character Map), при помощи которой откопировать нужный символ в текст словаря и далее дублировать его по необходимости.

Можно использовать способ набора с клавиатуры при помощи т.н. Alt-кодов. Как правило в профессиональных текстовых редакторах такой способ доступен и заключается в следующем. Для вставки в текст требуемого символа, нужно зажать клавишу Alt и, не отпуская клавишы, набрать десятичный код этого символа на цифровой клавиатуре (отдельная группа клавиш в правой части полной клавиатуры, т.н. NumPad). Так, например, для вставки неразрывного пробела (No-break space) необходимо зажать Alt и набрать на NumPad 0160, для вставки M-пробела (Em space) — Alt+8195. В некоторых редакторах перед десятичным кодом требуется дополнительно набирать ноль 0 или два ноля 00.

Можно воспользоваться возможностями поиска/замены. Вначале набрать произвольный символ в местах, где необходимо вставить нестандартный пробел, а затем заменить набранный символ на требуемый при помощи регулярных выражений. Например:

  1. Набираем слово р@а@з@р@я@д@к@а.

  2. Выделяем это слово и вызываем диалог поиска/замены.

  3. В поле Найти набираем @, а в поле Заменить — \u2008 (Escape-последовательность с шестнадцатеричным кодом т.н. пунктуационного пробела).

  4. Активизируем переключатели Регулярные выражения и Заменить в выделенном отрывке, затем жмём на кнопку Заменить всё.

  5. Смотрим на результат: слово «р а з р я д к а» отображается на экране с эффектом разреженного текста.

Название в Юникоде

Код в Юникоде

Выглядит

Мнемоника в HTML 4

Пояснения

HEX

DEC

NO-BREAK SPACE

A0

160

п р и м е р

 

аналогичен обычному пробелу, но неразрывный

EN QUAD

2000

8192

п р и м е р

канонически эквивалентен символу 0x2002 EN SPACE

EM QUAD

2001

8193

п р и м е р

канонически эквивалентен символу 0x2003 EM SPACE

EN SPACE

2002

8194

п р и м е р

 

равен половине кегля шрифта (исторически такой была ширина заглавной буквы «N»)

EM SPACE

2003

8195

п р и м е р

 

равен кеглю шрифта (исторически такой была ширина заглавной буквы «M»)

THREE-PER-EM SPACE

2004

8196

п р и м е р

ближе всех к обычному пробелу, втрое меньше, чем EM-SPACE

FOUR-PER-EM SPACE

2005

8197

п р и м е р

в четыре раза меньше, чем EM-SPACE

SIX-PER-EM SPACE

2006

8198

п р и м е р

в шесть раз меньше, чем EM-SPACE

FIGURE SPACE

2007

8199

п р и м е р

имеет такую же ширину, что и цифры в текущем шрифте; предназначен для набора таблиц; неразрывный

PUNCTUATION SPACE

2008

8200

п р и м е р

ширина равна ширине точки

THIN SPACE

2009

8201

п р и м е р

 

обычно имеет ширину в 1⁄5 (реже — в 1⁄6) кегля; пропорционально соответствует двухпунктовой шпации при наборе кеглем в 10 пунктов

HAIR SPACE

200A

8202

п р и м е р

самый тонкий пробел, соответствует самой тонкой шпации в кассе наборщика

ZERO-WIDTH SPACE

200B

8203

п​р​и​м​е​р

ширина нулевая; ставится в местах, где нужно разорвать строку, не добавляя знак переноса; применяется в языках, где нет пробелов; при выравнивании текста по ширине может расширяться, как и любой другой пробел

NARROW NO-BREAK SPACE

202F

8239

п р и м е р

узкий неразрывный пробел

MEDIUM MATHEMATICAL SPACE

205F

8287

п р и м е р

узкий пробел, применяемый в математических формулах

WORD JOINER

2060

8288

п⁠р⁠и⁠м⁠е⁠р

аналогичен ZERO-WIDTH SPACE, но неразрывный

IDEOGRAPHIC SPACE

3000

12288

п р и м е р

используется в восточных языках; равняется ширине одного иероглифа

Замечания: При использовании нестандартных пробелов необходимо учитывать, что не во всех шрифтах есть глифы для их отображения. Впрочем, в современных программах этот недостаток нивелируется благодаря системе подстановки шрифтов.

https://lingvoboard.ru/store/html/DSLReference_HTML/spaces.html

Last updated