我试图让一个由大型集合定义组成的长公式在多行之间中断。我想使用对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}