LuaLaTeX:\math...(\mathtt、\mathcal、\mathfrak)与\sym...(\symtt、\symcal、\symfrak)命令和设置不同的字体

LuaLaTeX:\math...(\mathtt、\mathcal、\mathfrak)与\sym...(\symtt、\symcal、\symfrak)命令和设置不同的字体

在另一个答案中(针对一个完全不同的问题) ,如果我使用 LuaLaTeX 和 unicode-math,我被建议使用 -commands\sym...在数学模式下更改字体,而不是传统的-font 命令。\math...

问题 1:为什么?我尝试阅读 fontspec 文档,但没有明白要点。特别是,我想知道什么时候应该使用其中一种或另一种替代方案?我相信传统的\math...-font 命令可能存在有效的用例。否则,这些命令可能已被重新定义为等同于新的\sym...-commands。

我在我的项目中使用了 Libertinus,并重新定义了一些字体,因为我不喜欢 Libertinus 包的默认选择。然而,我发现了一些奇怪的现象。

除了纯粹的 Libertinus 包之外没有其他东西的 MWE:

\documentclass[a4paper]{article}

\usepackage{libertinus}

\begin{document}
\begin{tabular}{lcc}\hline
                  &  \verb#\math...#      &  \verb#\sym...#      \\\hline
\verb#...frak#    &  $\mathfrak{F}$       &  $\symfrak{F}$       \\
\verb#...cal#     &  $\mathcal{C}$        &  $\symcal{C}$        \\
\verb#...tt#      &  $\mathtt{Teletype}$  &  $\symtt{Teletype}$  \\\hline
\end{tabular}
\end{document}

仅限自由人

问题2:两个 fraktur 命令 ( \mathfrak, \symfrak) 似乎根本没有改变字体。为什么?哪里出了问题?

问题 3:\math...fraktur 和 calligraphic 字体在-variant 和-variant之间似乎没有区别\sym...。这在某种程度上是意料之中的。但 oldstyle\mathtt似乎没有选择电传打字机字体。也许它是等宽的(很难说),但它仍然有衬线。为什么?而且它显然不同于 -font \symtt,我称其为真正的电传打字机字体。为什么\mathtt\symtt不同?

我尝试选择不同的 fraktur、calligraphic 和 teletype 字体。请参阅此 MWE:

\documentclass[a4paper]{article}

\usepackage{libertinus}
\setmonofont{Inconsolatazi4-Regular.otf}[Scale=MatchLowercase]
\setmathtt{Inconsolatazi4-Regular.otf}[Scale=MatchLowercase]
\usepackage[cal=pxtx,frak=pxtx]{mathalfa}

\begin{document}
\begin{tabular}{lcc}\hline
                  &  \verb#\math...#      &  \verb#\sym...#      \\\hline
\verb#...frak#    &  $\mathfrak{F}$       &  $\symfrak{F}$       \\
\verb#...cal#     &  $\mathcal{C}$        &  $\symcal{C}$        \\
\verb#...tt#      &  $\mathtt{Teletype}$  &  $\symtt{Teletype}$  \\\hline
\end{tabular}
\end{document}

更改字体

字体符合我的要求,但前提是使用老式的\math...-commands。此外,fraktur 字体是真正的 fraktur 字体。但显然,\setmathttfontspec 包和 mathaplpha 包中的 -command 只会影响数学模式下字体选择的传统命令。

问题 4:如果我应该使用新的\sym...命令(无论出于何种原因),如何\sym...根据我的需要更改命令的字体?

答案1

回答问题 1:所有(或至少大多数) \mathXX 内部都是相同的,它们只是看起来不同,因为它们来自不同的字体。sym-variants 是具有不同 unicode 代码点的不同符号。如果您尝试从 pdf 中复制和粘贴,就会看到差异。

\documentclass{article}
\usepackage{unicode-math}
\begin{document}
$\mathrm{a}\mathtt{a}\mathsf{a}\mathbf{a}$

$\symrm{a}\symtt{a}\symsf{a}\symbf{a}$
\end{document}

复制并粘贴如下:

aaaa
a

相关内容