\overline 跨越数组列,保持对齐

\overline 跨越数组列,保持对齐

作为我经常想要的一个具体例子,这里有一个代码片段,里面有一个数组列分隔符\overline(使用上划线符号表示多个不等式):

\documentclass{article}

\usepackage{array}

\begin{document}

\[\begin{array}{lcr}
1 & < & 3 \\
\overline{2222 & < & 4} \\ % Comment this line out and it compiles.
3 & < & 5 \\
\end{array}\]

\end{document}

不幸的是,这会导致错误,并且通常对于除 之外的许多(如果不是全部)宏都会出现错误overline

有没有办法得到overline第二个方程,以保持所有数组行中 = 的对齐?

如果有,那么该方法是否也适用于其他用户定义的宏?

答案1

我很好奇想知道这是什么意思,但你可以这样做。

\documentclass{article}
\usepackage{array}

\begin{document}

\[
\begin{array}{@{} r @{} >{{}}c<{{}} @{} l @{}}
1 & < & 3 \\
\overline{2222} & \overline{{\vphantom{22224}}<{}} & \overline{4} \\
3 & < & 5
\end{array}
\]

\end{document}

在此处输入图片描述

对于实际用例,您可能需要其他\vphantom命令。

答案2

如果您切换到amsmath与朋友的样式对齐align*并使用 LuaLaTeX,那么您可以使用我的luamathalign包,它提供了一个\AlignHere命令,它的工作方式类似于&但几乎在任何地方都允许:

\documentclass{article}

\usepackage{amsmath,luamathalign}

\begin{document}

\begin{align*}
1 & < 3 \\
\overline{2222 \AlignHere < 4} \\
3 & < 5 \\
3 & < 55
\end{align*}

\end{document}

在此处输入图片描述

相关内容