Замечания

Замечания

Замечания

-Пакет newtxmathпоставляется с поддержкой различных шрифтов, включая libertine, minionили garamondx. Лично мне очень нравится Garamond, но garamondxон не входит в установку по умолчанию. Поэтому я использую ebgaramondвместо него.

Для этого я просто скопировал часть, где настраиваются шрифты, из newtxmath.

Постановка задачи

Вот минимальныйНЕТрабочий пример того, что я пытался загрузить ebgaramondв качестве математического алфавита. ( unicode-mathили mathspecэто не вариант, он должен быть pdflatexсовместимым)

\documentclass{article}
\usepackage{ebgaramond}
\usepackage[cmintegrals,cmbraces]{newtxmath}
\DeclareSymbolFont{letters}{OML}{EBGaramond12-Italic-lf-t1--base}{m}{it}
\SetSymbolFont{letters}{bold}{OML}{EBGaramond12-Italic-lf-t1--base}{b}{it}
\DeclareFontSubstitution{OML}{EBGaramond12-Italic-lf-t1--base}{m}{it}
\begin{document}
ABCDEFGHIJKLMNOPQRSTUVWXYZ

abcdefghijklmnopqrstuvwxyz

1234567890

$ABCDEFGHIJKLMNOPQRSTUVWXYZ$

$abcdefghijklmnopqrstuvwxyz$

$1234567890$
\end{document}

Бонусный вопрос

Как я могу использоватьперекосглифы как mathcalалфавит?


ИЗМЕНИТЬ 2014-01-03

Как указано в комментарии cfr, вопрос сводится к следующему:Как создать OML-файлы для ebgaramond?(Бонусный вопрос остается в силе)

решение1

Обновлять

Самое простое решение — использоватьebgaramond-математика, новый пакет, доступный от CTAN.

ebgaramond-mathsтеперь включен в TeX Live. Если у вас установлен TeX Live 2014, вы должны получить пакет при обновлении. (Например, запустив tlmgr update --allв командной строке или используя предпочитаемую вами оболочку GUI.)

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

Оригинальный ответ

Настройка \mathcal относительно проста. Настройка поддержки OML не так проста.

Обеспечить поддержку OML для EBGaramond

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

Переменные

  • Создайте где-нибудь рабочий каталог, который я назову ${work}. Неважно где, главное, чтобы у вас было разрешение писать туда. (Не делайте этого как root, конечно.)

  • Я назову ${texmain}ваш основной, текущий каталог texmf. В моей системе это /usr/local/texlive/currentили /usr/local/texlive/2013.

Рабочая обстановка

Измените на ${work}. С этого момента я предполагаю, что все команды выполняются в этом каталоге и что все созданные файлы сохраняются здесь.

Скопируйте необходимые файлы в рабочий каталог или создайте символические ссылки, если это необходимо:

cp ${texmain}/texmf-dist/tex/fontinst/mathetx/oml.etx ${texmain}/texmf-dist/fonts/opentype/public/ebgaramond/EBGaramond12-Italic.otf ./

или

ln -s ${texmain}/texmf-dist/tex/fontinst/mathetx/oml.etx ${texmain}/texmf-dist/fonts/opentype/public/ebgaramond/EBGaramond12-Italic.otf ./

Создайте предварительный файл кодирования

Это не тот файл кодировки, о котором вы в конечном итоге сообщите TeX, но он ляжет в основу этого файла.

Сначала запустите fontinst в интерактивном режиме. (То есть просто введите «fontinst» в качестве команды.) В командной строке:

\input finstmsc.sty
\etxtoenc{oml}{oml-ebgaramond}
\bye

В результате будет создан файл oml-ebgaramond.enc, который вы можете слегка изменить перед отправкой в ​​otftotfm.

sed -i -e 's/TeXMathItalicEncoding/EBGaramondTeXMathItalicEncoding/g' -e 's/oldstyle//' oml-ebgaramond.enc

Сгенерировать шрифт TeX

ebgaramond уже предоставляет файлы type1, которые вам нужны, поэтому нет необходимости их повторно генерировать. Все, что требуется, это сгенерировать подходящий .tfm.

otftotfm -e oml-ebgaramond.enc EBGaramond12-Italic.otf > EBGaramond-Maths.map

Это создаст как файл .tfm, так и фрагмент файла .map, который TeX должен использовать для шрифта. По сути, .tfm — это просто шрифт с точки зрения TeX. (pdfTeX видит вещи немного по-другому — ему также нужен бит type1.)

Он также создаст новый файл кодировки с тем, что почти наверняка будет очень странным именем. Это файл кодировки, который будет использовать TeX, как указано во фрагменте файла .map. oml-ebgaramond.enc теперь можно удалить, если хотите, так как он больше не нужен.

Создайте определение шрифта для LaTeX

otftotfm не генерирует файлы определения шрифтов для LaTeX, насколько я могу судить, но файл в этом случае довольно прост. Создайте файл со следующим содержимым:

%Filename: OMLEBGaramond-Maths.fd
%Based on a file created using fontinst v1.928

%THIS FILE SHOULD BE PUT IN A TEX INPUTS DIRECTORY

\ProvidesFile{OMLEBGaramond-Maths.fd}
   [2014/01/03 font definitions for OML/EBGaramond-Maths.]

\DeclareFontFamily{OML}{EBGaramond-Maths}{}

