有没有办法强制breqn
在某个字符处换行,换成另一个字符。例如,在下面的例子中,人们可能更希望在符号处换行,+
而不是在 处换行\cdot
。人们可以指示breqn
等式应该在哪个确切位置换行吗?
\documentclass{article}
\usepackage{amsmath}
\usepackage{breqn}
\begin{document}
\begin{dmath*}
x = \left( y + \frac{1}{2}y^2z^3 \int_{-\infty}^{+\infty} xy^2\exp(z+xy)\,\mathrm{d}y + \frac{9\pi}{7} \int_{-\infty}^{+\infty} xy^3\cdot\ln z \, \mathrm{d}z \cdot \int_{-\infty}^{+\infty} \frac{x}{(1-y)^2} \cdot \mathrm{e}^{-3z} \,\mathrm{d}y \right)
\end{dmath*}
\end{document}
答案1
你可以使用以下方式强制换行\\
我认为breqn
默认情况下会对所有二元关系给予相同的破坏惩罚,而不需要用户级别的定制。
另一方面我思考这样做是安全的
\let\oldcdot\cdot
\usepackage{breqn}
\let\cdot\oldcdot
它将恢复\cdot
到正常的非断行定义,因此断行不会发生在点处。在您的示例中,这会导致断行发生在 + \frac{9\pi}
答案2
没有办法强制breqn
在某个字符处中断,转而使用另一个字符。但是,您可以通过将部分括在 中{}
或使用 明确中断来影响其默认行为\\
。如果使用后者,您将无法获得正确的对齐。
使用 打印 Eq(1a) \exp({z+xy})
,而使用默认行为打印 eq(1c)。显然,breqn 的算法在这里需要一些改进,因为在指数的正号处中断是一个糟糕的选择。
使用 强制中断获得了 Eq(1d) \\
。
对于任何想要进一步实验的人来说,这是 MWE。
\documentclass{article}
\usepackage{amsmath}
\let\oldcdot\cdot
\usepackage{breqn}
\let\cdot\oldcdot
\begin{document}
\begin{dgroup}[compact]
\begin{dmath}
x = \left( y + \frac{1}{2}y^2z^3 \int_{-\infty}^{+\infty} xy^2\exp({z+xy})\,\mathrm{d}y + \frac{9\pi}{7} \int_{-\infty}^{+\infty} xy^3\cdot\ln z \, \mathrm{d}z \cdot \int_{-\infty}^{+\infty} \frac{x}{(1-y)^2} \cdot \mathrm{e}^{-3z} \,\mathrm{d}y \right)
\end{dmath}
\begin{dmath}
f=0
\end{dmath}
\begin{dmath}
x = \left( y + \frac{1}{2}y^2z^3 \int_{-\infty}^{+\infty} xy^2\exp(z+xy)\,\mathrm{d}y + \frac{9\pi}{7} \int_{-\infty}^{+\infty} xy^3\cdot\ln z \, \mathrm{d}z \cdot \int_{-\infty}^{+\infty} \frac{x}{(1-y)^2} \cdot \mathrm{e}^{-3z} \,\mathrm{d}y \right)
\end{dmath}
\begin{dmath}
x = \left( y + \frac{1}{2}y^2z^3 \int_{-\infty}^{+\infty} xy^2\exp(z+xy)\,\mathrm{d}y + \frac{9\pi}{7}\\ \int_{-\infty}^{+\infty} xy^3\cdot\ln z \, \mathrm{d}z \cdot \int_{-\infty}^{+\infty} \frac{x}{(1-y)^2} \cdot \mathrm{e}^{-3z} \,\mathrm{d}y \right)
\end{dmath}
\begin{dmath}
f=0
\end{dmath}
\end{dgroup}
\end{document}