displaybreaks 和 brackett 包

displaybreaks 和 brackett 包

我试图让一个由大型集合定义组成的长公式在多行之间中断。我想使用对braket排版集合非常方便的包来定义集合。具体来说,我使用的是命令\Braket{...},而不是默认\Set命令(但我认为这没什么区别),例如

\[ S \coloneqq \Braket{ x \in \N | ... very long conditions here ...} \]

但是,在序言中设置\allowdisplaybreaks本身不起作用。此外,尝试在环境\\内手动强制换行align也不起作用(可能是因为“\braket”的内部工作方式,但我不确定,因为我不是专家)。

有什么建议吗?

附言:我知道这个问题的一些变体之前已经(大量)讨论过了,但我没有找到任何关于这个braket软件包的具体信息。但是,如果你有任何其他建议容易地排版集欢迎!

更新:不知道为什么这个问题被搁置了,无论如何我会添加一个具体的例子来澄清我的问题。这是我想要实现的原始版本(如果你懂一点代数的话,这是一个群的表示)

\[ S = \Braket{ a,\ b,\ c,\ d \ | \ abcd = dcba,\ a^2 = d^2,\ a^{cd} = b^{cb},\ abc = bca,\ dbd = aca,\ \text{ ... possibly other conditions... } } \]

这是迄今为止我发现的最佳解决方案

\[ S = \Braket{ a,\ b,\ c,\ d \ | \ 
    \begin{aligned}
         abcd &= dcba, & a^2 &= d^2, & a^{cd}  &= b^{cb},\\
         adda &= dbba, & c^2 &= b^2, & a^{d^3} &= b^{a^2},\\
         abc  &= bca,  & dbd &= aca, & b^{a^2} &= c^2
    \end{aligned}\ }
\]

|到目前为止唯一的缺点是,当条件包含 3 行或更多行时,左右括号和中间部分拉伸得不够。

答案1

您可以set使用 定义命令mathtools。在文档中,Sébastien Gouezel 编写的代码允许换行:

\documentclass{article}
\usepackage{mathtools}

\newcommand\MTkillspecial[1]{% helper macro
\bgroup
\catcode`\&=9
\let\\\relax%
\scantokens{#1}%
\egroup
}
\DeclarePairedDelimiter\set\{\}

\begin{document}

\[
 S\coloneqq\begin{multlined}[t]
 \set[\Big]{
 x\in\mathbf N \:\Bigm | \: \text{a first quite long condition} \\[-1ex] \text{and another still much longer condition}}
 \end{multlined}
\]

\[
 S\coloneqq\begin{aligned}[t]
 \set[\Big]{
 x\in\mathbf N \:\Bigm | \: & \text{a first quite long condition} \\[-1ex] & \text{and another still much longer condition}}
 \end{aligned}
\]

\end{document}

在此处输入图片描述

相关内容