\DeclareFontShape{OML}{EBGaramond-Maths}{m}{it}{
   <-> EBGaramond12-Italic--oml-ebgaramond
}{}

\DeclareFontShape{OML}{EBGaramond-Maths}{b}{it}{<->ssub * EBGaramond-Maths/m/it}{}
\DeclareFontShape{OML}{EBGaramond-Maths}{bx}{it}{<->ssub * EBGaramond-Maths/m/it}{}

\endinput

и сохраните его как OMLEBGaramond-Maths.fd. Это сообщает LaTeX, из чего состоит семейство шрифтов EBGaramond-Maths в кодировке OML. В частности, он сообщает, какие шрифты TeX принадлежат к этому семейству в этой кодировке и характеристики каждого из них. (В этом случае есть только один такой шрифт, который затем заменяет другие веса, поскольку в EBGaramond нет полужирного начертания, а OML заботится только о форме курсива.)

Создать файл пакета для LaTeX (необязательно)

Обычно проще загрузить пакет, чем повторять настройку шрифта каждый раз, когда вы хотите использовать определенную конфигурацию, поэтому я бы создал пакет LaTeX. Для этого создайте еще один файл со следующим содержимым:

\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{ebgaramond-maths}[2014/01/03 v1.0 ebgaramond-maths for use with EBGaramond]

\RequirePackage{ebgaramond}

% \pdfmapfile{+EBGaramond-Maths.map}

\DeclareSymbolFont{letters}   {OML}   {EBGaramond-Maths} {m} {it}
\DeclareSymbolFont{operators} {OT1}   {EBGaramond-LF}    {m} {n}

\SetSymbolFont{letters}   {bold}  {OML} {EBGaramond-Maths} {b}  {it}
\SetSymbolFont{operators} {bold}  {OT1} {EBGaramond-LF}    {bx} {n}

\DeclareFontSubstitution{OML}{EBGaramond-Maths}{m}{it}
\DeclareFontSubstitution{OT1}{EBGaramond-LF}{m}{n}

\SetMathAlphabet{\mathbf}   {normal}  {OT1} {EBGaramond-LF} {bx} {n}
\SetMathAlphabet{\mathbf}   {bold}    {OT1} {EBGaramond-LF} {bx} {n}
\SetMathAlphabet{\mathit}   {normal}  {OT1} {EBGaramond-LF} {m}  {it}
\SetMathAlphabet{\mathit}   {bold}    {OT1} {EBGaramond-LF} {bx} {it}

\DeclareMathAlphabet{\mathcal} {OT1} {EBGaramond-LF} {m} {sw}

\endinput

и сохраните его как ebgaramond-maths.sty.

  • Если вы не хотите просить людей устанавливать шрифты, раскомментируйте соответствующую строку в файле .sty.

Затем из ${work} можно проверить результат перед установкой шрифтов:

\documentclass{article}
\usepackage{ebgaramond}
\usepackage[cmintegrals,cmbraces]{newtxmath}
\pdfmapfile{+EBGaramond-Maths.map}
\usepackage{ebgaramond-maths}

\begin{document}
ABCDEFGHIJKLMNOPQRSTUVWXYZ

abcdefghijklmnopqrstuvwxyz

1234567890

$ABCDEFGHIJKLMNOPQRSTUVWXYZ$

$abcdefghijklmnopqrstuvwxyz$

$1234567890$

$\Gamma\varGamma\Delta\Lambda\varLambda\Xi\varXi\Pi\varPi\Sigma\varSigma\Upsilon\varUpsilon\Phi\varPhi\Psi\varPsi\Omega\varOmega$

$\alpha\beta\gamma\delta\epsilon\varepsilon\zeta\eta\theta\iota\kappa\lambda\mu\nu\xi\pi\rho\varrho\sigma\varsigma\tau\upsilon\phi\varphi\chi\psi\omega$

$\mathbf{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$

$\mathbf{abcdefghijklmnopqrstuvwxyz}$

$\mathbf{0123456789}$

$\mathit{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$

$\mathit{abcdefghijklmnopqrstuvwxyz}$

$\mathit{0123456789}$

$\mathrm{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$

$\mathrm{abcdefghijklmnopqrstuvwxyz}$

$\mathrm{0123456789}$

$\mathcal{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$

$\mathcal{abcdefghijklmnopqrstuvwxyz}$

$\mathcal{0123456789}$

\end{document}

производит:

введите описание изображения здесь

решение2

Еслитолькотогда нужен математический шрифт

\documentclass{article}
\usepackage[ebgaramond]{newtxmath}
\begin{document}
ABCDEFGHIJKLMNOPQRSTUVWXYZ

abcdefghijklmnopqrstuvwxyz

1234567890

$ABCDEFGHIJKLMNOPQRSTUVWXYZ$

$abcdefghijklmnopqrstuvwxyz$

$1234567890$
\end{document}

только математика

но если ebgaramondэто необходимо и в тексте, то

\documentclass{article}
\usepackage[ebgaramond]{newtx}
\begin{document}
ABCDEFGHIJKLMNOPQRSTUVWXYZ

abcdefghijklmnopqrstuvwxyz

1234567890

$ABCDEFGHIJKLMNOPQRSTUVWXYZ$

$abcdefghijklmnopqrstuvwxyz$

$1234567890$
\end{document}

математика и текст

Связанный контент