在箭头符号上方书写文本的一种方法是使用 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}