如何從自訂字體(例如積分)定義數學符號,尊重顯示樣式

如何從自訂字體(例如積分)定義數學符號,尊重顯示樣式

基本上我定義了一些自訂字形,我真的希望能夠透過製作字體來使用。它們是應該按照積分排版方式精確排版的符號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 中開啟的未更改的顯示樣式積分字體鍛造。 cmex.ttf 中的所有框框都是這樣,cmsy10.ttf 中的框與預期的一樣。 (顯示積分變成很多越過右側的邊界並且所有符號似乎都有不正確的基線?

這是 cmex10.ttf 中的顯示樣式積分

  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 字體的版本,其中框是正確的?

編輯:我決定將最後一部分分成一個更容易理解的問題,請參閱這裡。這基本上是關閉的。

相關內容