如何根据自定义字体定义数学符号,例如积分,尊重显示样式

如何根据自定义字体定义数学符号,例如积分,尊重显示样式

基本上,我通过制作字体定义了一些我真正想要使用的自定义字形。它们是应该按照积分的排版方式排版的符号computer modern(但看起来像我想要的)。我使用路拉泰克斯为了使用我的字体,无需在系统上安装,我只想将我的 .ttf 放入我的 tex 项目中。我从下载了计算机现代字体这里并修改了积分符号。据我所知,它针对不同的数学样式有不同的文件:

  1. cmsy10.ttf 是否为标准较小的数学符号,例如$\textstyle\int$(U+0073)?
  2. cmex10.ttf 适用于大型数学符号,例如$\displaystyle\int$(U+005a) 以及 (U+0052),在我看来它们像$\textstyle\int$。为什么两者都是?

困难:

  1. 如何实际包含字体并为我的积分符号提供 \myintegral 之类的命令?除了提供这些命令之外,我不想将字体用于任何其他用途。它应该表现确切地就像通常的积分一样,因此要尊重我们是否采用显示风格。我寻找灵感的fontmath.ltx地方
\DeclareMathSymbol{\intop}{\mathop}{largesymbols}{"52}
\DeclareRobustCommand\int{\intop\nolimits}

这个定义不知何故似乎尊重数学风格(如何?)。

  1. 下载文件的边界框好像不对吧?这是在 cmex10.ttf 中打开的未改变的 displaystyle 积分字体。cmex.ttf 中的所有框都是这样的,cmsy10.ttf 中的框与预期一致。(显示积分为很多越过右侧边界并且所有符号似乎都有不正确的基线?)

这是来自 cmex10.ttf 的 displaystyle 积分

  1. 我是否必须像现代计算机那样,为每种文档文本大小创建一个单独的符号?

编辑: 我已经能够让我的符号在数学模式下显示和使用。但是我在边界框方面​​遇到了问题有限制即使在我使用标准清晰度的情况下当前结果

生成代码为:

% !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}

因此,剩下需要回答的问题是:

  1. 为什么在使用 \intop 的情况下限制不正确?应该像原始 tex 那样吗?
  2. 在哪里可以获得 cmex 字体的版本,其中的框是正确的?

编辑:我决定将最后一部分拆分成一个更容易理解的问题,请参阅这里。这基本就结束了。

相关内容