不同数学字体的分隔符

不同数学字体的分隔符

您好,根据客户要求,我们在此使用 STIXMath-Regular 作为数学字体,在 STIXmath-Regular 字体中,括号上方与文本发生冲突,因此我们计划使用 STIXMathTwo 字体作为替代。请建议如何映射此字体的括号上方。

梅威瑟:

\documentclass{book}

\usepackage{xltxtra}
\usepackage{xunicode}
\usepackage{fontspec}
\defaultfontfeatures{Ligatures=TeX}
\usepackage{unicode-math}%
\usepackage{multirow}

\setmathfont{STIXMath-Regular}

\begin{document}
$\begin{array}{l}
\textrm{E}=\left \{\begin{array}{l@{}}
{\overbrace{{laafkj}}^{2}},\, {\overbrace{{11-31}}^{2}} {\overbrace{{1-3}}^{2}} {\overbrace{{1-3}}} {\overbrace{{R}}} {\overbrace{{RH}}^{2}} \end{array}\right \}\\
\end{array}$

\end{document}

在此处输入图片描述

答案1

简短回答:\setmathfont[range=\overbrace]{Stix Two Math}

更长的答案:真正的客户需求是 XITS Math,它具有 STIX Math Regular 的字形,但具有可用的数学表、脚本和其他 OpenType 功能。在unicode-mathv0.81 中,STIX Math Regular 甚至不再用作主要数学字体。您可以感谢 Khaled Hosny 提供的 XITS 和许多其他出色的字体。

我无法在\overbraceTeX Live 2018 上重现您的错误,但我遇到了另一个错误。(@egreg 可以在 TeX Live 2016 中重现。)如果您想替换过度括号,因为它与您的文本字体冲突,那可能是 XY 问题。无论如何,这是您要求的解决方案。\setmathfont[range=\overbrace]{Stix Two Math}如果您想使用单一数学字体,请删除该行。

我擅自将主文本字体更改为匹配的 STIX 系列,并\textrm在方程式内进行更改\symup,以便在数学字体中正确设置直立的数学符号。

最后,我删除了此 MWE 中未使用的所有包和一些不必要的括号。\array为了便于示例,我保留了嵌套环境,但这不是我编写该代码的方式。

\documentclass[varwidth, preview]{standalone}
\usepackage{unicode-math}

\setmainfont{STIX-Regular}[
  BoldFont=STIX-Bold,
  ItalicFont=STIX-Italic,
  BoldItalicFont=STIX-Bold Italic,
  Ligatures={Common, TeX}]
\defaultfontfeatures{Scale=MatchUppercase}

\setmathfont{XITS Math}
\setmathfont[range=\overbrace]{STIX Two Math}

\begin{document}

\normalfont{STIX Regular E}
{\fontspec{Latin Modern Roman}Latin Modern Roman E}

\( \begin{array}{l}
\symup{E}=\left\{ \begin{array}{l@{}}
  \overbrace{laafkj}^{2},\,
  \overbrace{11-31}^{2}
  \overbrace{1-3}^{2}
  \overbrace{1-3}
  \overbrace{R}
  \overbrace{RH}^{2}
  \end{array} \right\}
\end{array} \)

\end{document}

样本

相关内容