Об использовании нестандартных пробелов
Якась стаття про Lingvo і GoldenDict, але є дещо цікавого
Last updated
Якась стаття про Lingvo і GoldenDict, але є дещо цікавого
Last updated
В таблице символов 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.
Можно воспользоваться возможностями поиска/замены. Вначале набрать произвольный символ в местах, где необходимо вставить нестандартный пробел, а затем заменить набранный символ на требуемый при помощи регулярных выражений. Например:
Набираем слово р@а@з@р@я@д@к@а.
Выделяем это слово и вызываем диалог поиска/замены.
В поле Найти набираем @, а в поле Заменить — \u2008 (Escape-последовательность с шестнадцатеричным кодом т.н. пунктуационного пробела).
Активизируем переключатели Регулярные выражения и Заменить в выделенном отрывке, затем жмём на кнопку Заменить всё.
Смотрим на результат: слово «р а з р я д к а» отображается на экране с эффектом разреженного текста.
Название в Юникоде
Код в Юникоде
Выглядит
Мнемоника в 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