stringtranslate.com

Пробелный символ

В типографике , и особенно в компьютерной типографии, пробел или пробел — это любой символ или серия символов, которые представляют горизонтальное или вертикальное пространство . При визуализации символ пробела не соответствует видимому знаку, но обычно занимает область на странице. Например, общий символ пробела U+0020 ПРОБЕЛ (также ASCII 32) представляет собой символ пунктуации пробела в тексте, используемый в качестве разделителя слов в западных сценариях . 

Обзор

Относительная ширина различных пробелов в Юникоде

Во многих раскладках клавиатуры пробельный символ можно ввести, нажав spacebar. Горизонтальные пробелы также можно вводить на многих клавиатурах с помощью клавиши , хотя длина пробела может различаться. Вертикальные пробелы можно ввести, набрав , что в большинстве программ создает последовательность кода новой строки. В некоторых системах оно имеет отдельное значение, но в других они объединены. Во многих ранних компьютерных играх для рисования экрана использовались пробельные символы (например, Kingdom of Kroz ).Tab ↹Return↵ Enter

Термин «пробелы» основан на внешнем виде символов на обычной бумаге . Однако в приложении символы пробелов могут обрабатываться так же, как и любой другой код символов, и разные программы могут определять для этих символов свою собственную семантику.

Юникод

В таблице ниже перечислены двадцать пять символов, определенных как пробелы («WSpace=Y», «WS») в базе данных символов Юникода . [1] Семнадцать используют определение пробелов, соответствующее алгоритму двунаправленной записи («Тип двунаправленного символа = WS»), и известны как символы «Bidi-WS». Остальные символы также можно использовать, но они не относятся к типу «Биди».

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

Заменить изображения

Unicode также предоставляет некоторые видимые символы, которые можно использовать для обозначения различных символов пробелов в контекстах, где видимый символ должен отображаться:

  1. ^ Над нулевой клавишей «0» или отрицательной клавишей «(‒)».
Точное пространство

Пробелы без пробелов

Пробелы и цифровая типографика

В Чикагском руководстве по стилю есть правила использования пробелов разного размера.

Экранное меню

Текстовые редакторы , текстовые процессоры и настольные издательские программы различаются тем, как они представляют пробелы на экране и как они представляют пробелы на концах строк, длина которых превышает ширину экрана или столбца. В некоторых случаях пробелы отображаются просто как пустое пространство; в других случаях они могут быть представлены интерпунктом или другими символами. Для создания пробелов можно использовать множество различных символов (описанных ниже), а несимвольные функции (такие как поля и настройки табуляции) также могут влиять на пробелы.

Многие пробельные символы Юникода были созданы для совместимости с классической печатной типографикой. [27]

Даже если цифровая типографика имеет алгоритмический кернинг и выравнивание, эти пробелы при необходимости можно использовать для дополнения электронного форматирования.

Пространство общего назначения переменной ширины

В компьютерных кодировках символов имеется обычное пространство общего назначения (символ Юникода U+0020), ширина которого зависит от конструкции шрифта. Типичные значения варьируются от 1/5 em до 1/3 em (в цифровой типографике em равен номинальному размеру шрифта, поэтому для шрифта размером 10 пунктов пространство, вероятно, будет составлять от 2 до 3,3 пункта). Сложные шрифты могут иметь пробелы разного размера для жирного, курсива и прописных букв, и часто наборщики вручную регулируют ширину пробела в зависимости от размера и заметности текста.

В дополнение к этому пространству общего назначения можно закодировать пространство определенной ширины. Полный список смотрите в таблице ниже.

Волосы вокруг черточек

Длинные тире , используемые в качестве разделителей в скобках, и длинные тире, используемые в качестве соединителей слов, обычно непрерывны по тексту. [28] Однако такое тире может быть дополнительно окружено пробелом U +200A или тонким пробелом U+2009. Пространство для волос можно записать в HTML с использованием числовых ссылок на символы   или  или именованного объекта  , но по состоянию на 2016 год оно еще не поддерживается повсеместно в браузерах. [ нужно обновить ] Тонкое пространство — это именованный объект и числовые ссылки или . Эти пробелы намного тоньше, чем обычное пространство (за исключением моноширинного (непропорционального) шрифта ), причем пространство для волос, в частности, является самым тонким из горизонтальных символов пробелов.   

Вычислительные приложения

Языки программирования

В синтаксисе языка программирования для явного разделения токенов часто используются пробелы . В большинстве языков несколько пробельных символов обрабатываются так же, как один пробельный символ (за пределами строк в кавычках); такие языки называются свободной формой . В некоторых языках, включая Haskell , occam , ABC и Python , пробелы и отступы используются для синтаксических целей. В сатирическом языке под названием Whitespace символы пробелов являются единственными допустимыми символами для программирования, а любые другие символы игнорируются.

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

