让方程编号和枚举使用相同的计数器

让方程编号和枚举使用相同的计数器

我设法自定义了枚举,因此它模仿了数学方程编号的格式。现在,我想用枚举中的计数器替换数学方程计数器,(\thechapter.\arabic{enumi})以便两者共享相同的编号。请注意,我想更改计数器align而不是定义新环境。

例如,下面我希望方程编号为 (1.2) 而不是 (1.1)。

(我的用例是在文本中对方程式和其他文本命题进行编号,而不必仅使用带有文本的方程式或使用内联方程式进行枚举。)

在此处输入图片描述

\documentclass[fleqn,leqno]{book}

\usepackage{amsmath}

\setlength{\mathindent}{3\parindent}

\usepackage{enumitem}
\setlist{leftmargin=3\parindent,labelindent=3\parindent}
\setlist[enumerate]{%
  leftmargin=3\parindent,%
  align=left,%
  labelwidth=3\parindent,%
  labelsep=0pt%
}
\setlist[enumerate,1]{% 
  label=(\thechapter.\arabic{enumi}),
  resume%
}

\begin{document}

\chapter{One}

\begin{enumerate}
  \item Item one
\end{enumerate}

\begin{align}
  y = x^2
\end{align}

\end{document}

答案1

为了使项目达到最佳对齐效果,我建议使用aligned内联数学模式:

\documentclass[fleqn,leqno]{book}
\usepackage{amsmath}
\setlength{\mathindent}{3\parindent}
\usepackage{enumitem}
\setlist{leftmargin=3\parindent,labelindent=3\parindent}
\setlist[enumerate]{%
  leftmargin=3\parindent,%
  align=left,%
  labelwidth=3\parindent,%
  labelsep=0pt%
}
\setlist[enumerate,1]{% 
  label=(\thechapter.\arabic{enumi}),
  resume%
}

\begin{document}
\chapter{One}
\begin{enumerate}
  \item Item one
  \item $\begin{aligned}[t]
  y &= x^2 + 2x + 1\\
  &= (x+1)^2
  \end{aligned}$
\end{enumerate}
\end{document}

在此处输入图片描述

答案2

您可以\parbox在数学模式下使用。

\documentclass{book}

\usepackage[fleqn,leqno]{amsmath}
\settowidth{\mathindent}{$(2.22)\quad$}

\usepackage{blindtext}% MWE only
\usepackage{showframe}% MWE only

\begin{document}

\chapter{One}

\begin{equation}
\parbox[t]{\dimexpr \textwidth-\mathindent}{\blindtext}
\end{equation}
\begin{align}
y &= x^2 \\
 &= x\times x\notag
\end{align}

\end{document}

演示

答案3

您也可以使用aliascnt包。在下面的例子中,我们取消定义/删除计数器enumi,然后将其重新定义为计数器的别名equation。(免责声明:公然删除现有计数器似乎enumi相当粗暴,我不确定这是否会产生任何不可预见的副作用。但是,我没有遇到任何问题,一切似乎都很顺利……)

\documentclass[fleqn,leqno]{book}

\usepackage{amsmath}

% ----------------------------------------
% ADDED THE FOLLOWING LINES TO YOUR MWE:
\usepackage{aliascnt}

\makeatletter
\let\c@enumi\relax
\makeatother
\newaliascnt{enumi}{equation}
% ----------------------------------------

\setlength{\mathindent}{3\parindent}

\usepackage{enumitem}
\setlist{leftmargin=3\parindent,labelindent=3\parindent}
\setlist[enumerate]{%
  leftmargin=3\parindent,%
  align=left,%
  labelwidth=3\parindent,%
  labelsep=0pt%
}
\setlist[enumerate,1]{% 
  label=(\thechapter.\arabic{enumi}),
  resume%
}

\begin{document}

\chapter{One}

\begin{enumerate}
  \item Item one
\end{enumerate}

\begin{align}
  y = x^2
\end{align}

\end{document}

使用 aliascnt 修改 MWE

相关内容