在 4 下方排版 144...4 并且加上“n 次”很容易,但是 \sqrt{144...4} 呢?

在 4 下方排版 144...4 并且加上“n 次”很容易,但是 \sqrt{144...4} 呢?

灵感来自这个问题在数学 StackExchange 上,假设你想排版数字 144...4 的平方根,即 1 后面跟着n4。如果你写$\sqrt{1\underbrace{44\ldots4}_{n\ \text{times}}}$,就像当前版本的题目一样,你会得到一个巨大的激进分子符号,它向下延伸以匹配“n次”文本位于数字下方。有没有一种优雅的方式来排版这个,以便根号看起来像是$\sqrt{144\ldots4}$,但同时保持下划线的文本在正确的位置?

答案1

我建议如下:

\documentclass{article}
\usepackage{amsmath}
\begin{document}
$\sqrt{\smash[b]{1\! \underbrace{44\cdots4\,}_\text{$n$ times}}}$
\end{document}

在此处输入图片描述

请注意,将其放在宏$n$ times中在语法上更清晰\text\smash[b]命令会“隐藏”基线以下的内容,使其不出现在 TeX 中,从而不是使平方根符号的下端向下倾斜太远。该\!指令删除了下括号左端插入的不必要的空格,同时\,避免了下括号右端与最后的 发生冲突。最后,我意识到有些人会不同意我的观点,我认为在这种情况下4最好使用\cdots而不是。\ldots

附录:此 MWE 旨在生成单个公式的图像,其中平方根符号的“根”不会不必要地向下延伸。如果此公式是一些较长文本的一部分,则会立即出现问题:以下一行文本和数学 - 并且,根据下括号内容的深度,甚至下一行 - 都会直接覆盖下括号材料。正如 @egreg 在他的评论中指出的那样,正如 @Werner 在他的回答中所展示的那样,为了防止这种情况发生,应该将公式扩充为包含\vphantom 外部平方根的深度与公式\smash未使用时完全相同。例如,可以按如下方式完成:

$\vphantom{\underbrace{4}_{n}} \sqrt{\smash[b]{1\! \underbrace{44\cdots4\,}_\text{$n$ times}}}$

答案2

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\begin{document}
\[
  \sqrt{144\ldots4\smash{\llap{$\underbrace{\phantom{44\ldots4}}_{\text{$n$ times}}$}}}
    \vphantom{1\underbrace{44\ldots4}_{\text{$n$ times}}}
\]
\end{document}

“整个”数字都排版好了,后面跟着一个ed的left 。额外的(几乎重复的)是为了确保表达式的垂直高度与可见的高度相匹配,否则下括号可能会延伸到其下方的文本中。lap\smash\vphantom

amsmath提供\text

答案3

使用臭名昭著的标准过度 TikZ 解决方案\tikzmark非常适合此类情况:

在此处输入图片描述

笔记:

  • 这确实需要两次运行。第一次确定位置,第二次进行绘图。

参考:

代码:

\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{decorations.pathreplacing}

\newcommand{\tikzmark}[1]{\tikz[overlay,remember picture] \node (#1) {};}

% Tweak these as necessary
\newcommand*{\BraceAmplitude}{0.4em}%
\newcommand*{\VerticalOffset}{0.4ex}%  
\newcommand*{\HorizontalOffset}{0.0em}% 
\newcommand*{\SquareBraceVOffset}{-0.4ex}% 

\newcommand*{\InsertUnderBrace}[4][]{%
    \begin{tikzpicture}[overlay,remember picture]
\draw [decoration={brace,amplitude=\BraceAmplitude},decorate, thick,draw=blue,text=black,#1]
        ($(#3)+(\HorizontalOffset,-\VerticalOffset)$) -- 
        ($(#2)+(-\HorizontalOffset,-\VerticalOffset)$)
        node [below=\VerticalOffset, midway] {#4};
    \end{tikzpicture}%
}%

\newcommand*{\InsertUnderSquareBrace}[4][]{%
    \begin{tikzpicture}[overlay,remember picture]
        \draw [text=black,line width=0.7pt, #1]
            ($(#3)+(0,\VerticalOffset+\SquareBraceVOffset)$) -- 
            ($(#3)+(\HorizontalOffset,-\VerticalOffset+\SquareBraceVOffset)$) -- 
            ($(#2)+(-\HorizontalOffset,-\VerticalOffset+\SquareBraceVOffset)$)
            node [below, midway] {#4} --
            ($(#2)+(0,\VerticalOffset+\SquareBraceVOffset)$);
    \end{tikzpicture}%
}%

\begin{document}
\[
    \sqrt{1\tikzmark{StartBraceA}44\cdots4\tikzmark{EndBraceA}\,}
    \quad
    \sqrt{1\tikzmark{StartBraceB}44\cdots4\tikzmark{EndBraceB}\,}
\]

\InsertUnderBrace[draw=red,text=blue]{StartBraceA}{EndBraceA}{$n$ times}

\InsertUnderSquareBrace[draw=red,text=blue]{StartBraceB}{EndBraceB}{$n$ times}
\end{document}

答案4

答案很棒,但这次我忍不住要写一个答案,尽管已经有 4 个答案了。我有点着迷的细节是当参数很短时,下括号和它们的粗体外观。感谢mathtools包这个问题在很大程度上得到了解决,而且你也可以使用侵入性更低的\underbracket。以下是两个例子:

\documentclass{article}
\usepackage{amsmath,mathtools}
\begin{document}
\[\sqrt{\smash[b]{1\kern-2pt\underbracket[0.5pt][1pt]{4\cdots 44}_\text{$n$ many}}}\]

\[\sqrt{\smash[b]{1\kern-2pt\underbrace{4\cdots 44}_\text{$n$ many}}}\]
\end{document}

在此处输入图片描述

请注意,支撑臂的呈现方式很平滑,而不是相当粗糙的连接。

相关内容