
Грубо говоря, XeTeX (и LuaTeX) расширяет количество математических шрифтов с 16 до 256, но в настоящее время (texlive 2019) latex2e допускает только математические алфавиты в полном диапазоне 0-255 и ограничивает шрифты символов 0-15 (изменено вэто совершить, в 2015 году).
Как я, пользователь XeTeX, могу использовать все шрифты длиной 0–255 символов?
Сопутствующая информация:
Расширение до более чем 16 символьных шрифтов требует более существенных изменений, заменяя все использования
\mathchardef
\mathaccent
\radical
etc\U...
версиями.Дэвид Карлайл 12 марта 2015 г., изэтот комментарий
Возможно, мне следует изучить использование \U...
примитивов, описанных в texdoc xetex
разделе 2.3.
решение1
Проблема с использованием более 16 на самом деле не заключается в том, что вам нужно что-то менять в основном коде поддержки xetex, но если вы затем увеличите выделение \newfam до значения больше 16, любой «нормальный» пакет математических шрифтов не будет работать, поскольку все они \mathchardef
будут выдавать ошибки при использовании с номером семейства больше 15.
Однако если вы сохраните небольшое количество выделенных семей, вы можете взять «безопасную» семью, которая, как вы знаете, никогда не будет охвачена обычными распределениями, скажем, 100, и использовать ее следующим образом:
\documentclass{article}
% abc from dunhill in family 100
\font\cmdx =cmdunh10
\font\cmdvii =cmdunh10 at 7pt
\font\cmdv =cmdunh10 at 5pt
\textfont 100 = \cmdx
\scriptfont 100 = \cmdvii
\scriptscriptfont 100 = \cmdv
\Umathchardef \da 0 100 `a
\Umathchardef \db 0 100 `b
\Umathchardef \dc 0 100 `c
\begin{document}
$abc\da\db\dc$
\end{document}