
$ 区切り文字を使用して数式モードを維持したいのですが、次のコードを使用すると:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\begin{document}
$\big(\sum_{j=1}^n\delta_{j,k}x_k\big)_{1\leq k\leq n}
=\big(\underbrace{\sum_{j=1}^n\delta_{j,k}}_{1_A}x_k\big)_{1\leq k\leq n}$
\end{document}
私はこれを理解します:
右側では、displaymath にいるように見えます。なぜでしょうか?\textstyle
を使用するときは常にを使用する必要がありますか\underbrace
?
答え1
アンダーブレースはLaTeX形式では次のように定義されます。
\def\underbrace#1{\mathop{\vtop{\m@th\ialign{##\crcr
$\hfil\displaystyle{#1}\hfil$\crcr
%%%%%%%%%%%%
\noalign{\kern3\p@\nointerlineskip}%
\upbracefill\crcr\noalign{\kern3\p@}}}}\limits}
ここでは誰もテキストスタイルを望まないだろうという仮定があります (不合理ではありません:-)。したがって、本当にテキストスタイルが必要な場合は、質問で示唆しているように、議論の中でそれを再主張する必要があります。
答え2
David がなぜそうなっているのかを説明してくれたので、その情報を使ってできることがいくつかあります。既存の定義を変更することで、テキスト スタイルでまったく\tunderbrace
同じマクロを独自に作成できます。\underbrace
\Tunderbrace
または、楽しみのために、スタックを使用して独自のバージョンを作成することもできます。
\documentclass{article}
\usepackage{stackengine, scalerel, graphicx}
\makeatletter
\def\tunderbrace#1{\mathop{\vtop{\m@th\ialign{##\crcr
$\hfil\textstyle{#1}\hfil$\crcr
%%%%%%%%%%%%
\noalign{\kern3\p@\nointerlineskip}%
\upbracefill\crcr\noalign{\kern3\p@}}}}\limits}
\makeatother
\newcommand\Tunderbrace[2]{\mathop{\ensurestackMath{%
\def\tmp{#1}%
\setbox0=\hbox{$\tmp$}%
\stackunder[1pt]{%
\stackunder[0pt]{\tmp}{\rotatebox{90}{\scaleto[2ex]{\{}{\wd0}}}%
}{%
\scriptstyle #2%
}%
}}}
\parskip 1em
\begin{document}
$\tunderbrace{\sum_{j=1}^n \delta_{j,k}}_{1_A}x_k$\par
$\Tunderbrace{\sum_{j=1}^n \delta_{j,k}}{1_A}x_k$
\end{document}