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) кириллица есть.

★★★★★

Ответ на: комментарий от Sphinx

У меня в .fonts лежит brill_italic_1.02_024.otf и brill_roman_1.02_024_0.otf,
в списке шрифтов видны обычный, курсив, полужирный и полужирный курсив.

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

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

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

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

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

Любопытно, вы думаете, что и Brill инструктирован подобным образом? Как это включить в fontspec? В мануале ничего не нашёл на этот счёт, но в нём же, есть жирное начертание.

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

Но разве fontspec сам с этим не справляется? Насколько помню, полужирное Inconsolata получалось само собой. Наверное потому, что XeTeX использует системные библиотеки для рендеринга шрифтов.

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

Лучше всего начать с мануала. Там глянуть опции FakeBold, AutoFakeBold, BoldFont. Я сам этот вопрос не изучал.

Не пойдёт — на это невозможно смотреть.

Но разве fontspec сам с этим не справляется? Насколько помню, полужирное Наверное потому, что XeTeX использует системные библиотеки для рендеринга шрифтов.

Нет, если нет в гарнитуре жирного начертания, то ничего сам он не делает — рисует нормальное.

Inconsolata получалось само собой.

Шрифт видимо на любителя, коим я не являюсь. Libaration Mono в с сравнении с ним, образец шрифтового дизайна.

Наверное потому, что XeTeX использует системные библиотеки для рендеринга шрифтов.

И это замечательно. Ну, мимо его, этот Brill, доделают если bold, subhead, display и caption — тогда можно будет работать :-), а все эти уловки с «ужирнением» вообще не ясно для какой цели могут служить.

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

Inconsolata получалось само собой.

Шрифт видимо на любителя, коим я не являюсь.

Я тоже не являюсь его поклонником, там нет даже кириллицы. Предпочитаю, конечно, Consolas. Единственное приемлемое применение Inconsolata - в вебе. У Consolas слишком низко расположена baseline и он смотрится «тяжелым» на фоне основного текста. Про Courier New и его аналог Liberation Mono я вообще молчу, шрифт разрабатывался для терминалов с низким разрешением и без сглаживания - на такое смотреть без слёз сегодня невозможно. Droid, DejaVu, Ubuntu смотрятся только на фоне своих же не-моно гарнитур, а делать на их основе весь дизайн - отсекать большую часть пользователей. Есть ли для веба другие приемлемые решения?

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

PT Serif, PT Sans и PT Mono?

А что в них такого особенного, кроме поддержки кириллицы? Мало того, что за пределами рунета они не распространены (в рунете, похоже, тоже), так еще и на любителя.

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

Ничего такого. Это просто единственные существующие на сегодня свободные шрифты с кириллицей, сделанные профессиональными коммерческими шрифтовиками именно с упором на кириллицу. Причём там есть абсолютно вся кириллица имеющая хождение в России и ориентировались они именно на WEB.

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

XeTeX --- i need help

Лучше всего начать с мануала. Там глянуть опции FakeBold, AutoFakeBold, BoldFont

все указания из мануала по TeXLive2012 по установке шрифтов выполнил

инфо-страницы смотрел — с TeXLive2012 установил XeTeX-notes.pdf, XeTeX-reference.pdf, fontspec.pdf, xetexmain.pdf, xetextt.pdf, xltxtra.pdf читал, всё что там видел давал googl-у пожевать --- много разных вариантов перепробовал из сети, а результат нулевой, скорее всего из-за выбора шрифтов (Gogol и TimesNewRoman прекрасно управляются примерами из сети и мануалов).

Помогите, пожалуйста разобраться.

работаю с CMU Serif:style=Roman в качестве основного и основного кириллического

какой именно из шрифтов cmunrm.otf или cmunrm.pfb вызывает XeTeX не знаю, скорее всего *.pfb --- не знаю важно ли это

XeTeX заточен под шрифты у которых все начертания в одном файле, а мне CMU только подходят, т.е.

