В принципе, я определил несколько пользовательских глифов, которые я действительно хочу использовать, создав шрифт. Это символы, которые должны быть набраны точно так же, как набран интеграл computer modern
(но выглядеть так, как я хочу). Я используюЛуалатекстак что мой шрифт не должен быть установлен в системе для использования, я хочу просто поместить мой .ttf в мой проект tex. Я скачал компьютерные современные шрифты сздесьи изменил интегральные символы. Насколько я понимаю, у него разные файлы для разных стилей математики:
- cmsy10.ttf для стандартных меньших математических символов, таких как
$\textstyle\int$
(U+0073)? - cmex10.ttf для больших математических символов, таких как
$\displaystyle\int$
(U+005a), а также (U+0052), который мне кажется похожим$\textstyle\int$
. Почему оба?
Сложности:
- Как на самом деле включить шрифт и предоставить команды типа \myintegral для моего интегрального символа? Я не хочу использовать свой шрифт ни для чего другого, кроме предоставления этих команд. Он должен вести себяточнокак обычный интеграл и поэтому уважаем, если мы в displaystyle или нет. Я искал вдохновение в
fontmath.ltx
том, где
\DeclareMathSymbol{\intop}{\mathop}{largesymbols}{"52}
\DeclareRobustCommand\int{\intop\nolimits}
это определениекак-топохоже, соблюдает математический стиль (как?).
- Ограничительные рамки загруженных файлов кажутся неправильными, не так ли? Это неизмененный интеграл displaystyle из cmex10.ttf, открытый вшрифтфордж. Все поля в cmex.ttf такие же, поля в cmsy10.ttf такие же, как и ожидалось. (Интеграл отображения идетмногоза границу справа и все символы, похоже, имеют неправильную базовую линию?)
- Нужно ли мне создавать отдельный символ для каждого размера текста документа, как это, кажется, делает Computer Modern?
РЕДАКТИРОВАТЬ: Я продвинулся настолько, что смог показать свои символы и использовать их в математическом режиме. Однако у меня возникли проблемы с граничными полямиис ограничениямидаже в тех случаях, когда я использую стандартное определение!
Генерирующий код:
% !TEX program = lualatex
\documentclass[ngerman,10pt]{scrartcl}
\usepackage{fontspec}
%\usepackage{unicode-math}
\setlength{\fboxsep}{0pt}
%\usepackage{newcomputermodern}
% from https://tex.stackexchange.com/a/439983/294323
\newfontface{\mysymbolsfontface}{cmex10_mod.ttf}[
Path = ./, % Adjust the path to where the font is located
Extension = .ttf,
NFSSFamily=mysymbolsfontfamily %use some name for the font family
]
\DeclareSymbolFont{mysymbolsfont}{TU}{mysymbolsfontfamily}{m}{n}
\Umathchardef\displaymyint="1 \symmysymbolsfont "005A %"\sym" then symbolsfontname then glyph code. The "1 stands for mathoperator
\DeclareRobustCommand\myint{\mathchoice{\displaymyint\nolimits}
{\intop\nolimits}
{\intop\nolimits}
{\intop\nolimits}}
\begin{document}
Inline: \qquad\qquad\qquad \fbox{$\myint$} \quad \fbox{$\myint_\infty^\infty f(x)$}\\
Displaymode: \qquad\qquad\qquad \fbox{$\displaystyle\myint$} \quad \fbox{$\displaystyle\myint_\infty^\infty f(x)$}\\
Original Inline: \quad \fbox{$\int$} \quad \fbox{$\int_\infty^\infty f(x)$}\\
Original Displaymode: \quad \fbox{$\displaystyle\int$} \quad \fbox{$\displaystyle\int_\infty^\infty f(x)$}\\
\end{document}
Итак, остается ответить на следующие вопросы:
- Почему не установлены верные пределы в случае использования \intop? Должно быть как в оригинальном текс нет?
- Где я могу получить версию шрифта cmex, в которой поля расставлены правильно?
EDIT: Я решил разделить эту последнюю часть на более доступный вопрос, см.здесь. По сути, это закрыто.