在 \underbrace 内对齐 & 符号

在 \underbrace 内对齐 & 符号

我有以下等式:

$\neg(A \wedge \neg A) \vee (B \implies A)$ \\
$\neg(A \wedge \neg A) \vee (\neg B \vee A)$ \\
$\underbrace{\underbrace{(\neg A \vee A)}_\text{w} \vee (\neg B \vee A)}_\text{w}$

我想将它们围绕 ∨ ( \vee) 符号对齐。

我尝试了以下操作:

\begin{align*}
    \neg(A \wedge \neg A) &\vee (B \implies A) \\
    \neg(A \wedge \neg A) &\vee (\neg B \vee A) \\
    \underbrace{\underbrace{(\neg A \vee A)}_\text{w} &\vee (\neg B \vee A)}_\text{w}
\end{align*}

但它吐出了相当神秘的错误信息:

! Missing } inserted.
<inserted text> 
                }
l.73 \end{align*}

在这种情况下,第 73 行是我在这个问题中的示例代码的最后一行。

我认为问题可能是因为&出现在 里面\underbrace。是否可以仍然对齐这些方程并保留\underbrace

答案1

您可以使用以下方式执行此操作tikzmark

在此处输入图片描述

\documentclass{article}

\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{tikzmark,decorations.pathreplacing,calligraphy}

\begin{document}

\begin{align*}
    \neg(A \wedge \neg A) &\vee (B \implies A) \\
    \neg(A \wedge \neg A) &\vee (\neg B \vee A) \\
    \underbrace{\tikzmark{V1}(\neg A \vee A)}_\mathrm{w} &\vee (\neg B \vee A)\tikzmark{V2}
\end{align*}

\begin{tikzpicture}[remember picture,overlay]
\draw[decorate, decoration={calligraphic brace, mirror, amplitude=5pt}, line width=1.2pt] 
    ([yshift=-4ex]{pic cs:V1}) --node[below=.5ex]{\scriptsize w} ([yshift=-4ex]{pic cs:V2});
\end{tikzpicture}

\end{document}

答案2

如果可以使用 LuaTeX,那么luamathalign包可以优雅地解决这个问题。只需要&\AlignHere里面替换 即可\underbrace

\documentclass{article}
\usepackage{amsmath}
\usepackage{luamathalign}
\begin{document}

\begin{align*}
    \neg(A \wedge \neg A) &\vee (B \implies A) \\
    \neg(A \wedge \neg A) &\vee (\neg B \vee A) \\
    \underbrace{\underbrace{(\neg A \vee A)}_\text{w} \AlignHere\vee (\neg B \vee A)}_\text{w}
\end{align*}

\end{document}

在此处输入图片描述

答案3

如果你可以使用 LuaLaTeX,那么这luamathalign是最好的选择。这是一个修复版本,\underbrace我使用定义的命令来避免与间距有关\ubrace的缺点。\underbrace

第二个版本可与每个引擎运行。

\documentclass{article}
\usepackage{amsmath}
\usepackage{luamathalign} % for the first realization, requires LuaLaTeX

\newcommand{\ubrace}[2]{{\underbrace{#1}_{#2}}}

\begin{document}

\begin{align*}
  \neg(A \wedge \neg A) &\vee (B \Rightarrow A) \\
  \neg(A \wedge \neg A) &\vee (\neg B \vee A) \\
  \ubrace{\ubrace{(\neg A \vee A)}{\text{w}}
      \AlignHere \vee (\neg B \vee A)}{\text{w}}
\end{align*}

\begin{align*}
  \neg(A \wedge \neg A) &\vee (B \Rightarrow A) \\
  \neg(A \wedge \neg A) &\vee (\neg B \vee A) \\
  \ubrace{(\neg A \vee A)}{\text{w}} & \vee (\neg B \vee A) \\[-3.5ex]
  &% here the tricky part
  \sbox{0}{$\displaystyle{}\vee (\neg B \vee A)$}
  \makebox[\wd0][r]{%
    $\displaystyle
    \ubrace{\phantom{(\neg A \vee A)\vee(\neg B \vee A)}}{\text{w}}
    $%
  }
\end{align*}

\end{document}

在此处输入图片描述

请注意,这_\text{w}只能偶然起作用,正确的语法是

_{\text{w}}

相关内容