我有一个很长的方程式,我想使用 breqn 自动将其拆分为多行。该方程式是:
C_{\bm{r},\bm{V}} = \max \left\lbrace c: \forall S\subseteq \{1,\dots,N\},
c \leq I(\bm{V}_{S^C};X) + \sum_{m\in S} r_m - I(V_m) \right\rbrace
如果我把它放进去dmath
并在第二行的开头添加一个额外的关系(如\leq
),它就会正确地中断,以向 breqn 建议这是一个在需要时添加换行符的好地方。
显然,额外的符号是没有意义的,所以我也应该让它不被打印。因此,我可以做一些事情,比如\mathrel{\phantom{.}}
创建一个不可见的关系字符并换行。
问题在于,在实践中,添加一个预定义的关系字符(如)\leq
可以dmath
正确打破等式,但添加一个则\mathrel{\phantom{.}}
根本不会打破它。
以下是演示此行为的 MWE:
\documentclass{article}
\usepackage{amsmath,amsfonts,amssymb,bm}
\usepackage{breqn}
\usepackage{multicol}
\begin{document}
\begin{multicols}{2}
\begin{dmath}[compact]
C_{\bm{r},\bm{V}} = \max \left\lbrace {c:\forall S\subseteq \{1,\dots,N\},}
\leq {c \leq I(\bm{V}_{S^C};X) + \sum_{m\in S} r_m - I(V_m)} \right\rbrace
\end{dmath}
\begin{dmath}[compact]
C_{\bm{r},\bm{V}} = \max \left\lbrace {c:\forall S\subseteq \{1,\dots,N\},}
\mathrel{\phantom{.}} {c \leq I(\bm{V}_{S^C};X) + \sum_{m\in S} r_m - I(V_m)}\right\rbrace
\end{dmath}
\end{multicols}
\end{document}
得出的结果为:
第一列中的方程式用 正确地分解\leq
,但第二列中的方程式根本没有用不可见的关系分解。