方程式的嵌套注释

方程式的嵌套注释

我想知道如何对方程式做出嵌套注释(见图)。

诚挚问候 SL

嵌套注释

答案1

改编自我的回答如何在数学模式中链接两个术语,不过我必须做出一些改变。首先,当标签比下部材料宽时,您帮助我发现了一个错误(我已修复)。但此外,我必须引入一个新的维度。

编辑以改进语法,但基本宏是\ubar{left term}{middle stuff}{right term}{label}。为了嵌套它们,我现在提供\addlevel\subtractlevel

要更改嵌套级别(括号深度),请在调用之前先调用\addlevel(可以多次执行)。然后,在中间部分,您可以调用\subtractlevel以减少括号深度。在这两个宏中,我仅调整支柱高度。

但是,如果您希望调整\addlevel\subtractlevel改变任何尺寸,您可以使用以下方法:

\rldp 水平线的垂直下移

\rlht数学下方垂直支柱的高度

\rlwd规则宽度,以及

\rlstub通向底文的底部(中心)规则的高度

\documentclass{article}
\usepackage{stackengine,graphicx,amsmath}
\stackMath
\newlength\rldp
\rldp1.3ex
\newlength\rlht
\rlht.8ex
\newlength\rlstub
\rlstub.8ex
\newlength\rlwd
\rlwd.8pt
\setstackgap{L}{\rldp}
\def\uvbarR#1{%
  \def\stackalignment{r}\def\stacktype{S}\stackunder[-\rlwd]{%
    \def\stackalignment{c}\def\stacktype{L}\stackunder{#1}{\rule{\rlwd}{\rlht}}%
  }{\setbox0\hbox{$#1$}\rule{.5\wd0}{\rlwd}}%
}
\def\uvbarL#1{%
  \def\stackalignment{l}\def\stacktype{S}\stackunder[-\rlwd]{%
    \def\stackalignment{c}\def\stacktype{L}\stackunder{#1}{\rule{\rlwd}{\rlht}}%
  }{\setbox0\hbox{$#1$}\rule{.5\wd0}{\rlwd}}%
}
\newlength\tmplen
\def\uvbar#1#2{%
  \def\stacktype{S}\def\useanchorwidth{T}\def\stackalignment{c}\stackunder[0pt]{%
    \def\stacktype{L}\setbox0\hbox{${}#1{}$}%
    \stackunder[\rldp]{{}#1{}}{\rule{\wd0}{\rlwd}}%
  }{\def\stacktype{S}\stackunder[1pt]{\rule{\rlwd}{\rlstub}}{\scriptscriptstyle#2}}%
}
\newcommand\ubar[4]{\uvbarR{#1}\uvbar{#2}{#4}\uvbarL{#3}}
\newcommand\addlevel[1][.9\baselineskip]{%
  \addtolength\rlht{#1}%
  \addtolength\rldp{#1}%
}
\newcommand\subtractlevel[1][.9\baselineskip]{%
  \addtolength\rlht{-#1}%
  \addtolength\rldp{-#1}%
}

\begin{document}
\[\addlevel
a\ubar{b}
{
  \subtractlevel
  \ubar{}{c}{}{\scalebox{.3}{inner}}
  d
}
{e}{\text{outer}}
f + ghick = lmn\]

\[\addlevel\addlevel\ubar
{}
{\subtractlevel\subtractlevel \ubar{a}{^2 + b}{^2}
  {\text{sides}} = \addlevel \ubar{}{c^2}{}{\text{\makebox[3ex][r]{hypotenuse}}}}
{\,\,}
{\text{The Pythagorean Theorem}}\]
\end{document}

在此处输入图片描述

相关内容