我目前正在用 LaTeX 写一些数学题,遇到了以下问题:我想在方程式和特定列表中使用“共享”计数器,例如
\begin{equation}
a + b = c
\end{equation}
and additionally
\begin{mycoolenum}
\item $c + d = e$
\item $c - f = e$
\end{mycoolenum}
结果是
(1.1) a + b = c
and additionally
(1.2) c + d = e
(1.3) c + f = e
我之所以要这样做,是为了在我的整个工作中保持一致的参考名称。我尝试过使用 [resume] 和列表环境,但无济于事。
它看起来应该是这样的:
\documentclass{scrartcl}
\usepackage{amsmath}
\numberwithin{equation}{section}
\begin{document}
\section{Section 1}
\begin{equation}
a + b = c
\end{equation}
\begin{list}{\theequation}{}
\addtocounter{equation}{1}
\item $c + d = e$
\addtocounter{equation}{1}
\item $c - f = e$
\end{list}
\begin{equation}
1 + 1 = 2
\end{equation}
\end{document}
编辑:澄清一下:我目前正在使用flalign
某种方式模仿所需的行为,但这对代码和最终结果都有一些缺点。
答案1
使用equation
枚举列表的计数器,只需注意不要重置它,或者最好将其设置为正确的值。
\documentclass{scrartcl}
\usepackage[leqno]{amsmath}
\numberwithin{equation}{section}
\newcounter{keepeqno}
\newenvironment{mycoolenum}
{\setcounter{keepeqno}{\value{equation}}%
\begin{list}{(\theequation)}{\usecounter{equation}}%
\setcounter{equation}{\value{keepeqno}}}
{\end{list}}
\begin{document}
\section{Section 1}
\begin{equation}
a + b = c
\end{equation}
\begin{mycoolenum}
\item $c + d = e$
\item $c - f = e$
\end{mycoolenum}
\begin{equation}
1 + 1 = 2
\end{equation}
\end{document}
答案2
再次思考之后,解决方案就很明显了:
\documentclass{scrartcl}
\usepackage{amsmath}
\numberwithin{equation}{section}
\let\Item\item
\newenvironment{mlist}{\renewcommand{\item}{\refstepcounter{equation} \Item} \begin{list}{\theequation}{}}{\end{list}}
\begin{document}
\section{Section 1}
\begin{equation}
a + b = c
\end{equation}
\begin{mlist}
\item $c + d = e$
\item $c - f = e$
\end{mlist}
\begin{equation}
1 + 1 = 2
\end{equation}
\end{document}
这给出了期望的结果。