breqn:dgroup 环境未正确对齐

breqn:dgroup 环境未正确对齐

我试图将一组等号处的方程对齐,但其中一个方程断开了。这就是 MWE。

\documentclass{article}
\usepackage{amsmath,mathtools,breqn}
\usepackage{amssymb}

\begin{document}

\begin{dgroup*}
    \begin{dmath*}
        (A \times B) \cup (B \times A)= \{(1,3),(1,4),(2,3),(2,4),(3,1),(3,2),(3,3),(3,4),(4,1),(4,2),(4,3)\},
    \end{dmath*}
    \begin{dmath*}
        (A \times B) \cap (B \times A)= \{(3,3)\},
    \end{dmath*}
    \begin{dmath*}
        (A \times B) \smallsetminus (B \times A)= \{(1,3),(1,4),(2,3),(2,4),(3,4)\}.
    \end{dmath*}
\end{dgroup*}
\end{document}

第一个等式应该在集合中间的某个地方断开。然而,dgroup* 在等号处断开,完全破坏了它的对齐。我怀疑这是因为 breqn 不喜欢在逗号处断行;我尝试按照这个解决方案回答相关问题,但没有效果。

答案1

breqn在某些地方有一些启发式方法。它将绝不在逗号处断开,因为它无法区分两个逗号(1,3),:第一个逗号一定不用来休息,而你的情况是第二个可能使用。

由于breqn以及 LaTeX 并不真正懂数学,因此破坏这种显示必须由懂数学的人来完成。

不过,您可以手动设置断点。比较以下两个显示并决定采用哪种样式。

\documentclass{article}
\usepackage{amsmath,mathtools}
\usepackage{breqn}
\usepackage{amssymb}

\begin{document}

\begin{dgroup*}
    \begin{dmath*}
        (A \times B) \cup (B \times A)=
        \{(1,3),(1,4),(2,3),(2,4),\penalty0
        (3,1),(3,2),(3,3),(3,4),(4,1),(4,2),(4,3)\},
    \end{dmath*}
    \begin{dmath*}
        (A \times B) \cap (B \times A)= \{(3,3)\},
    \end{dmath*}
    \begin{dmath*}
        (A \times B) \smallsetminus (B \times A)= \{(1,3),(1,4),(2,3),(2,4),(3,4)\}.
    \end{dmath*}
\end{dgroup*}


\begin{align*}
(A \times B) \cup (B \times A) &= \{
  \begin{aligned}[t]
  &(1,3),(1,4),(2,3),(2,4),\\
  &(3,1),(3,2),(3,3),(3,4),(4,1),(4,2),(4,3)\},
  \end{aligned}
\\
(A \times B) \cap (B \times A) &= \{(3,3)\},
\\
(A \times B) \smallsetminus (B \times A) &= \{(1,3),(1,4),(2,3),(2,4),(3,4)\}.
\end{align*}

\end{document}

在此处输入图片描述

相关内容