yhmath 的 | 和其他( () 和 [] 和 {} 和 \/ 和 ...)的长度不兼容

yhmath 的 | 和其他( () 和 [] 和 {} 和 \/ 和 ...)的长度不兼容

下面的代码

\documentclass{article}
    \usepackage{yhmath}
\begin{document}
    \[
        \left(
            \rule{10pt}{10pt}
        \middle|
            \rule[-5pt]{10pt}{5pt}
        \right]
    \]
\end{document}

生产

左括号 vs 竖线 vs 右括号

看起来,该条 (明显) 比(和长]。为什么会发生这种情况?是否可以使每个分隔符的高度相同 (除了不使用 yhmath)?

答案1

你运气不好,只有yhmath,很抱歉。

可能为了节省更多符号的空间,字体设计师选择将可扩展垂直条的度量定义为

(CHARACTER O 14
   (CHARWD R 0.333334)
   (CHARDP R 0.580007)
   (VARCHAR
      (REP O 14)
      )
   )

这意味着基本字符(来自符号字体)永远不会满足分隔符的约束,因为它的高度为零,所以它会自我复制,从而得到一个超大的分隔符。

一切都消失了吗?不。您仍然可以使用标准largesymbols字体。因此,您可以将垂直条重置为标准。

仅有的yhmath

\documentclass{article}
\usepackage{amsmath}
\usepackage{yhmath}

\newcommand{\test}[1]{%
  \left(
    \vrule height #1pt width 0pt \mbox{#1pt}
  \middle|
  \right)
}

\begin{document}

\[
\test{7}\test{8}\test{9}\test{10}
\]

\end{document}

在此处输入图片描述

恢复默认垂直条

\documentclass{article}
\usepackage{amsmath}
\usepackage{yhmath}

\DeclareMathDelimiter{|}{\mathord}{symbols}{"6A}{largesymbols}{"0C}

\newcommand{\test}[1]{%
  \left(
    \vrule height #1pt width 0pt \mbox{#1pt}
  \middle|
  \right)
}

\begin{document}

\[
\test{7}\test{8}\test{9}\test{10}
\]

\end{document}

在此处输入图片描述

相关内容