Работа в системе LaTeX


         

Русскоязычные беды - часть 2


В эти
256
символов уже помещались буквы большинства языков на латинской графической основе1), и для LaTeX'а была разработана соответствующая кодировка (T1), в которой уже все буквы полноценные. (Не торопитесь, впрочем, завидовать европейцам: не успели они порадоваться достигнутой стандартизации, как оказалось, что символ для европейской денежной единицы вставить в T1 некуда, и он, в отличие от более удачливого доллара, был добавлен в кодировку TS1).

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

Тем не менее мечты о стандартизации (" Чтобы использовать русские буквы, подключите такой-то стандартный стилевой пакет") пока остаются мечтами. Помимо субъективных причин (все привыкли к своим любимым вариантам русификации и не хотят переучиваться), есть и объективные проблемы.

Первая связана с невозможностью соединить в одном шрифте все желательные символы, поскольку шрифты более чем с 256 символами TeX (без серьезных переделок) не использует, а свободных мест в кодировке T1 нет. Более того, даже если отказаться от символов европейских языков, но хотеть разместить все известные буквы кириллического типа, то и тогда оказывается недостаточным 256 символов. Поэтому есть несколько стандартизованных кодировок, включающих русские и другие кириллические буквы (T2A, T2B,...), не говоря уже о других, не стандартизованных, вариантах.

Вторая связана с тем, что существует несколько способов представления русских букв в файлах. Наиболее распространены три: koi8-r (обычно она используется в UNIX-подобных системах), cp866 (DOS) и cp1251 (Windows). Поэтому само понятие совместимости становится спорным: если DOS-пользователь приносит своему Windows-собрату дискету с файлом в кодировке cp866, должен ли этот файл обрабатываться LaTeX'ом в системе Windows без дополнительного перекодирования или после перекодирования в cp1251? Должна ли одна и та же программа обрабатывать тексты в разных кодировках (а может, даже и тексты, разные части которых записаны в разных кодировках)? Этого можно достичь, применяя dirty tricks(сделав русские буквы "активными символами" — читатели книги [2] нас поймут) — но тогда нельзя использовать русские буквы в именах команд.И т.д. и т.п.




Содержание  Назад  Вперед