答案1
您可以定义
\catcode`@=11
\def\underarrow#1{\mathop{\vtop{\m@th\ialign{##\crcr
$\hfil\displaystyle{#1}\hfil$\crcr
\noalign{\kern3pt\nointerlineskip}
\hfil$\uparrow$\hfil\crcr\noalign{\kern3pt}}}}\limits}
\catcode`@=12
然后写下,例如,
$(0,\dots,0,\underarrow{1}_{\hbox to0pt{\hss $(m+1)$-th\hss}},0,\dots,0)$
结果:
作为解决此类情况的一般策略,我建议找到一个具有类似功能的现有宏的定义,并根据自己的需要进行调整。在本例中,我使用了 plainTeX 宏\underbrace
,其定义如下
\def\underbrace#1{\mathop{\vtop{\m@th\ialign{##\crcr
$\hfil\displaystyle{#1}\hfil$
\crcr\noalign{\kern3pt\nointerlineskip}
\upbracefill\crcr\noalign{\kern3pt}}}}\limits}
答案2
我可以建议一个 tikz 版本,灵感来自你可能已经看过这篇文章。
\documentclass[a4paper]{article}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\begin{document}
$\{(0,\ldots ,0,{\tikzmarknode{11}{1}},0,\ldots ,0), (0,\ldots ,0,0,{\tikzmarknode{21}{1}},0,\ldots ,0),\ldots ,(0,\ldots ,0,{\tikzmarknode{31}{1}})\}$
\begin{tikzpicture}[overlay,remember picture]
{ \draw[<-,>=latex] (11) -- ++ (0,-.5) node[below] (l1) {${\scriptstyle (m+1)\text{-th}}$};}
{ \draw[<-,>=latex] (21) -- ++ (0,-.5) node[below] (l2) {${\scriptstyle (m+2)\text{-th}}$};}
{ \draw[<-,>=latex] (31) -- ++ (0,-.5) node[below] (l3) {${\scriptstyle n\text{-th}}$};}
\end{tikzpicture}
\end{document}
答案3
让我们尽可能地减少下标的干扰:
\documentclass{article}
\usepackage{mathtools}
\newcommand{\annoteentry}[2]{%
\begingroup
\renewcommand{\arraystretch}{0}%
\begin{array}[t]{@{}c@{}}
#1 \\\noalign{\vspace{2pt}}
\hidewidth\scriptstyle\uparrow\hidewidth\hspace*{0pt}\\\noalign{\vspace{1pt}}
\hidewidth\scriptstyle\mathstrut#2\hidewidth\hspace*{0pt}
\end{array}%
\endgroup
}
\begin{document}
\[
\bigl\{
(0,\dots,0,
\annoteentry{1}{(m+1)\text{-th}},
0,\dots,0),
(0,\dots,0,0,
\annoteentry{1}{(m+2)\text{-th}},
0,\dots,0),
(0,\dots,0,
\annoteentry{1}{n\text{-th}})
\bigr\}
\]
\end{document}