如何强制文本在 overset 命令中写成两行或更多行

如何强制文本在 overset 命令中写成两行或更多行

我有以下代码:

\documentclass[]{article}
\usepackage{amsmath}

\begin{document}

\begin{gather*}
 \overset{-1*R_{4}\rightarrow R_{3} \\ -2*R_{4}\rightarrow R_{2} }{\rightarrow}
\end{gather*}

\end{document}

我通过箭头将所有内容放在一行中,但我需要将其放在两行中,如换行符所示\\

答案1

您可以使用subarray环境。要使箭头与文本一样长,您可以使用\xrightarrow

代码:

\documentclass{article}

\usepackage{amsmath}

\begin{document}

    With \verb|\rightarrow|:

    \[
        \overset{
            \begin{subarray}{l}
                -1*R_{4}\rightarrow R_{3}\\
                -2*R_{4}\rightarrow R_{2}
            \end{subarray}
        }{\rightarrow}
    \]

    With \verb|\xrightarrow|:

    \[
        \xrightarrow{
            \begin{subarray}{l}
                -1*R_{4}\rightarrow R_{3}\\
                -2*R_{4}\rightarrow R_{2}
            \end{subarray}
        }
    \]

\end{document}

结果:

在此处输入图片描述

答案2

您可能已经从上面的答案中注意到,上面的间距\rightarrow是一个问题。我的答案使用substack命令来实现您所述的多行目标,并找到一个新的宏这里用于改变空间overset

输出:

在此处输入图片描述

梅威瑟:

\documentclass[]{article}
\usepackage{amsmath}

\makeatletter
\newcommand{\oset}[3][0ex]{%
    \mathrel{\mathop{#3}\limits^{
            \vbox to#1{\kern-2\ex@
                \hbox{$\scriptstyle#2$}\vss}}}}
\makeatother

\begin{document}

    \begin{gather*}
     \oset[3ex]{\substack{-1*R_{4}\rightarrow R_{3} \\ -2*R_{4}\rightarrow R_{2} }}{\rightarrow}
    \end{gather*}

\end{document}

相关内容