我正在使用 Cambria Math 作为带有 unicode-math 的数学字体。
当我\sumint
使用 在文档中排版时,它看起来比 小得多\int
。我如何指示 unicode-math 选择\sumint
字形的更大变体?
例子:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Cambria}
\usepackage[math-style=TeX]{unicode-math}
\setmathfont{Cambria Math}
\begin{document}%
These two symbols don't have the same height:
\[
\sum\limits^b_a \sumint\limits^b_a
\]
\end{document}
答案1
修订的解决方案
在这里,我叠加了 Cambria Math 中实现目标所需的字符,并用\DeclareMathOperator*
其锁定到位:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{amsmath,fontspec}
\setmainfont{Cambria}
\usepackage[math-style=TeX]{unicode-math}
\setmathfont{Cambria Math}
\usepackage{stackengine}
\DeclareMathOperator*{\Sumint}{\ensurestackMath{\stackinset{c}{}{c}{}{\displaystyle\sum}{%
\stackanchor[0pt]{\symbol{"2320}}{\symbol{"2321}}}}}
\begin{document}%
\[
\symbol{"2320}\symbol{"2321}\sum
\]
\[
\int_0^x \sum_0^x \Sumint_0^x
\quad
\sumint_0^x \textstyle\sumint_0^x
\]
\end{document}
如果希望符号在垂直方向上更紧凑一些,可以将积分字干的堆叠间隙从[0pt]
如上图 MWE 所示更改为尽可能大,而[-2pt]
不会出现明显的不匹配。以下是比较结果:
原创解决方案
这不是一个理想的解决方案,因为缩放字形会改变字形的笔画粗细,但是该scalerel
包允许较小的\sumint
字形占据相同的垂直空间,在本例中为\displaystyle\int
。
最后两种情况表明了问题的本质……\textstyle
和\displaystyle
版本\sumint
产生相同(文本样式)的输出。
\documentclass{article}
\usepackage{scalerel}
\usepackage{fontspec}
\setmainfont{Cambria}
\usepackage[math-style=TeX]{unicode-math}
\setmathfont{Cambria Math}
\begin{document}%
\[
\int_0^x \sum_0^x \mathop{\scalerel*{\sumint}{\displaystyle\int}}\limits_0^x
\quad
\sumint_0^x \textstyle\sumint_0^x
\]
\end{document}