箭头或关系符号上方的多行文本

箭头或关系符号上方的多行文本

在箭头符号上方书写文本的一种方法是使用 mathtools 中的 \xrightarrow:

\documentclass[a4paper, 12pt]{article}
\usepackage{mathtools}
\begin{document}
    \begin{equation*}
        \dfrac{x+1}{x} \xrightarrow{\text{euclidean division}} 1+\dfrac{1}{x}
    \end{equation*}
\end{document}

例子

但是如果单词很长,可能最好将一个单词放在另一个单词上方,并将该堆栈放在箭头上方。

换句话说,使用上面的例子,单词欧几里得分配并且箭头将按顺序堆叠在另一个箭头的顶部,并且箭头线仍然与左侧的分割线(某种程度上)对齐。

尝试以下方法无效:

\xrightarrow{\text{euclidean\\division}}

有没有简单的方法可以做到这一点?缩写单词或使用其他单词不是一个选择。

答案1

您可以用于\overset此目的。默认的 有溢出\scriptscriptstyle,因此您需要调整大小。

在此处输入图片描述

它可以放入宏中,如以下代码所示:

\documentclass[a4paper, 12pt]{article}

\usepackage{mathtools}

\newcommand{\twoline}[2]{\overset{\textup{\scriptsize #1}}{\textup{#2}}}


\begin{document}
    \begin{equation*}
        \dfrac{x+1}{x} \xrightarrow{\twoline{Euclidean}{division}} 1+\dfrac{1}{x}
    \end{equation*}
\end{document}

答案2

另一个解决方案是使用 extarrows包。这是主要代码:

\frac{x+1}{x} \xlongrightarrow{\begin{matrix} \textup{Euclidean} &\\[-.3em] \textup{division}\end{matrix}}1+\dfrac{1}{x}

\documentclass{article}

\usepackage{mathtools,extarrows}

\begin{document}
\begin{equation}
  \frac{x+1}{x} \xlongrightarrow{\begin{matrix} \textup{Euclidean} &\\[-.3em] \textup{division}\end{matrix}}1+\dfrac{1}{x}
\end{equation}
\end{document}

在此处输入图片描述

答案3

我会tabular在内部使用\text,但有一点复杂:\text不会更新\baselineskip,但这可以修复。

\documentclass{article}
\usepackage{amsmath}

\makeatletter
\NewDocumentCommand{\textsubstack}{O{}m}
 {% #1 = optional font declaration, #2 = text
  \textnormal{%
    \fontsize{\f@size}{\fpeval{\f@size*\f@baselineskip/10}}
    \selectfont
    #1
    \begin{tabular}{@{}c@{}}#2\end{tabular}%
  }%
}
\makeatother

\begin{document}

\[
\frac{x+1}{x}\xrightarrow{\textsubstack{Euclidean \\ division }}1+\frac{1}{x}
\]

\[
\frac{x+1}{x}\xrightarrow{\textsubstack[\itshape]{Euclidean \\ division }}1+\frac{1}{x}
\]

\end{document}

在此处输入图片描述

相关内容