Latin Modern Math 真的是默认的数学模式字体吗?

Latin Modern Math 真的是默认的数学模式字体吗?

我正在使用 photoshop 制作图形,我需要与 LaTeX 数学模式相同的字体。此网站上的其他问题都指向“拉丁现代数学”作为数学模式字体。对于某些字母(例如希腊字母 psi),它们看起来非常正确,但有些显然不正确。例如,拉丁现代数学中的 x 是:

在此处输入图片描述

但在乳胶中,

在此处输入图片描述

我可以确认问题不仅仅出在斜体上。LMM 中的斜体 x 没有 mathmode x 那样的花式衬线。其他字母也明显不对。

数学模式的正确字体是什么?我在哪里可以找到它?我看到的唯一另一篇文章提到了这个网站上的计算机现代字体https://ctan.org/tex-archive/fonts/cm/mf但它们是 mf 格式;我只能找到一个不适用于这些文件的 mf 转换器。

答案1

这几乎已经偏离主题了。

如果我在文字处理器(如 TextEdit)上选择拉丁现代数学并输入,wxyz我会得到第一行。

如果我使用 Unicode 字符 U+1D464、U+1D465、U+1D466 和 U+1D464,我会得到底行。

在此处输入图片描述

将文本粘贴到格式检查器中,例如https://r12a.github.io/app-conversion/转换后,我得到

在此处输入图片描述

以下是对“数学 w”的描述:

在此处输入图片描述

答案2

要回答您的字面问题,只有当您加载时unicode-math。Latin Modern Math 是 Knuth 的 Computer Modern 的克隆,并且unicode-math在默认设置下产生几乎相同的输出(有几个注意事项:字母表\mathcal基于 Euler Calligraphic 而不是传统的 LaTeX)。旧式 TeX 文档将改用一些旧的 8 位甚至 7 位字体。有许多版本的 Computer Modern,略有不同。Knuth 的原始 TeX 字体是在 METAFONT 中指定的并编译为位图。现代 TeX 发行版默认会嵌入几种不同的 PostScript Type 1 字体之一。

Computer Modern 系列有两种转换为 OpenType 的方法,即 Latin Modern 和 Computer Modern Unicode,这些正是您在现代软件中想要使用的。您可能会发现Unicode 数学符号表有帮助。L 列显示了它们在拉丁现代数学中的呈现。

您在 pdffonts 中找到的大多数字体都可以直接转换为 Computer Modern Unicode 字体,正如您在表格中看到的。 例如,CMMI10 对应 CMU Serif Italic 或 Latin Modern Roman 10 Italic。

您遇到的问题是 Latin Modern Math 使用 Unicode 定义的映射。也就是说,它们将字母(例如 x、y 和 z)映射到字母表\mathrm,而所有其他数学字母表都位于数学字母数字符号或字母符号块中。您也可以替换斜体文本字体。如果您有嵌套的上标或下标,则需要在第ssty2 级加载 MATH OpenType 功能以及上标和下标上的选项以正确扩展它们。只有 Latin Modern Math 支持此功能。Latin Modern 文本字体通过光学尺寸功能支持 Computer Modern 系列的不同尺寸。

LaTeX 数学模式的默认行为是将大写希腊字母排版为直立(在希腊文 Unicode 块中),将小写希腊字母排版为倾斜(在数学字母数字符号块中),并在其他地方添加一些其他数学变体(例如\theta/ vartheta)作为符号。拉丁现代文本字体不包含希腊字母,但 CMU 衬线字体包含。如果您选择希腊文字作为 OpenType 功能,您将获得看起来像现代希腊字体的字母。要获得看起来像CMU Serif 中的$\theta$或的形状$\lambda$,请不要加载 OpenType 脚本。

如果您只想要轮廓和排版,一种选择可能是使用 渲染您的方程式\documentclass{standalone}并将其转换为可以嵌入到项目中的 SVG 图像。这样可以正确处理间距的所有细节。

答案3

经过进一步检查,似乎另一个答案不正确。好吧,也许字形是正确的,但我需要一整套字符,而且不知何故“h”缺失了,事实证明整个故事更加复杂。为了弄清楚使用了哪些字体,我在数学模式下分析了一个只包含一堆字母的 pdf 文档。示例结果(来自“pdffonts”cmd 行工具)是:

名称类型编码 emb sub uni 对象 ID

------------------------------------ ----------------- ---------------- --- --- --- ---------

FFIQJR+CMMI10 类型 1 内置 是 是 否 4 0

RLKJHN+CMR10 1 型 内置 是 是 否 5 0

CMMI10 就是我要找的字体。对于这种字体,正确的字符不是特殊的 Unicode 字符,而是常规的 abcde...xyz 等。CMMI 代表 Computer Modern Math Italic。

但是,添加更多字符后,会发现默认使用不止一种字体。我一直在测试,到目前为止,我的结果是

cmmi10对于 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,逗号,句号,><,小写希腊字母

cmr10对于大写希腊字母 0123456789 和 ?+=!()

cmsy10对于 -* \to \ll \gg \leq \geq \approx \dagger

更新:我使用 fontforge 程序将这些不同的字体组合成自定义字体,这样人们就可以像平常一样打字(或者使用希腊字母等的默认 Unicode 字符),它看起来就像数学模式。我没有复制每一个字符,但我包括了所有最有用的字符,然后还有一些。它是 cmmi10、cmr10 和 cmsy10 的组合。如果它对其他用户有帮助,你可以在这里下载: https://drive.google.com/file/d/1NyH1rAtnCgJSsmZS_PWmm3f3k-oBCRUx/view?usp=sharing

它所组成的单个字体可以在这里下载: https://ctan.org/tex-archive/fonts/cm/ps-type1/bakoma/ttf/?lang=en 然而,在看似随机的情况下,一个字形缺失,例如它有“大于或等于”,但没有“小于或等于”。到目前为止,我能够通过从不同的网站搜索相同的字体来找到缺失的字形。

相关内容