在下面给出的文件中,我使用宏来表示方程及其环境。当可用宽度不足时,方程使用 breqn 包来分解它们。我收到错误
您不能在水平模式下使用“\prevdepth”。
但在主文档中,在每 3 行之间输入一个换行符,错误就会消失。我不确定为什么会发生这种情况。
\documentclass{article}
\usepackage{amsmath,breqn}
\newcommand{\norm}[1]{\lVert#1\rVert}
\newcommand{\myeqThree}[1][]{
\begin{dmath*}
a1=b1+c1
\label{eq:Three}
\text{#1}
\end{dmath*}}
\newcommand{\myeqOne}[1][]{
\begin{dgroup*}
\begin{dmath*}
a1=b1+c1
\end{dmath*}
\begin{dmath}
a1=b1+c1
\label{eq:One}
\end{dmath}
\text{#1}
\end{dgroup*}}
\title{title1}
\begin{document}
\maketitle
\section{section1}
\myeqThree
which gives us
\myeqOne
\end{document}
答案1
根据手册breqn
dgroup
类似于align
的环境amsmath
,但每个组成方程都包裹在dmath
、dmath*
、dseries
或dseries*
环境中,而不是用 分隔\\
。方程用组号编号。当组成环境是编号形式(dmath
或dseries
)时,它们会自动切换到“子方程”样式的编号,即 (3a)、(3b)、(3c)、... 之类的编号,具体取决于非分组方程编号的当前形式。
所以你的尝试不会成功。
如果您的目的是暂停对齐,则使用dsuspend
:
\documentclass{article}
\usepackage{amsmath,breqn}
\newcommand{\norm}[1]{\lVert#1\rVert}
\title{title1}
\begin{document}
\section{section1}
\begin{dgroup*}
\begin{dmath*}
a1=b1+c1
\end{dmath*}
\begin{dmath}
a1=b1+c1
\label{eq:One}
\end{dmath}
\begin{dsuspend}
some text
\end{dsuspend}
\begin{dmath*}
a1=b1+c1
\end{dmath*}
\begin{dmath}
a1=b1+c1
\end{dmath}
\end{dgroup*}
\end{document}
我的建议是避免breqn
。仅供参考。