unicode-math 不打印 \mathit{\alpha}

unicode-math 不打印 \mathit{\alpha}

喂食

\documentclass{article}
\pagestyle{empty}
%%% The culprit lines start
\usepackage[math-style=ISO]{unicode-math}
\setmainfont[Ligatures=TeX]{TeX Gyre Termes}
\setsansfont{TeX Gyre Heros}[Scale=0.88]
\setmonofont{TeX Gyre Cursor}
\setmathfont[Ligatures=TeX]{TeX Gyre Termes Math}
%%% The culprit lines end.
\usepackage{etoolbox}
\usepackage{xparse}
\usepackage{xcolor}
\newcommand{\someColor}{blue}
%%%% \myMacro should print the argument in italics.  If the argument is moreover some nontrivial text (producing more than just a single symbol), it should be set up as text (with proper spacing and ligatures).
\ExplSyntaxOn
\NewDocumentCommand{\myMacro}{m}{
  \ifdefempty{\someColor}{\ifmmode\mathit{#1}\else\textit{#1}\fi}{\ifmmode\mathit{\color{\someColor}#1}\else\textit{\textcolor{\someColor}{#1}}\fi}
}
\ExplSyntaxOff
\begin{document}\noindent
\(\myMacro{a}\)\\
\(\myMacro{alpha}\)\\
\(\myMacro{\alpha}\)\\
\(\myMacro{Finite\_word\_with\_\alpha}\)\\
\myMacro{a}\\
\myMacro{alpha}\\
\myMacro{\(\alpha\)}\\
\myMacro{Finite\_word\_with\_\(\alpha\)}
\end{document}

导致xelatex

使用 unicode-math 和新字体输出

如您所见,\mathit{\alpha}不会按给定的方式打印(但如果删除了与 unicode-math 相关的罪魁祸首行,则会打印)。为什么?\alpha无论它是独立符号还是斜体数学标识符的一部分,如何将其变为斜体?

答案1

unicode-math与传统 TeX 相比,数学模式中处理希腊字母的方式存在根本区别。

在旧版 TeX 中,\alpha是一个“不变”的符号,因为它不受数学字母的影响。有了unicode-math它,它就不变了。在您的例子中,\alpha应该从文本斜体字体中获取,该字体没有对应的字形,您会得到

Missing character: There is no 

答案2

\alpha 是 U+1D6FC),\mathit 使用文本字体并且没有这个字形,如果你查看日志,你会发现一个缺少的字符消息:

Missing character: There is no 

答案3

默认情况下(与 的行为不同amsmath),unicode-math在命令的参数中使用文本字体\mathit。您可以在日志中找到以下错误信息

Missing character: There is no 

答案4

unicode-math包使用\mathit\mathrm等表示数学模式下的单词,使用\symit\symrm等表示数学符号。因此,如果您使用\mathit{ft},您可能会得到与 不同的字距调整\symit{ft},甚至是文本连字。当您有两个连续的F数学模式下的符号且无斜体校正:

\tracinglostchars=2 % Warn if a character is missing!
\documentclass{article}
\usepackage{unicode-math}
\pagestyle{empty}

\begin{document}

\begin{gather*}
\mathit{f f l \alpha} \\
\symit{f f l \alpha}
\end{gather*}

\end{document}

拉丁现代数学样本

\tracinglostchars=2命令将向您显示错误消息:

Missing character: There is no 

相关内容