Большинство языков распознают только символы ASCII как пробелы, а в некоторых случаях и символы новой строки Unicode, но не большинство символов, перечисленных выше. Язык C определяет пробельные символы как «пробел, горизонтальную табуляцию, новую строку, вертикальную табуляцию и перевод страницы». [29] Сетевой протокол HTTP требует использования разных типов пробелов в разных частях протокола, например: только символ пробела в строке состояния , CRLF в конце строки и «линейный пробел» в значениях заголовка. . [30]

Пользовательские интерфейсы командной строки

В командах, обрабатываемых командными процессорами , например, в сценариях и набираемых, символ пробела может вызвать проблемы, поскольку он имеет две возможные функции: как часть команды или параметра или как параметр или разделитель имени . Неоднозначность можно предотвратить либо запретив вставленные пробелы, либо заключив имя со встроенными пробелами между символами кавычек.

Языки разметки

Некоторые языки разметки , такие как SGML , сохраняют пробелы в том виде, в котором они написаны.

Языки веб-разметки, такие как XML и HTML, специально обрабатывают пробельные символы, включая пробелы, для удобства программистов. Один или несколько пробельных символов, считываемых соответствующими процессорами времени отображения этих языков разметки, сжимаются до 0 или 1 пробела, в зависимости от их семантического контекста. Например, двойные (или более) пробелы в тексте сворачиваются в один пробел, а пробелы, которые появляются по обе стороны от знака " =", отделяющего имя атрибута от его значения, не влияют на интерпретацию документа. Конечные теги элементов могут содержать конечные пробелы, а теги пустых элементов в XML могут содержать пробелы перед " />". В этих языках ненужные пробелы увеличивают размер файла и могут замедлить передачу по сети. С другой стороны, ненужные пробелы также могут незаметно отмечать код, аналогично комментариям в коде, но менее очевидным. Это может быть желательно, чтобы доказать нарушение лицензии или авторских прав, совершенное путем копирования и вставки .

В значениях атрибутов XML последовательности символов пробелов обрабатываются как один пробел, когда документ читается анализатором. [31] Пробелы в содержимом элемента XML таким образом не изменяются анализатором, но приложение, получающее информацию от анализатора, может применить аналогичные правила к содержимому элемента. Автор XML-документа может использовать xml:space="preserve"атрибут элемента, чтобы указать синтаксическому анализатору не допускать изменения нижестоящим приложением пробелов в содержимом этого элемента.

В большинстве элементов HTML последовательность символов пробелов рассматривается как один разделитель между словами , который может проявляться как одиночный символ пробела при рендеринге текста на языке, который обычно вставляет такой пробел между словами. [32] Соответствующие средства визуализации HTML должны применять более буквальную обработку пробелов в нескольких предписанных элементах, таких как preтег и любой элемент, для которого CSS использовался для применения preобработки пробелов. В таких элементах пробелы не будут «сворачиваться» в разделители между словами.

И в XML, и в HTML неразрывный пробел вместе с другими нестандартными пробелами не рассматривается как свертываемый «пробел», поэтому на него не распространяются приведенные выше правила.

Имена файлов

Такое использование похоже на имена файлов, состоящие из нескольких слов, написанные для операционных систем и приложений, которые путаются из-за встроенных пробельных кодов — вместо этого в таких именах файлов используется подчеркивание ( _) в качестве разделителя слов, as_in_this_phrase.

Другим таким символом был U+2422ПУСТОЙ СИМВОЛ . Это использовалось в первые годы компьютерного программирования при написании форм кодирования. Операторы Keypunch сразу распознали этот символ как «явный пробел». [16] Он использовался в BCDIC , [16] EBCDIC , [16] и ASCII-1963 . [16]

Смотрите также

