Предисловие
Думаю, рассказывать что такое XeTeX, здесь не нужно.
На днях я написал маленький (вернее не очень большой) пост в русской википедии про XeTeX.
Решил это сделать, хотя бы потому, что в англовики был какой-то бред в русскоязычном (!) примере.
Ну и еще несколько менее важных для меня причин.
Дальше было долгое и нудное ознакомление, осложненное не особо большим количеством информации, но результат меня устраивает.
Предисловие
Для начала пришлось обновить свой MikTeX (именно его, сижу я под вистой — привычка, возможно и вредная)… и потом докачивать несколько пакетов (тут стоит отметить пакет polyglossia).
Работа
Давайте напишем коротенький tex-файл.
Для начала преамбула:
\usepackage[cm-default]{fontspec}
\usepackage{xltxtra} % \XeLaTeX macro
\defaultfontfeatures{Mapping=tex-text}
\usepackage{polyglossia}
\setdefaultlanguage{russian}
%% PostSctipt:
%\setmainfont{DejaVu Sans}
%\setmainfont{TimesNRomCyrMT}
%\setmainfont{Garamond}
%% не PostSctipt:
%\setmainfont{GaramondPremrPro} % --- бледновато
%\setmainfont{DejaVu Serif Condensed} % --- жирновато
\setmainfont{Constantia}
\setsansfont{Myriad Pro}
\setmonofont{Consolas}
Шрифты я использую виндовые.
Сойдут любые другие. Заметил, только, что с PostScript шрифтами долго строится таблица символов.
И выводится предупреждение, что для шрифта нет поддержки русского, но это только с
\usepackage{polyglossia}
\setdefaultlanguage{russian}
И проблема, видимо именно в polyglossia.
Отображаются они как и должны.
Замечу, что для оооочень фигурных шрифтов построение идет еще дольше.
Надо иметь ввиду, что не для всех шрифтов вообще определены русские символы.
Но таких меньшинство. Если шрифта, который вы указали в вашей система нет, XeTeX на долго задумается, а потом выдаст ошибку.
Обратите внимание, мы не указывает тут никаких.
\usepackage[utf8]{inputenc}
Если наш файл в utf8, ничего не нужно.
Для XeTeX это родная кодировка.
Нужно так же обратить внимание на Mapping=tex-text.
Без указания этого ключа, стандартная TeX-разметка будет восприниматься как простой текст
и символ --- будет восприниматься как 3 минуса, а не длинное тире.
После преамбулы идет простой код TeX-файла.
А в чём фичи??? Только в произвольных шрифтах?
Отчасти да. Я пока использую в XeTeX только ее. Но, есть и другая, как я сказал UTF8. Можно спокойно в одном файле иметь текст на разных языках. Если при этом использовать пакет polyglossia, то не обязательно их даже указывать. polyglossia сама найдет нужные описания. Об этом можно почитать документацию в СTAN.
Есть еще 1 момент, который меня весьма порадовал. Я ползуюсь pdfTeX.
Не хочу возиться с dvi, удобнее когда выходной файл сразу в pdf. Но к сожалению, pdfTeX плохо дружит с PSTricks, вернее никак. И я всегда использовал tikz, для графиков. Но в XeTeX есть полная поддержка PSTricks. Как я понял, на самом деле там используются свой пакет для PSTricks, который устанавливается при первой компиляции файла, содержащего pspicture. Удобно иметь и pspicture и pdf на выходе.
Шрифты
Вернемся к шрифтам. XeTeX позволяет их менять в середине документа.
Добавим в преамбулу
%% Фигурные
\newcommand{\Debby}{\fontspec{Debby}}
\newcommand{\AnnaC}{\fontspec{AnnaC}}
%% Смашные
\newcommand{\comic}{\fontspec{Comic Sans MS}}
\newcommand{\DoloresCyr}{\fontspec{DoloresCyr Black}}
\newcommand{\PopularScript}{\fontspec{PopularScript}}
\newcommand{\DecorC}{\fontspec{DecorC}}
\newcommand{\ZhikharevC}{\fontspec{ZhikharevC}}
%% Рубленные
\newcommand{\PragmaticaC}{\fontspec{PragmaticaC}}
\newcommand{\Mechanica}{\fontspec{Mechanica}}
\newcommand{\MechanicaInline}{\fontspec{MechanicaInline}} %% с обводкой, очень медленно компилится
%% С засечками
\newcommand{\DejaVuSerif}{\fontspec{DejaVu Serif}}
Дальше напишем в теле документа что-то вроде:
{ \Huge \ZhikharevC {Лекции по курсу}
}
{ \Huge \Mechanica {<<Псевдовычислительная \TeX ника>>}
}
{ \Large \DoloresCyr Не по программе.
}
Какой будет результат мы оставляем на откуп читателю.
Кое-что можно почитать в моей статье на википедии. И про polyglossia там же.
Если я тут будет возможность загружать картинки и я смогу поправить этот пост я покажу как это выглядит.
Примерно тоже самое (но не совсем то) можно найти по ссылке:
http://w-495-stud.ru/non-stud/polygraphic/XeTeX/XeTemplate-0.2.pdf
И исходник:
http://w-495-stud.ru/non-stud/polygraphic/XeTeX/XeTemplate-0.2.zip
Если будут ошибки, в том числе и в этом посте, пишите w@w-495.ru