仅在缺少空格的情况下才会出现与 prevdepth 相关的错误

仅在缺少空格的情况下才会出现与 prevdepth 相关的错误

在下面给出的文件中,我使用宏来表示方程及其环境。当可用宽度不足时,方程使用 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,但每个组成方程都包裹在dmathdmath*dseriesdseries*环境中,而不是用 分隔\\。方程用组号编号。当组成环境是编号形式(dmathdseries)时,它们会自动切换到“子方程”样式的编号,即 (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。仅供参考。

相关内容