如何将文本放在括号\大括号内,使其不全是一行

如何将文本放在括号\大括号内,使其不全是一行

我知道如何在括号下创建文本。注意:我的公式是假的,但我想给你举个例子。

\underbrace{203948x^{3}+209204024x^2-18909345x}_\text{How can I place a text that isn't on one long line, but aligned underneath the brace}

答案1

您可以将文本放在 的第二个参数中\underbrace\parbox其宽度设置为 的第一个参数的宽度\underbrace。但是,手动执行此操作可能很繁琐。特别是如果您有多个表达式(如帖子中所示),最好设置一个专用宏来处理格式化工作。在下面的示例中,此宏称为\bigbrace

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath,ragged2e}

\newlength\mylen
\newcommand\bigbrace[2]{%
   \settowidth\mylen{$\displaystyle #1$}
   \underbrace{#1}_{\parbox{\mylen}{\scriptsize\Centering #2}}}

\begin{document}
\[
\bigbrace{203948x^{3}+209204024x^2-18909345x}{How can I place a text
     that isn't on one long line, but aligned underneath the brace?}
\]
\end{document}

答案2

使用stackengine手动换行符,或\boxedunderbrace基于eqparbox自动换行符包定义命令:文本放置在\parbox宽度等于公式宽度的行中。它需要一个标签作为可选参数(M默认情况下),以区分\boxedunderbraces 的多种用途。需要进行两次编译。

\documentclass{article}
\usepackage{amsmath,ragged2e}
\usepackage[usestackEOL]{stackengine}
\usepackage{eqparbox} 
\newcommand\boxedunderbrace[3] [M] {\underbrace{\eqmakebox[#1]{$\displaystyle#2$} }_{\scriptsize\parbox{\eqboxwidth{#1}}{\centering#3}}}

\begin{document}

\[
\underbrace{203948x^{3}+209204024x^2-18909345x}_{\scriptsize\Centerstack{How can
     I place a text that isn't on one long\\ line, but aligned underneath
     the brace?}}
\]

\[
\boxedunderbrace[M]{203948x^{3}+209204024x^2-18909345x}{How can
I place a text that isn't on one long line, but aligned underneath the brace?}
\]

\end{document} 

在此处输入图片描述

相关内容