我想将箭头放在几个公式的各个部分之上,但我希望箭头具有相同的大小和高度。有什么好的解决方案吗?例如考虑
\overleftarrow{x} \quad \overleftarrow{x^2} \quad \overrightarrow{3xy}
由于各个公式框的大小不同,箭头自然会有不同的高度和长度。我想迫使它们更均匀。
编辑1:
有希望的建议是使用幻影来均衡箭头的高度。
现在我决定将公式放入表格中并为箭头分配一行并调整行之间的间距。
编辑 2:这是一个没有幻影或箭头单独行等的 MWE。
\documentclass{article}
\usepackage{mathtools}
\def \ra {\overrightarrow}
\def \la {\overleftarrow}
\begin{document}
\begin{tabular}{cccc}
$\ra A$& $\la{ E^2}$ &$\la {5FG^3}$& $\ra{ H^2 I^3}$\\
$\ra {BA^5} $& $\ra {AE^2}$ &$\ra {G}$& $\ra {12 H^2 I^3}$\\
\end{tabular}
\end{document}
答案1
您可以让箭头的垂直高度\vphantom{<text>}
与应用<text>
时的最高内容相同,如果您希望它们具有相同的宽度,则可以将内容排版为固定宽度\makebox
。在这种情况下x^2
是最高的内容,所以我们得到:
在上面,我将 的宽度固定为\makebox
。2.0em
如果您的内容更宽,您可以手动调整此宽度,或将其设置为等于您拥有的最宽内容。因此,在第二个示例中,我假设 是ABCD
您最宽的元素,因此现在箭头的宽度刚好足以覆盖ABCD
:
这也可以使用来完成\mathmakebox
。
代码:固定宽度:
\documentclass{article}
\usepackage{mathtools}
\newcommand*{\TallestContent}{$x^2$}% <-- This should be the tallest content
\newcommand*{\ra}[1]{\overrightarrow{\makebox[2.0em]{$#1$\vphantom{\TallestContent}}}}
\newcommand*{\la}[1]{\overleftarrow{\makebox[2.0em]{$#1$\vphantom{\TallestContent}}}}
\begin{document}
$\la{x} \quad \la{x^2} \quad \ra{3xy}$
\end{document}
代码:使用以下方法测量宽度\makebox
:
\documentclass{article}
\usepackage{mathtools}
\newcommand*{\WidestContent}{$ABCD$}% <-- This should be the widest content
\newcommand*{\TallestContent}{$x^2$}% <-- This should be the tallest content
\newlength{\MyWidth}
\settowidth{\MyWidth}{\WidestContent}%
\newcommand*{\ra}[1]{\overrightarrow{\makebox[\MyWidth]{$#1$\vphantom{\TallestContent}}}}
\newcommand*{\la}[1]{\overleftarrow{\makebox[\MyWidth]{$#1$\vphantom{\TallestContent}}}}
\begin{document}
$\la{x} \quad \la{x^2} \quad \ra{3xy} \quad \ra{ABCD}$
\end{document}
代码:使用以下方法测量宽度\mathmakebox
:
\documentclass{article}
\usepackage{mathtools}
\newcommand*{\WidestContent}{ABCD}% <-- This should be the widest content
\newcommand*{\TallestContent}{x^2}% <-- This should be the tallest content
\newlength{\MyWidth}
\settowidth{\MyWidth}{\WidestContent}%
\newcommand*{\ra}[1]{\overrightarrow{\mathmakebox[\MyWidth]{#1\vphantom{\TallestContent}}}}
\newcommand*{\la}[1]{\overleftarrow{\mathmakebox[\MyWidth]{#1\vphantom{\TallestContent}}}}
\begin{document}
$\la{x} \quad \la{x^2} \quad \ra{3xy} \quad \ra{ABCD}$
\end{document}