Я хочу изменить глиф для интеграла, а затем использовать его как \myint иногда вместо \int. По этой причине мне нужно выяснить, как загрузить глиф интеграла из какого-нибудь шрифта и придать ему типичный вид \int (используяЛуалатекс). Возьмем в качестве примера шрифт Latin Modern, загрузим его математическую часть с сайтаLM Математика скачать. В настоящее время я получаю это:
Обратите внимание на лишний пробел после интеграла и пределы, которые не на месте. Мой вопрос: как исправить эти две вещи?
Код, создавший вышеприведенное, следующий:
% !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}{latinmodern-math.otf}[
%Path = ./, % Adjust the path to where the font is located
Extension = .otf,
NFSSFamily=mysymbolsfontfamily %use some name for the font family
]
\DeclareSymbolFont{mysymbolsfont}{TU}{mysymbolsfontfamily}{m}{n}
\Umathchardef\displaymyint="1 \symmysymbolsfont "222B %"\sym" then symbolsfontname then glyph code. The "1 stands for mathoperator
\Umathchardef\inlinemyint="1 \symmysymbolsfont "222B
\DeclareRobustCommand\myint{\mathchoice
{\displaymyint\nolimits}
{\inlinemyint\nolimits}
{\inlinemyint\nolimits}
{\inlinemyint\nolimits}}
\begin{document}
Inline: \qquad\qquad\qquad \fbox{$\myint$} \quad \fbox{$\myint_\infty^\infty g(x)$}\\
Displaymode: \qquad\qquad\qquad \fbox{$\displaystyle\myint$} \quad \fbox{$\displaystyle\myint_\infty^\infty g(x)$}\\
Supposed Inline: \quad \fbox{$\int$} \quad \fbox{$\int_\infty^\infty g(x)$}\\
Supposed Displaymode: \quad \fbox{$\displaystyle\int$} \quad \fbox{$\displaystyle\int_\infty^\infty g(x)$}\\
\end{document}
решение1
При использовании шрифтов Unicode Math (например, latinmodern-math.otf
в качестве основного шрифта и texgyrepagella-math.otf
для альтернативных символов) все работает без проблем. Я попробовал это с помощью OpTeX:
\fontfam[lm] % latinmodern-math is loaded here
\addUmathfont \pagella {[texgyrepagella-math]]}{} {}{} {} % load font and register it at math-font family \pagella
\Umathchardef\myintop 1 \pagella `∫ \protected\def\myint{\myintop\nolimits} % \myint declaration
Test: $\int_a^b f(x), \myint_a^b f(x), \displaystyle \myint_a^b f(x) $
\bye
Я выбрал Pagella, чтобы вы могли видеть, что символ интеграла действительно использовался в макросе \myint
. Вы, конечно, можете использовать вместо него свой специальный шрифт.
OpTeX работает с LuaTeX. Вы упомянули, что используете LuaLaTeX, который тоже работает с LuaTeX. Это значит, что в LuaLaTeX тоже не должно быть проблем, но я не знаю LaTeX, так что не ждите от меня советов по LaTeX