Рекомендации

  1. ^ «Стандарт Юникод». Консорциум Юникод.
  2. ^ «Стандарты дизайна персонажей - пробелы» . Стандарты дизайна персонажей . Майкрософт . 1998–1999 гг. Архивировано из оригинала 14 марта 2010 года . Проверено 18 мая 2009 г.
  3. ^ Стандарт Unicode 5.0, печатное издание, стр. 205; также доступно в «Глава 6 — Системы письма и пунктуация» (PDF) . Стандарт Unicode 5.0, электронное издание. Консорциум Юникод . 14 июля 2006 г. п. 11 (205) . Проверено 22 декабря 2022 г.
  4. ^ «Общая пунктуация» (PDF) . Стандарт Юникод 5.1 . Юникод Инк . 1991–2008 гг . Проверено 13 мая 2009 г.
  5. ^ Сарджент, Мюррей III (29 августа 2006 г.). «Математическое кодирование почти простого текста в Юникоде (версия 2)». Техническое примечание Unicode №28 . Юникод Инк . стр. 19–20 . Проверено 19 мая 2009 г.
  6. ^ Гиллам, Ричард (2002). Демистификация Unicode: Практическое руководство программиста по стандарту кодирования . Аддисон-Уэсли. ISBN 0-201-70052-2.
  7. ^ Аб Хиксон, Ян . «12.5 Ссылки на именованные символы». Стандарт HTML . ЧТОРГ .
  8. ^ Вольфрам . «\[NegativeThickSpace]». Документация по языку Wolfram .
  9. ^ Вольфрам . «\[NegativeMediumSpace]». Документация по языку Wolfram .
  10. ^ Вольфрам . «\[NegativeThinSpace]». Документация по языку Wolfram .
  11. ^ Вольфрам . «\[NegativeVeryThinSpace]». Документация по языку Wolfram .
  12. ^ Фальтстрем, П., изд. (август 2010 г.). «Нулевая ширина без соединения». Кодовые точки Unicode и интернационализированные доменные имена для приложений (IDNA). IETF . сек. А.1. дои : 10.17487/RFC5892 . РФК 5892 . Проверено 4 сентября 2019 г.
  13. ^ Фальтстрем, П., изд. (август 2010 г.). «Столяр нулевой ширины». Кодовые точки Unicode и интернационализированные доменные имена для приложений (IDNA). IETF . сек. А.2. дои : 10.17487/RFC5892 . РФК 5892 . Проверено 4 сентября 2019 г.
  14. ^ «Стандартное приложение Юникода № 44, База данных символов Юникода» .
  15. ^ abcdef Европейская ассоциация производителей компьютеров (1968-11-28). Графическое представление управляющих символов 7-битного набора кодированных символов ECMA для обмена информацией (PDF) . ЭКМА-17.
  16. ^ abcdefgh Маккензи, Чарльз Э. (1980). Кодированные наборы символов, история и развитие. Серия системного программирования (1-е изд.). Addison-Wesley Publishing Company, Inc., стр. 41, 47, 52, 102–103, 117, 119, 130, 132, 141, 148, 150–151, 212, 424. ISBN. 978-0-201-14460-4. LCCN  77-90165 . Проверено 22 мая 2016 г.[1]
  17. ^ «Американский стандартный код обмена информацией, ASA X3.4-1963» . Американская ассоциация стандартов (ASA). 17 июня 1963 г.
  18. ^ Никлаус Вирт, Программирование в Модуле-2
  19. ^ «Руководство пользователя Cambridge Z88» . 4.7 (4-е изд.). Кембридж Компьютер Лимитед . 2016 [1987]. Основные понятия - Клавиатура. Архивировано из оригинала 12 декабря 2016 г. Проверено 12 декабря 2016 г.
  20. ^ abc «Руководство пользователя Cambridge Z88». 4.0 (4-е изд.). Кембридж Компьютер Лимитед . 1987. Приложение D. Архивировано из оригинала 12 декабря 2016 г. Проверено 12 декабря 2016 г.
  21. ^ abc «Руководство пользователя Cambridge Z88». 4.7 (4-е изд.). Кембридж Компьютер Лимитед . 2015 [1987]. Приложение D. Архивировано из оригинала 12 декабря 2016 г. Проверено 12 декабря 2016 г.
  22. ^ Таблица Unicode U + 2800, образцы Брайля
  23. ^ Чунг, Джемин (30 марта 2017 г.). Предложение добавить информационную заметку к U+3164 HANGUL FILLER (PDF) . Консорциум Юникод . UTC L2/17-081.
  24. ^ Хангыль Джамо (PDF) . Консорциум Юникод . 2020-10-25.
  25. ^ "ibm-933_P110-1995" . Демонстрация ICU — Converter Explorer . Международные компоненты для Unicode .
  26. ^ «ibm-933_P110-1995 (ведущие байты 0E84)» . Демонстрация ICU — Converter Explorer . Международные компоненты для Unicode .
  27. ^ «Глава 6 — Системы письма и пунктуация» (PDF) . Стандарт Unicode 15.0, электронное издание. Консорциум Юникод . 13 сентября 2022 г. стр. 12–13 (267–268) . Проверено 23 декабря 2022 г. Пробелы фиксированной ширины (U+2000..U+200A) взяты из традиционной типографики (горячего вывода). Алгоритмический кернинг и выравнивание в компьютерной типографике не используют эти символы. Однако там, где они используются (например, при наборе математических формул), их ширина обычно задается шрифтом, и они обычно не расширяются при выравнивании. Исключением является тонкое пространство U+2009, которое иногда корректируется.
  28. ^ Использование различных типов тире проиллюстрировано, например, в Чикагском руководстве по стилю , §§ 6.80, 6.83–6.86.
  29. ^ http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1548.pdf Раздел 6.4, параграф 3.
  30. ^ Филдинг, Р.; и другие. (июнь 1999 г.), «2.2 Основные правила», Протокол передачи гипертекста — HTTP/1.1 , doi : 10.17487/RFC2616, RFC 2616. 
  31. ^ «3.3.3 Нормализация значений атрибутов» . Расширяемый язык разметки (XML) 1.0 (пятое издание) . Консорциум Всемирной паутины.
  32. ^ «9.1 Пробелы» . Спецификация W3CHTML 4.01 . Консорциум Всемирной паутины.

Внешние ссылки