|
像 $\underbrace{f(f(\cdots f(x)\cdots))}_{n\text{个}f}$(代码是 \underbrace{f(f(\cdots f(x)\cdots))}_{n\text{个}f})这样的式子,刚才羊羊羊羊说想让下括号只括到最后一个 f 的位置,这不难,只要更改一下的位置,改成 \underbrace{f(f(\cdots f}_{n\text{个}f}(x)\cdots)) 就行,效果:
\[\underbrace{f(f(\cdots f}_{n\text{个}f}(x)\cdots))\]
但是问题来了,如果最里面的式子是高个子,括号自然也要变高,然而,如果你想用 \left( \right) 来让括号自动变大的话,则会出问题。
比如代码 \underbrace{f\left(f\left(\cdots f}_{n\text{个}f}\left(\frac12x\right)\cdots\right)\right) 结果:
\[\underbrace{f\left(f\left(\cdots f}_{n\text{个}f}\left(\frac12x\right)\cdots\right)\right)\]
报错了,这是因为 \left \right 要成对出现构成一个组,不能被切开,那怎么办?
笨方法可以使用 \Big 或 \bigg 之类的有固定大小的括号代替,比如 \underbrace{f\biggl(f\biggl(\cdots f}_{n\text{个}f}\biggl(\frac12x\biggr)\cdots\biggr)\biggr) 结果:
\[ \underbrace{f\biggl(f\biggl(\cdots f}_{n\text{个}f}\biggl(\frac12x\biggr)\cdots\biggr)\biggr) \]
但这种方式你得知道 \Big、\bigg 等等它们分别有多大,才能适应不同的式子,而且一但最里面的式子发生变化,可能又要改,不是很方便。
要想省事点还是得用回 \left \right,但是得变一下,写起来代码会比较长,不过没关系,别忘了 latex 的自定义命令功能,所以我们只要慢慢设计好了,以后就一个命令搞定,这就是 latex 方便的地方。
\newcommand\died[3]{{\underbrace{
{#1\left(#1\left(\cdots\vphantom{#2}\right.\right.}#1}_{#3}}
{\left.\left.\left(#2\right)\cdots\right)\right)}}
具体细节我就懒得解释了,用法是 \died{函数名}{最里面的式子}{下括号下的说明}
\(\newcommand\died[3]{{\underbrace{
{#1\left(#1\left(\cdots\vphantom{#2}\right.\right.}#1}_{#3}}
{\left.\left.\left(#2\right)\cdots\right)\right)}}\)
例:
\died fx{n\text{个}f}
\died g{\frac12x}{m\text{层}}
\died h{\sum_{i=1}^nx_i}{p\text{次}}
\died F{\frac{\dfrac12}{\dfrac12}}{q\text{遍}}
分别显示
\begin{gather*}
\died fx{n\text{个}f}\\
\died g{\frac12x}{m\text{层}}\\
\died h{\sum_{i=1}^nx_i}{p\text{次}}\\
\died F{\frac{\dfrac12}{\dfrac12}}{q\text{遍}}
\end{gather*} |
|