мне нужно как-то суметь заставить шрифт у которого все начертания в разных файлах, проявлять эти РАЗНЫЕ начертания, а именно это и не получается сделать

СЛАНТ я сумел сделать с помощью фейков --- результат абсолютно неудовлетворительный т.к. пришлось растягивать текст и это заметно

сейчас пытаюсь осилить БОЛД --- работает только FakeBold(=1.2) и FakeStretch(=1.2), что тоже заметно растягивает буквы, делая результат близким к ужасу и в тоже время не давая привычной жирности; BoldFeatures={Weight=12} --- не работает --- специально брал чудовищное значение «12» для пробы

\usepackage{xltxtra} %% для спрощення: цей пакет автоматично завантажує fixltx2e, metalogo, xunicode, fontspec

т.е. fontspec у меня подгружен без опций

\setdefaultlanguage{ukrainian}
\setotherlanguage{russian}
\setotherlanguage{english}
\defaultfontfeatures{Scale=MatchLowercase, Mapping=tex-text, Ligatures={TeX, Common}, Contextuals=WordFinal}

дополнительных опций не задаю

\setmainfont{CMU Serif:style=Roman}
\setsansfont{CMU Sans Serif Demi Condensed:style=DemiCondensed} %не использую
\setmonofont{DejaVu Sans Mono} %не использую
\newfontfamily\cyrillicfont{CMU Serif:style=Roman}
{\fontspec[BoldFont={CMU Serif},BoldFeatures={Weight=2}]{CMU Serif} раз два три}

жирности нет

{\fontspec{CMU Serif:style=Bold}вже і зміни є!!!}

жирности нет

\bf{{\fontspec{Times New Roman}вже і зміни є!!!}}

Times New Roman жирненький без вопросов

\mbox{{\fontspec[FakeBold=1.2,BoldFeatures={Weight=12},FakeStretch=1.2,Color=161616]{CMU Serif:style=Roman}Наталія Леонідівна Заїм}}

а в данном случае фейк он и есть фейк --- ни рыба, ни мясо

буду благодарен за помощь

linecommander
()
18 июня 2014 г.

Всем привет.

Шрифты у меня замечательно загружаются таким способом на локальном компьютере:

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

Захотел расшарить код через http://sharelatex.com/ - он xelatex поддерживает, но там есть нюанс, а именно - в таком виде шрифты не подгружаются. В документации советуют вместо такой схемы подгружать из ttf (причём там пример с times new roman, мне бы хотелось computer modern unicode) http://www.sharelatex.com/learn/XeLaTeX

