LINUX.ORG.RU

Как сказать XeLaTeX, чтобы использовал шрифты Computer Modern?

 


3

3

Пока теорию не изучал и мои хилые попытки что-то сделать натыкаются на проблемы. Что-то вроде:

\documentclass[unicode, 12pt, a4paper, oneside, fleqn]{article}
\usepackage[cm-default]{fontspec}
\usepackage{polyglossia}
\setmainfont{Computer Modern}
\setsansfont{Computer Modern Sans Serif}
\setmonofont{Computer Modern Typewriter}

\defaultfontfeatures{Scale=MatchLowercase, Mapping=tex-text}  
\setdefaultlanguage[spelling=modern]{russian} 
Не работает, так как xelatex ругается на отсутствие кириллицы. В тоже время в системных шрифтах Computer Modern (смотрел через fontmatrix) кириллица есть.

★★★★★

Ответ на: комментарий от anonymous
aptitude search cm-super
i   cm-super                        - TeX font package (full version) with CM (E
i A cm-super-minimal                - TeX font package (minimal version) with CM
i   cm-super-x11                    - Make the cm-super fonts available to X11  

С CMU в дефолтной убунте не работает. Там требуется скачать otf шрифты. Идея была в том, чтобы использовать обычную Ubuntu без дополнений.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от Evgueni

Идея была в том, чтобы использовать обычную Ubuntu без дополнений.

Только вот CM-Super, что в LaTeX, не поддерживают Unicode-кодировку. У них поддержка кириллицы в кодировках T2A, T2B, T2C. По какой причине XeLaTeX должен с ними работать?

anonymous
()
Ответ на: комментарий от anonymous

http://lj.rossia.org/users/xinm/15481.html

Сделал так, как написано по ссылке скачал и установил (в .fonts) шрифты CMU.

Компилировать простейший пример, взятый со странички, отказывается. Выдаёт ошибку:

! TeX capacity exceeded, sorry [input stack size=5000].

Evgueni ★★★★★
() автор топика

\documentclass[ %%
%draft,         % Show bad things.
12pt,		% Font size.
a4paper,	% (Predefined, but who knows...)
pagesize,	% Writes the paper size at special areas in DVI or PDF file. Recommended for use.
parskip=half,	% Paragraphs: noindent + gap.
numbers=enddot, % Pointed numbers.
BCOR=5mm,	% Binding size correction.
]{scrartcl}	% COMA-scripts 'article' class analogue.


%% XeTeX
\usepackage{polyglossia}		% Babel replacement for XeTeX
  \setdefaultlanguage[spelling=modern]{russian}
  \setotherlanguage{english}
\usepackage{fontspec}			% Provides an automatic and unified interface for loading fonts.
\usepackage{xunicode}			% Generate Unicode chars from accented glyphs.
\usepackage{xltxtra}			% "Extras" for LaTeX users of XeTeX.
\usepackage{xecyr}			% Help with Russian.


%% Fonts
\defaultfontfeatures{Mapping=tex-text}
\setmainfont{CMU Serif}
\setsansfont{CMU Sans Serif}
\setmonofont{CMU Typewriter Text}

anonymous
()
Ответ на: комментарий от Evgueni

То есть решения нет?

Правильный вопрос не «есть ли решения» (в чём я не уверен), а «зачем»? Фишка XeTeX в использовании Unicode шрифтов, заложенных в них возможностей. Вот не знаю, насколько fontspec удачно работает с обычным CM-Super. Нужен обычный CM-Super - используй LaTeX, а XeTeX будет явным overhead. Причём большинство LaTeX пакетов могут в нём не завестись.

anonymous
()
Ответ на: комментарий от Evgueni

Сделал так, как написано по ссылке скачал и установил (в .fonts) шрифты CMU.

У меня всё так работало. Может fc-cache не выполнил?

anonymous
()

Я натыкался на TTF/OTF версию CM, называется cm-unicode. Может быть тебе поможет?

Macil ★★★★★
()
Ответ на: комментарий от anonymous

С шапкой выше всё завелось.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Причём большинство LaTeX пакетов могут в нём не завестись.

С какой стати? В чём там проблемы?

Evgueni ★★★★★
() автор топика

Это не тот Computer Modern (из fontspec cm-default надо убрать, в любом случае он его сам вставит в формулы, если не будут предопределены шрифты для математики), правильный CM который идёт c texlive, и находится в /usr/share/texmf/fonts/opentype/public/cm-unicode/ именуется: CMU Serif, CMU Sans Serif, CMU Typewriter Text и т.д. Но этот OTF Computer Modern как-то не очень, лучше использовать гарнитуру STIX, которая так же дружит с математикой.

anonymous
()
Ответ на: комментарий от Evgueni

А без xecyr нельзя?

\documentclass[a4paper]{article}
\usepackage[14pt]{extsizes}
\usepackage{polyglossia}
\setdefaultlanguage{russian}
\setotherlanguage{english}
\usepackage{fontspec}
\defaultfontfeatures{Scale=MatchLowercase,Mapping=tex-text}
\setmainfont{CMU Serif}
\setromanfont{CMU Serif}
\setsansfont{CMU Sans Serif}

\usepackage{xunicode}
\usepackage{xltxtra}
\usepackage{hyperref}

Похоже таки можно, заменив его на xunicode. Ставь, что тема решена.

anonymous
()
Ответ на: комментарий от Evgueni

С какой стати? В чём там проблемы?

Эээ, погорячился я. Только microtype не работает, хотя последняя альфа, по обещаниям, поддерживает и XeTeX, и LuaTeX.

anonymous
()
Ответ на: комментарий от anonymous

В Убунте что-то такой директории не нашёл. То есть Ubuntа не готова для XeLaTeX?

В TeX Live 2012 такой директории тоже не вижу.

STIX разве допилен?

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от Evgueni

xecyr решал какую-то конкретную проблему, сейчас уже не помню.

А зачем вручную скачивать CMU? В Gentoo есть media-fonts/cm-unicode.

anonymous
()
Ответ на: комментарий от anonymous

В убунте нет. Так что вопрос пока остаётся открытым на тему где-бы репозиторий подходящий найти.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от Evgueni

Похоже это таки баг убунты.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от Evgueni

microtype с кириллицей как бы вообще никогда не работал, так что это переживу как-нибудь.

Всё работает, не надо ля-ля. Для CM-Super в кодировке T2A вот рабочий код:

\usepackage{microtype}
\SetProtrusion
{
encoding = T2A,
}
{
« = {1000,     },
» = {    , 1000},
„ = {1000,     },
“ = {    , 1000},
( = {1000,     },
) = {    , 1000},
! = {    , 1000},
? = {    , 1000},
: = {    , 1000},
; = {    , 1000},
. = {    , 1000},
- = {    ,  500},
{,}= {    , 1000}
}
\DeclareMicrotypeSet{t2atext}{encoding=T2A}
\UseMicrotypeSet{t2atext}

anonymous
()
Ответ на: комментарий от Evgueni

В Убунте что-то такой директории не нашёл. То есть Ubuntа не готова для XeLaTeX?

Не знаю, у меня в SuSE в TeX Live 2011 практически всё есть, я только microtype с поддержкой XeLaTeX сам устанавливаю. Шрифты это ерунда, как уже многократно отмечалось — кидаются в /usr/share/fonts и делается fc-cache, или прописать к ним путь в /etc/fonts/fonts.conf и сделать fc-cache. А можно просто указывать полный путь в fontspec.

anonymous
()
Ответ на: комментарий от anonymous

Где-нибудь в документации microtype про это написано? А то, правда давно, я встречал там только просьбу о помощи на тему поддержки чего-то за пределами латиницы.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Шрифты это ерунда

Возвращаемся во времена Cyrillic-HOWTO, когда русификацией занимались только самые стойкие :) Это таки не ерунда :( Не получится документ просто передать без портянки на тему как его собрать.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от Evgueni

microtype с кириллицей как бы вообще никогда не работал, так что это переживу как-нибудь.

Последнии версии (во всяком случае с XeLaTeX) работают.

anonymous
()
Ответ на: комментарий от anonymous

Нашёл в TeX Live 2012 /usr/local/texlive/2012/texmf-dist/fonts/opentype/public/cm-unicode/

А вот в убунте дефолтный TeX Live 2009 и там этого нет.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Где-нибудь про microtype и кириллицу почитать можно? Да и вообще чуть подробнее что именно microtype делает? Про документацию знаю, но хотелось бы более популярного чтива что-ли.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от Evgueni

Возвращаемся во времена Cyrillic-HOWTO, когда русификацией занимались только самые стойкие :) Это таки не ерунда :( Не получится документ просто передать без портянки на тему как его собрать.

Дистрибутив был вами несколько неудачно выбран, он не для этих целей. В SuSE с TeX вообще никакой мороки не наблюдается, и шрифты все «из коробки».

anonymous
()
Ответ на: комментарий от Evgueni

Где-нибудь в документации microtype про это написано?

Не знаю, сам нашёл здесь. Самое главное, что код рабочий. Да и понятный.

anonymous
()
Ответ на: комментарий от anonymous

Аааа, это всего-навсего висячая пунктуация, а microtype предоставляет ещё и микротипографику, меняя межбуквенные расстояния для улучшения заполнения строк, что, на сколько я знаю, не работает для кириллицы. То есть это лишь часть возможностей microtype, причём далеко не самая интересная.

Evgueni ★★★★★
() автор топика
Последнее исправление: Evgueni (всего исправлений: 1)
Ответ на: комментарий от anonymous

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

Видимо, для целей, чтобы «просто работало». Там TeX Live 2009 - дебиановское наследие. Если всё только нужное, тогда гента. Хотя она скатывается в какое-то УГ.

anonymous
()
Ответ на: комментарий от Evgueni

То есть это лишь часть возможностей microtype, причём далеко не самая интересная.

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

anonymous
()
Ответ на: комментарий от anonymous

Я знал о ней раньше, просто это не «работа с кириллицей», а работа со «знаками пунктуации». То бишь я сам себя ввёл в заблуждение :) С кириллицей microtype таки не работает, но согласен, что полезная фича у него есть.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от anonymous

