Кодировки ввода и вывода | Aspose.TeX для Java
Если мы нажмем клавишу на клавиатуре, будет сгенерирован цифровой код, представляющий определенный символ. Входная кодировка сопоставляет символ с соответствующим кодом. Например, на немецкой клавиатуре символы с диакритическими знаками (например, символ «умлаут») могут сопоставляться с разными кодами в разных операционных системах.
Документ, хранящийся в компьютерном файле, содержит только коды символов, но информация о входной кодировке явно не включена. Поэтому, если вы переносите файл в другую среду, например, из США в Великобританию, вы можете обнаружить, что знаки доллара в вашем документе внезапно интерпретируются как символы решетки, когда вы просматриваете файл с помощью какой-либо программы, которая делает неверное предположение о входной кодировке.
Пакет inputenc, разработанный командой проекта LaTeX, был предназначен для решения проблем с кодированием ввода. Это позволяет пользователям явно указывать входную кодировку, используемую для документов или частей документов. Этот механизм позволяет безопасно переносить документы из одной установки LaTeX в другую, обеспечивая идентичные результаты печати.
Пакет inputenc интерпретирует коды символов в файле и сопоставляет их с внутренним представлением LaTeX, которое уникальным образом охватывает все символы, представленные в LaTeX. Во время дальнейшей обработки, например записи в какой-либо вспомогательный файл, LaTeX использует это внутреннее представление, избегая тем самым любой неправильной интерпретации.
Однако рано или поздно LaTeX должен связать эти внутренние представления символов с глифами (формами символов в определенных шрифтах), поэтому требуется другое сопоставление. В любом шрифте TeX содержится не более 256 глифов. Эти глифы адресуются не по имени, а по 8-битным числам, представляющим позиции глифов в шрифте. Это означает, что нам приходится отображать большое уникальное пространство имен в несколько маленьких, и эти позиции глифов могут сильно различаться, что неудивительно.
Таким образом, даже несмотря на то, что мы сохранили значение знака доллара из внешнего файла во внутренние компоненты LaTeX, мы все равно можем обнаружить неправильные формы на бумаге, если выберем для печати шрифт, который имеет неожиданный глиф в позиции, которая, как мы предполагали, была зарезервирована для доллара. знак. Одна из задач NFSS (Новая схема выбора шрифтов LaTeX) — убедиться, что либо любое внутреннее представление символов LaTeX отображается правильно, либо, если это невозможно по какой-либо причине, что пользователь получает правильное сообщение об ошибке.
Если шрифт содержит акцентированные символы в виде отдельных глифов, а не только базовые символы плюс диакритические знаки (из которых TeX внутренне создает акцентированные символы), то использование этих глифов предпочтительнее, поскольку они обычно имеют лучший внешний вид. Другая (техническая) причина использования этих составных глифов заключается в том, что примитив \accent
подавляет расстановку переносов.
В различных случаях команда типа \'e
(внутреннее представление LaTeX для символа ’e-acute’) иногда должна инициировать сложные действия, включающие примитив \accent
, а иногда она просто сообщает компоновщику абзаца, что она нужен глиф из определенного слота (позиции) в текущем шрифте.
Все это достигается с помощью концепции выходных кодировок, которые представляют собой сопоставления внутренних представлений символов LaTeX с соответствующими позициями глифов или с действиями по построению глифов, в зависимости от фактических глифов, доступных в шрифте, используемом для набора текста.
В следующих статьях обсуждается версия 2 NFSS, которая стала частью стандарта LaTeX в 1994 году.