结合 unicode-math 字体:\underbrace 的问题

结合 unicode-math 字体:\underbrace 的问题

不久前,我改用 XeLaTeX 和 unicode-math。我真的很喜欢将不同字体组合在一起以显示数学符号的功能。但现在,我在将命令\underbrace与不同字体的内容组合时遇到了麻烦。我实际上使用 Asana 作为我的主要数学字体,但不喜欢它的字体\underbrace,因为它们太宽,并且与内容之间有太多空间。因此,我想使用其他字体中的一些字体,这样可以得到一些图形输出:

\documentclass[]{scrartcl}

\usepackage{amsmath}

\usepackage{polyglossia}
\setmainlanguage[]{english}
\setotherlanguage[spelling=new,babelshorthands=true]{german}

\usepackage{unicode-math}
  \setmathfont{Asana-Math.otf}

\begin{document}
  Asana math Blubb
  \[
    \underbrace{1} \quad \underbrace{1+1} \quad \underbrace{1+1+1} \quad \underbrace{1+1+1+1} \quad \underbrace{1+1+1+1+1}
  \]
  \setmathfont[]{xits-math.otf}
  XITS math
  \[
    \underbrace{1} \quad \underbrace{1+1} \quad \underbrace{1+1+1} \quad \underbrace{1+1+1+1} \quad \underbrace{1+1+1+1+1}
  \]
  \setmathfont[]{Cambria Math}
  Cambria Math
  \[
    \underbrace{1} \quad \underbrace{1+1} \quad \underbrace{1+1+1} \quad \underbrace{1+1+1+1} \quad \underbrace{1+1+1+1+1}
  \]
  \setmathfont[]{latinmodern-math.otf}
  Latin modern
  \[
    \underbrace{1} \quad \underbrace{1+1} \quad \underbrace{1+1+1} \quad \underbrace{1+1+1+1} \quad \underbrace{1+1+1+1+1}
  \]
  \setmathfont[]{texgyrepagella-math.otf}
  Neo Euler
  \[
    \underbrace{1} \quad \underbrace{1+1} \quad \underbrace{1+1+1} \quad \underbrace{1+1+1+1} \quad \underbrace{1+1+1+1+1}
  \]
  Asana as math font, change font for underbrace only:
  \setmathfont[]{Asana-Math.otf}
  \[
    \underbrace{1} \quad \underbrace{1+1} \quad \underbrace{1+1+1} \quad \underbrace{1+1+1+1} \quad \underbrace{1+1+1+1+1}
  \]
  \setmathfont[range=\mathunder]{xits-math.otf}
  XITS math
  \[
    \underbrace{1} \quad \underbrace{1+1} \quad \underbrace{1+1+1} \quad \underbrace{1+1+1+1} \quad \underbrace{1+1+1+1+1}
  \]
  \setmathfont[range=\mathunder]{Cambria Math}
  Cambria Math
  \[
    \underbrace{1} \quad \underbrace{1+1} \quad \underbrace{1+1+1} \quad \underbrace{1+1+1+1} \quad \underbrace{1+1+1+1+1}
  \]
  \setmathfont[range=\mathunder]{latinmodern-math.otf}
  Latin modern
  \[
    \underbrace{1} \quad \underbrace{1+1} \quad \underbrace{1+1+1} \quad \underbrace{1+1+1+1} \quad \underbrace{1+1+1+1+1}
  \]
  \setmathfont[range=\mathunder]{texgyrepagella-math.otf}
  Neo Euler
  \[
    \underbrace{1} \quad \underbrace{1+1} \quad \underbrace{1+1+1} \quad \underbrace{1+1+1+1} \quad \underbrace{1+1+1+1+1}
  \]
\end{document}

有没有什么解决方法?或者说,组合不同的数学字体通常不是一个好主意?

我一般不太确定是否要继续使用 unicode-math,因为编译速度会变慢,例如 XITS 字体有时间距太窄(使用 XeTeX,版本 3.1415926-2.4-0.9998,MiKTeX 2.9)

注解

根据第一条评论,我刚刚尝试了,TeX Gyre Pagella Math这似乎也是一种不错的字体,其下括号比 Asana-math 更好。但这让我想到了 unicode-math 与 XeLaTeX 的另一种行为,我之前已经注意到了,但忘记了。如果我运行以下代码:

\documentclass{article}

\usepackage{amsmath}
\usepackage{unicode-math}
\setmathfont{texgyrepagella-math.otf}


\begin{document}
Test.
\begin{align*}
  \frac{1}{x^2} \quad \underbrace{1+1+1+1+1}_F \underbrace{1+1}_F \underbrace{i}_F
\end{align*}
\end{document}

在此处输入图片描述

一些不直接影响数学环境的微小变化可以改变这种行为:

\documentclass{article}

\usepackage{amsmath}
\usepackage{unicode-math}
\setmathfont{texgyrepagella-math.otf}


\begin{document}
\begin{align*}
  \frac{1}{x^2} \quad \underbrace{1+1+1+1+1}_F \underbrace{1+1}_F \underbrace{i}_F
\end{align*}
Some text.
\end{document}

在此处输入图片描述

我曾经在做 beamer 演示时遇到过类似的行为(如果我没记错的话,使用的是 Asana-math),其中 TeX 代码中任何地方的更改都可能以显示的方式影响括号。我认为这可能取决于使用 beamer 的特殊情况,但显然跳跃式下括号随时都可能出现。\underbrace以前有其他人见过该命令的这种行为吗?

相关内容