breqn:指定方程式可以被打破的字符

breqn:指定方程式可以被打破的字符

有没有办法强制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}

相关内容