与大小相关的 \big-、\Big- 等修饰符

与大小相关的 \big-、\Big- 等修饰符

我正在寻找一种使用\big及其朋友的方法,使它们适应所处的环境,例如\scriptstyle。在某种程度上,这已经涵盖了在这个问题中以及相应的回答,但结果并不如我所愿。

\documentclass{article}
\usepackage[english]{babel}
\usepackage{amsmath}

\newcommand{\tbo}{\tilde{b}+1}

\begin{document}

\[ \left(\tbo\right)^{\left(\tbo\right)^{\left(\tbo\right)}} \]
\vspace{-0.5cm}
\[ \bigl(\tbo\bigr)^{\bigl(\tbo\bigr)^{\bigl(\tbo\bigr)}} \]

% Bruno Le Floch's modification (see answer linked above)
\makeatletter
\let\bBigg@@\bBigg@
\renewcommand{\bBigg@}[2]{{%
  \mathchoice
    {\bBigg@@{#1}{#2}}%
    {\bBigg@@{#1}{#2}}%
    {\big@size=.7\big@size\bBigg@@{#1}{#2}}%
    {\big@size=.5\big@size\bBigg@@{#1}{#2}}}}%
\makeatother

\vspace{-0.5cm}
\[ \bigl(\tbo\bigr)^{\bigl(\tbo\bigr)^{\bigl(\tbo\bigr)}} \]

\end{document}

大的

修改后尺寸略有改善,但改善不大(尤其是在 中\scriptscriptstyle)。此外,小样式中的水平间距对我来说有点宽。我尝试对因素进行了一些调整0.70.5但这并没有改变任何东西(肉眼看来)。

我不知道这个要求是否过分,但我希望\big上标的行为也能尽可能地模仿普通文本的行为。

在理想情况下,解决方案还会考虑到 David Carlisle 对上述链接答案的评论,即防止缩放比例对于较小的字体尺寸来说太小。但是,我不知道如何读取 NFSS 数据,也不知道是否可以动态地做到这一点……

答案1

这里有一个替代方案:包\scaleleftright的宏。它将把第一个和第三个参数缩放到第二个参数的垂直范围(没有以数学轴为中心的scalerel要求)。\left \right

为了回应对 tohecz 的批评和 OP 的质询,可以通过添加符合字体大小并遵循数学轴的“支柱”来补偿不平衡的数学轴。在这里,我展示了一个结果来说明 tohecz 的观点,首先没有这样的支柱,然后有支柱。支柱是\vphantom当前数学大小的左括号,缩放到 130% 大小(如果需要括起来的是更大/更小的垂直范围,可以更改该大小)。括号关于数学轴对称,因此是。当前数学样式中的括号的大小通过使用的构造\mstrut导入到。\scalebox\ThisStyle{...\SavedStyle...}scalerel

\documentclass{article}
\usepackage[english]{babel}
\usepackage{amsmath}
\usepackage{scalerel}

\newcommand{\tbo}{\tilde{b}+1}

\begin{document}

\[ \scaleleftright{(}{\tbo}{)}^{{\scaleleftright{(}{a_j - 1}{)}}%
  ^{\scaleleftright{(}{\tbo}{)}}}
\]

\renewcommand{\tbo}{\tilde{b}+1\mstrut}
\newcommand\mstrut{\ThisStyle{\vphantom{\scalebox{1.3}{$\SavedStyle($}}}}

\[ \scaleleftright{(}{\tbo}{)}^{{\scaleleftright{(}{a_j - 1\mstrut}{)}}%
  ^{\scaleleftright{(}{\tbo}{)}}}
\]

\end{document}

在此处输入图片描述

相关内容