數學環境中使用 \underbrace 出現意外的數學顯示

數學環境中使用 \underbrace 出現意外的數學顯示

我想透過使用 $ 分隔符號來保持數學模式。但是當我使用這段程式碼時:

\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}

我明白了:

在此輸入影像描述

在右邊,我看起來好像在學習顯示數學。為什麼?我應該\textstyle在使用時使用嗎\underbrace

答案1

underbrace 在乳膠格式中定義為

\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

鑑於大衛已經告訴你為什麼會這樣,你可以利用這些資訊做一些事情。您可以透過變更現有定義來建立自己的巨集\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}

在此輸入影像描述

相關內容