在另一个答案中(针对一个完全不同的问题) ,如果我使用 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 字体。但显然,\setmathtt
fontspec 包和 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