![不同数学字体的分隔符](https://linux22.com/image/379520/%E4%B8%8D%E5%90%8C%E6%95%B0%E5%AD%A6%E5%AD%97%E4%BD%93%E7%9A%84%E5%88%86%E9%9A%94%E7%AC%A6.png)
您好,根据客户要求,我们在此使用 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-math
v0.81 中,STIX Math Regular 甚至不再用作主要数学字体。您可以感谢 Khaled Hosny 提供的 XITS 和许多其他出色的字体。
我无法在\overbrace
TeX 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}