Unicode-math:如何获得良好的函数限制(尽管分隔符较短且下标基线较低)?

Unicode-math:如何获得良好的函数限制(尽管分隔符较短且下标基线较低)?

我使用函数限制符号,例如这里,但在切换到带有 unicode-math 的 XeLaTeX 后,我注意到它看起来有点奇怪。这是一个最小的工作示例

\documentclass{minimal}
\usepackage{unicode-math}
\begin{document}
\[  
\left. \frac{dy}{dx} \right\vert_{x=5} \quad 
\left. y \right\vert_{x=5}
\]
\end{document}

输出如下unicode数学:

在此处输入图片描述

下面是没有unicode数学:

在此处输入图片描述

显然,unicode-math 分隔符更短,下标的基线更低。

理想情况下,我希望垂直条的底部延伸到下标的基线,同时保持分隔符相对于其左侧表达式的自动缩放。

我怎样才能实现这个目标?

如果相关:我将使用 texgyrepagella-math 字体。

答案1

如果有人感兴趣的话,这是我自己想出来的办法,结合了回答:

\documentclass{article}

\newcommand{\restr}[2]{%
\mathchoice{%
\restriction{#1}{#2}{\displaystyle}%
}{%
\restriction{#1}{#2}{\textstyle}%
}{%
\restriction{#1}{#2}{\scriptstyle}%
}{%
\restriction{#1}{#2}{\scriptscriptstyle}%
}%
}

\newlength{\totbarheight}
\newlength{\bardepth}

\newcommand{\restriction}[3]{%
\settodepth{\bardepth}{\(#3 #1\)} %
\settoheight{\totbarheight}{\(#3 #1\)}%
\addtolength{\totbarheight}{\bardepth}%
\addtolength{\totbarheight}{1ex}% make it somewhat higher
\addtolength{\bardepth}{0.7ex}% make it extend somewhat further down
{#1 %
\rule[-\bardepth]{0ex}{\totbarheight} %invisible rule to force the next \vrule to be bigger
\mkern 2mu \vrule width 0.14ex \mkern 2.5mu}
{\addtolength{\bardepth}{-0.2ex}%make shorter to lift the baseline of the subscript
\addtolength{\totbarheight}{-0.2ex}
\rule[-\bardepth]{0ex}{\totbarheight}}_{#2}
}


\begin{document}

\(\restr{\frac{dy}{dx}}{x=2}  5\restr{y}{x=a}\)

\[\restr{\frac{dy}{dx}}{x=2} 5\restr{y}{x=a}\]

\end{document}

相关内容