unicode-math 包:默认将数学模式中的字母映射到正常 ASCII 范围

unicode-math 包:默认将数学模式中的字母映射到正常 ASCII 范围

使用 XeLaTeX,我使用 fontspec 和 unicode-math 生成 pdf,没有使用其他选项,在大多数情况下都能正常工作。但是在某些情况下(在本问题末尾指定),我希望数学模式中的(拉丁)字母直接映射到其正常的 ASCII 对应项,并且只需使用适当的字体(斜体、粗体等...)即可生成正确的视觉输出作为默认行为。

我可以通过特定命令实现这一点,例如 $\mathit{x}$ 可以使用以下代码正确执行此操作(我假设),但 $x$ 仍将源中的 ASCII 字母 x 映射到输出中的 U+1D465 代码点。

\documentclass{article}

\usepackage{fontspec}       
\usepackage{unicode-math}
\unimathsetup{
    mathrm=text,
    mathit=text,
    mathsf=text,
    mathbf=text,
    mathtt=text,
    math-style=ISO,
}

\begin{document}
$\mathit{x}$ <-- maps to ASCII x

$x$ <-- still maps to U+1D465 
\end{document}

简而言之:如何让 unicode-math 默认在输出中使用 ASCII 字母?

原因如下:

1:视觉外观总体统一,与某些字体一样,普通斜体和数学斜体字体彼此之间有显著差异。

2:(最重要的)我试图从一些文档片段生成 svg,方法是先生成 pdf(通过导入片段的模板),然后使用 inkscape 转换为 svg。到目前为止,这种方法产生了最好的结果,但 inkscape 无法正确呈现数学字母,而且我还担心网络兼容性。

相关内容