`\big\lVert` 太大

`\big\lVert` 太大

符号和 Stix Two 字体\big\lVert一样大\Big\lVert。这是字体本身的缺陷吗?有合适的解决方法吗?

MWE(在 lualatex 中运行):

\documentclass{minimal}
\usepackage{fontspec,unicode-math,color}
\setmathfont{STIX2Math.otf}
\begin{document}
\[
  \Bigg\Vert\;\bigg\Vert\;\Big\Vert\;\textcolor{red}{\big\Vert}\;\|
\]
\end{document}

结果

这里有一个可能相关的问题。不幸的是,我对查看 OTF 字体文件内部了解不够,无法检查原因是否相似。但同样的解决方法似乎不适用于此。我是否包含并不重要amsmath(我通常会包含)。

答案1

使用 lualatex,我认为您可以像这样修补字体。使用此补丁,\Vert 的行为类似于 |。请注意,这涉及很多猜测,而且我不知道内部结构有多稳定。

\documentclass{article}
\usepackage{amsmath}

\usepackage{luacode}

\begin{luacode}

local patch_stixmath = function (fontdata)
 if fontdata.psname == "STIXTwoMath"
 then
 fontdata.characters[8214]["vert_variants"][2]["end"]=
 fontdata.characters[8214]["vert_variants"][1]["end"]
 fontdata.characters[8214]["vert_variants"][2]["start"]=
 fontdata.characters[8214]["vert_variants"][1]["start"]
 end
end



luatexbase.add_to_callback
 (
  "luaotfload.patch_font",
  patch_stixmath,
  "change_stixmath"
 )
\end{luacode}

\usepackage{fontspec,unicode-math,color}
\setmathfont{STIX2Math.otf}
%\setmathfont{latinmodern-math.otf}
\usepackage{xfp,pgffor}
\begin{document}

\[
  \Bigg\Vert\;\bigg\Vert\;\Big\Vert\;\textcolor{red}{\big\Vert}\;\|
\]

\foreach\x in {1,2,...,300}
{$\left|\rule{0pt}{\fpeval{5+\x*0.1}pt}\fpeval{5+\x*0.1} \right\Vert $ }

\end{document}

在此处输入图片描述

相关内容