我有一个方程式,其中一部分位于“过度括号”下。问题是括号下的数字太大了。当我只写带有过度括号的部分时,大小就没问题了。有什么办法可以解决这个问题吗?非常感谢!附有代码和图片
\documentclass[a4paper, 10pt]{article}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath}
\usepackage[top=1cm,bottom=1.5cm,left=2.5cm,right=1cm]{geometry}
\begin{document}
$\sqrt[n]{n} =^{(1)} \sqrt[n]{n \cdot 1^{n-1}} =\sqrt[n]{n \cdot
\smash[b]{\underbrace{1 \cdots 1}_{n-1~times}
}} <^{(2)} \frac{n+\overbrace{1+\ldots+1}^{n-1~ times}}{n}=\frac{n+(n-1)}{n}=\frac{2n-1}{n}=2-\frac{1}{n}$
\end{document}
答案1
问题是 Knuth 的宏\overbrace
(用于 Plain TeX)明确声明了\displaystyle
它的参数,参见 plain.tex 文件的第 959 行。不幸的是,LaTeX 也采用了这个想法。
解决方案:您可以使用 Unicode Math,因为 Unicode Math\overbrace
以完全不同且更好的方式声明。或者,您必须\scriptstyle
在 的参数中明确说明\overbrace
。但这是一个糟糕的解决方案:当您决定将公式从内联数学切换$...$
到显示$$...$$
时,您必须删除此\scriptstyle
命令。最佳解决方案:使用 Uncode Math(例如 OpTeX 使用 Unicode Math,XeLaTeX 或 LuaLaTeX 也可以使用 Unicode Math)。
答案2
我建议您使用该mathtools
包(顺便说一下,它会amsmath
自动加载该包)并使用它\mathclap
宏。
哦,别忘了插入一条\vphantom
指令来弥补由于\smash[b]{\sqrt{...}}
包装器而丢失的深度。
\documentclass{article}
\usepackage{mathtools} % for \mathclap macro
\usepackage[top=1cm,bottom=1.5cm,left=2.5cm,right=1cm]{geometry}
\begin{document}
\[
\sqrt[n]{n}
=^{(1)} \sqrt[n]{n \cdot 1^{n-1}}
=\sqrt[n]{n \cdot \smash[b]{
\underbrace{1\cdots 1}_{ \mathclap{\text{$n-1$ times}} }}}
\vphantom{\underbrace{1}_{1}}
<^{(2)} \frac{n+\overbrace{1+\dots+1}^{\text{$n-1$ times}}}{n}
=\frac{n+(n-1)}{n}=\frac{2n-1}{n}=2-\frac{1}{n}
\]
\end{document}