А по поводу улучшений я к сожалению законченный пользователь :(

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от Evgueni

С кириллицей microtype таки не работает

Может с XeLaTeX всё работает? Есть ли вообще нормальная документация по microtype?

anonymous
()
Ответ на: комментарий от anonymous

Если я правильно помню, то необходимо доделка microtype, иными словами там нужно таблицу разрядки для кириллицы заполнить. Хотя могу ошибаться — смотрел в документации к microtype.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от Evgueni

С кириллицей microtype таки не работает,

Смотрите файл microtype.cfg из пакета microtype, ссылку на который я дал выше.

anonymous
()
Ответ на: комментарий от anonymous

А что я должен там увидеть? Слова russian я там не нашёл.

Да, в документации сказано (если я правильно понял), что с XeLaTeX работает только висячая пунктуация, а микротипографика нет.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от Evgueni

Всё-таки pdflatex что-то с кириллицей сделать может. Спасибо похоже Карлу Карлсону (похоже он появлялся в списке рассылки CyrTeX). Надо пробовать — знать бы на что смотреть :)

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от Evgueni

А что я должен там увидеть? Слова russian я там не нашёл.

Кириллица — это не только «russian», ищите cyr.

anonymous
()
Ответ на: комментарий от Evgueni

А что я должен там увидеть? Слова russian я там не нашёл.

А зачем ты его там искал? Я тоже смотрел на encoding=T2A. Но конфиг без пояснений, всё равно долго и муторно под себя пилить придётся.

anonymous
()
Ответ на: комментарий от anonymous

А зачем ты его там искал?

Потому что там есть english, UKenglish, british, USenglish, american, french, francais, acadian, canadien и turkish

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Хорошо, тогда я по буквам: хуков для бабеля нет ни для одного кириллического языка, включая russian.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от anonymous

The packages on this site are not distributed inside TeX Live proper for one or another of the following reasons:

  • because it is not free software according to the FSF guidelines;
  • because it is an executable update;
  • because it is not available on CTAN;
  • because it is an intermediate release for testing.

Вопрос: microtype просто тестовый или там проблемы с лицензией?

Evgueni ★★★★★
() автор топика
Последнее исправление: Evgueni (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.