Пробую делать вот так (предварительно скопировав туда нужные ttf-файлы:

\setmainfont{cmunrm.ttf}
\setsansfont{cmunss.ttf}
\setmonofont{cmuntt.ttf}

Перестаёт работать выделение полужирным/курсивом. Вообще там шрифтов вроде как вариации в разных файлах... все эти команды \setmainfont и похожие в общем-то имеют нужные опции... но мне кажется как-то неправильным для каждого вида начертания указывать ttf-файл, это сколько же их тогда наберётся :(

Хотелось бы «автоматизировать», указав шрифт по имени, подсунув ему вместо стандартного /usr/share/fonts/ локальный каталог, например, ./fonts. Можно ли как-то это сделать? Чтобы он сам определил, где курсив, где полужирный и т.п.

Ладно бы хоть имена файлов «подсказывали», так нет же.. мне они ни о чём не говорят. :(

/usr/share/fonts/cm-unicode $ ls 
cmunbbx.ttf  cmunbmo.ttf  cmunbsr.ttf  cmunbxo.ttf  cmunit.ttf   cmunorm.ttf  cmunrm.ttf  cmunso.ttf    cmunst.ttf  cmunti.ttf  cmunui.ttf  encodings.dir
cmunbi.ttf   cmunbmr.ttf  cmunbtl.ttf  cmunbx.ttf   cmunobi.ttf  cmunoti.ttf  cmunsi.ttf  cmunssdc.ttf  cmunsx.ttf  cmuntt.ttf  cmunvi.ttf  fonts.dir
cmunbl.ttf   cmunbso.ttf  cmunbto.ttf  cmunci.ttf   cmunobx.ttf  cmunrb.ttf   cmunsl.ttf  cmunss.ttf    cmuntb.ttf  cmuntx.ttf  cmunvt.ttf  fonts.scale

P.S. xelatex нужен, так как без него не работает русский язык в minted :( в комментариях.

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

Ладно бы хоть имена файлов «подсказывали», так нет же.. мне они ни о чём не говорят. :(

Надо правильно у них об этом спрашивать:

$ cd /usr/share/texmf/fonts/opentype/public/cm-unicode/
$ fc-scan --format "%{file}\t %{family} %{style}\n" *.otf|sort -k3
cmunbbx.otf      CMU Bright Bold
cmunbxo.otf      CMU Bright BoldOblique
cmunbmo.otf      CMU Bright Oblique
cmunbmr.otf      CMU Bright Roman
cmunbsr.otf      CMU Bright SemiBold
cmunbso.otf      CMU Bright SemiBoldOblique
cmunci.otf       CMU Classical Serif Italic
cmunobx.otf      CMU Concrete Bold
cmunobi.otf      CMU Concrete BoldItalic
cmunoti.otf      CMU Concrete Italic
cmunorm.otf      CMU Concrete Roman
cmunsx.otf       CMU Sans Serif Bold
cmunso.otf       CMU Sans Serif BoldOblique
cmunssdc.otf     CMU Sans Serif Demi Condensed DemiCondensed
cmunss.otf       CMU Sans Serif Medium
cmunsi.otf       CMU Sans Serif Oblique
cmunbx.otf       CMU Serif Bold
cmunbi.otf       CMU Serif BoldItalic
cmunrb.otf       CMU Serif Extra BoldNonextended
cmunbl.otf       CMU Serif Extra BoldSlanted
cmunsl.otf       CMU Serif Extra RomanSlanted
cmunti.otf       CMU Serif Italic
cmunrm.otf       CMU Serif Roman
cmunui.otf       CMU Serif Upright Italic UprightItalic
cmuntb.otf       CMU Typewriter Text Bold
cmuntx.otf       CMU Typewriter Text BoldItalic
cmunit.otf       CMU Typewriter Text Italic
cmunbtl.otf      CMU Typewriter Text Light
cmunbto.otf      CMU Typewriter Text LightOblique
cmunst.otf       CMU Typewriter Text Oblique
cmuntt.otf       CMU Typewriter Text Regular
cmunvi.otf       CMU Typewriter Text Variable Width Italic
cmunvt.otf       CMU Typewriter Text Variable Width Medium
А если хочется более наглядно, то следует просмотреть каталог в человеческом ФМ: http://saveimg.ru/show-image.php?id=3c4f1ee27efc2e3ee024974a01e0276e Fonmatrix также предоставляет подробную информацию. Дальше, что с этим добром делать:
\RequirePackage{polyglossia}
\setromanfont[Path = /usr/share/texmf/fonts/opentype/public/cm-unicode/,
BoldFont = cmunbx.otf,
ItalicFont = cmunti.otf,
BoldItalicFont = cmunbi.otf]
{cmunrm.otf}

\setsansfont[Path = /usr/share/texmf/fonts/opentype/public/cm-unicode/,
BoldFont = cmunsx.otf,
ItalicFont = cmunsi.otf,
BoldItalicFont = cmunso.otf]
{cmunss.otf}

\setmonofont[Path = /usr/share/texmf/fonts/opentype/public/cm-unicode/,
BoldFont = cmuntb.otf,
ItalicFont = cmunit.otf,
BoldItalicFont = cmuntx.otf]
{cmuntt.otf}
Для большинства задач этого набора достаточно с головой. Если имеется необходимость в типографике, OpenType features и пр., то читайте fontspec [4-10], там это всё подробно расписано.

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

Оооо, премного благодарю, сколько не гуглил, как вытащить название шрифта из TTF, про такую команду не слышал. :)

BattleCoder ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.