我发现的列出方程式的现有示例均未包含 \align 环境中的方程式。我如何才能在同一方程式列表中同时包含两种方程式类型?以下是 MWE:
\documentclass[english]{article}
\setcounter{secnumdepth}{2}
%\setcounter{tocdepth}{1}
\usepackage{amsmath}
\usepackage{tocloft}
\usepackage{xstring}
\usepackage[unicode=true, pdfusetitle,
bookmarks=true,bookmarksnumbered=false,bookmarksopen=false,
breaklinks=false,pdfborder={0 0 0},backref=false,colorlinks=false]
{hyperref}
\makeatletter
\numberwithin{equation}{section}
% we use this for our refernces as well
\AtBeginDocument{\renewcommand{\ref}[1]{\mbox{\autoref{#1}}}}
% redefinition of \equation for convenience
\let\oldequation = \equation
\let\endoldequation = \endequation
\AtBeginDocument{\let\oldlabel = \label}% \AtBeginDocument because hyperref redefines \label
\newcommand{\mynewlabel}[1]{%
\StrBehind{#1}{eq:}[\Str]% remove "eq:" from labels
\myequations{\Str}\oldlabel{#1}}
\renewenvironment{equation}{%
\oldequation
\let\label\mynewlabel
}{\endoldequation}
% redefinition of \eqnarray for convenience
\let\oldeqnarray = \eqnarray
\let\endoldeqnarray = \endeqnarray
%\AtBeginDocument{\let\oldlabel = \label}% \AtBeginDocument because hyperref redefines \label
\newcommand{\mynewlabelarray}[1]{%
\StrBehind{#1}{eq:}[\Str]% remove "eq:" from labels
\myequations{\Str}\oldlabel{#1}}
\renewenvironment{eqnarray}{%
\oldeqnarray
\let\label\mynewlabelarray
}{\endoldeqnarray}
\newcommand{\listequationsname}{\normalsize List of Equations}
\newlistof{myequations}{equ}{\listequationsname}
\newcommand{\myequations}[1]{%
\addcontentsline{equ}{myequations}{\protect\numberline{\theequation}#1}}
\setlength{\cftmyequationsnumwidth}{3em}
\makeatother
\begin{document}
%\tableofcontents
\listofmyequations
\section{Section title}
\begin{equation}
F=q[E+(v\times B)]
\label{eq:Force}
\end{equation}
\begin{equation}
\tau=F\times r
\label{eq:Torque}
\end{equation}
If the electrical force in \ref{eq:Force} is ignored,
and the remaining magnetic force is used in \ref{eq:Torque},
with the assumption that $v$ is perpendicular to $B$, we find that
\begin{equation}
\tau=qvBrsin\theta
\label{eq:Magnetic}
\end{equation}
\begin{align}
\min_{u_{i}(t),y_i, i=1...N}\!\!\!\!\!\! J(u_i(t),y_i) &:= \sum_{i=1}^N \int_0^{T} R_i(u_{i}(t),t) dt \label{eq:objective function}\\
+& \xi \int_{0}^{T} \left(\theta\frac{M - I(t)}{M}K(t) - D(t)\right)^2 dt + \sum_{i=1}^N \gamma_i y_i \notag\\
+ & \sum_{i=1}^N p_{i} \int_{T_i}^{T} u_i(t-T_i)dt \notag\\
+& h\int_{0}^T \left[\theta\frac{M - I(t)}{M}K(t) - D(t)\right]^+ dt, \notag
\end{align}
subject to
\begin{align}
K(t)& = \sum_{i=1}^N u_i(t-T_i), & \quad t\in [0,T] \label{eq:2} \\
u_i(t) &\le % \theta_i S_i(t) y_i =
\theta_i (M_i - I_i(t)) y_i, & \ \ i = 1\ldots N \quad t\in [0,T-T_i] \label{eq:ui}\\
u_i(t) & = 0, & i = 1\ldots N \quad t\in [T-T_i,T] \label{eq:uio}\\
\dot{I}_i(t)& = f_i(I_i(t)), & i = 1 \ldots N \quad t\in [0,T]& \label{eq:dotIi}\\
\dot{I}(t)& = f(I(t)), &\quad t\in [0,T] \label{eq:dotI}\\
u_i(t) & \ge 0, & i = 1 \ldots N \quad t\in [0,T]& \label{eq:const5}\\
K(t)& \ge 0, &\quad t\in [0,T]& \\
y_i &\in \{0,1\}, & i = 1 \ldots N& \label{eq:const6}
\end{align}
%where
\begin{equation}\label{eq:capacity constraint}
u^{j}_i(t) \leq Min_{p\in C^{j}_{i}} \sum_{k \in {K^{j}_{ip}}} u^{j+1}_k(t-T_k)
\end{equation}
\end{document}
答案1
我认为手动修改宏不是一个好主意\label
,因为它被很多其他包使用和重新定义,包括hyperref
和cleveref
包。我只需将\myequations
指令直接应用于应该在方程列表中列出的那些方程即可。(当与gather
和align
环境一起使用时,似乎\myequations
已经发出了指令后换行指令。不知道为什么。)
哦,还有请不要使用eqnarray
环境;改用align
。
\documentclass[english]{article}
\setcounter{secnumdepth}{2}
\usepackage{mathtools} % for \coloneqq and \mathclap macros
\usepackage{tocloft}
\usepackage[unicode=true, pdfusetitle, bookmarks=true,
bookmarksnumbered=false, bookmarksopen=false,
breaklinks=false, backref=false,
colorlinks=true,allcolors=black]
{hyperref}
\usepackage[noabbrev]{cleveref}
\counterwithin{equation}{section}
\newcommand{\listequationsname}{\normalsize List of Equations}
\newlistof{myequations}{equ}{\listequationsname}
\newcommand{\myequations}[1]{%
\addcontentsline{equ}{myequations}%
{\protect\numberline{\theequation}#1}}
\setlength{\cftmyequationsnumwidth}{2.5em}
\begin{document}
%\tableofcontents
\listofmyequations
\allowdisplaybreaks
\section{Section title}
\begin{gather}
F=q[E+(v\times B)]
\label{eq:Force} \\ \myequations{Force}
\tau=F\times r
\label{eq:Torque}
\end{gather} \myequations{Torque}
If the electrical force in \cref{eq:Force} is ignored, and
if the remaining magnetic force is used in \cref{eq:Torque},
with the assumption that $v$ is perpendicular to~$B$, we
find that
\begin{equation}
\tau=qvBr\sin\theta
\label{eq:Magnetic}
\myequations{Magnetic}
\end{equation}
\begin{equation}
\label{eq:objective function}
\myequations{Objective function}
\begin{aligned}[t]
\smash[b]{\min_{\mathclap{%
\substack{u_{i}(t),y_i,\\ i=1,\dots,N}}}}
\,J(u_i(t),y_i)
&\coloneqq \sum_{i=1}^N \int_0^{T} R_i(u_{i}(t),t)\, dt
\\
&\quad+ \xi \int_{0}^{T} \left(\theta\frac{M - I(t)}{M}K(t) - D(t)\right)^{\!2} dt
+ \sum_{i=1}^N \gamma_i y_i \\
&\quad+ \sum_{i=1}^N p_{i} \int_{T_i}^{T} u_i(t-T_i)\,dt\\
&\quad+ h\int_{0}^T \left[\theta\frac{M - I(t)}{M}K(t) - D(t)\right]^+ dt,
\end{aligned}
\end{equation}
subject to
\begin{align}
K(t) &= \sum\nolimits_{i=1}^N u_i(t-T_i),
&& t\in [0,T]
\label{eq:2} \\
u_i(t) &\le % \theta_i S_i(t) y_i =
\theta_i (M_i - I_i(t)) y_i,
&& i = 1,\ldots, N,
\quad t\in [0,T-T_i]
\label{eq:ui} \\ \myequations{ui}
u_i(t) &= 0,
&& i = 1,\ldots, N,
\quad t\in [T-T_i,T]
\label{eq:uio} \\ \myequations{uio}
\dot{I}_i(t) &= f_i(I_i(t)),
&& i = 1,\ldots,N,
\quad t\in [0,T]
\label{eq:dotIi} \\ \myequations{dotIi}
\dot{I}(t) &= f(I(t)),
&& t\in [0,T]
\label{eq:dotI}\\ \myequations{dotI}
u_i(t) &\ge 0,
&& i = 1,\ldots,N,
\quad t\in [0,T]
\label{eq:const5} \\ \myequations{const5}
K(t) &\ge 0,
&& t\in [0,T] \\
y_i &\in \{0,1\},
&& i = 1,\ldots,N
\label{eq:const6}
\end{align} \myequations{const6}
where
\begin{equation}
\label{eq:capacity constraint}
\myequations{Capacity constraint}
u^{j}_i(t) \leq \min_{p\in C^{j}_{i}} \sum_{k \in {K^{j}_{ip}}} u^{j+1}_k(t-T_k)
\end{equation}
\end{document}
答案2
正如 Mico 所评论的,你不应该重新定义\label
。如果你想避免提供标签,你可以制作一个可以同时执行这两项操作的简单命令。我\ref
在这里用它来在 ams 对齐中选择正确的数字。
\documentclass[english]{article}
\setcounter{secnumdepth}{2}
\usepackage{mathtools} % for \coloneqq and \mathclap macros
\usepackage{tocloft}
\usepackage[unicode=true, pdfusetitle, bookmarks=true,
bookmarksnumbered=false, bookmarksopen=false,
breaklinks=false, backref=false,
colorlinks=true,allcolors=black]
{hyperref}
\usepackage[noabbrev]{cleveref}
\counterwithin{equation}{section}
\newcommand{\listequationsname}{\normalsize List of Equations}
\newlistof{myequations}{equ}{\listequationsname}
\newcommand{\myequations}[1]{%
\addcontentsline{equ}{myequations}%
{\protect\numberline{\ref{eq:#1}}#1}}
\setlength{\cftmyequationsnumwidth}{2.5em}
\newcommand\myeq[1]{\label{eq:#1}\myequations{#1}}
\begin{document}
%\tableofcontents
\listofmyequations
\allowdisplaybreaks
\section{Section title}
\begin{gather}
F=q[E+(v\times B)]
\myeq{Force} \\
\tau=F\times r
\myeq{Torque}
\end{gather}
If the electrical force in \cref{eq:Force} is ignored, and
if the remaining magnetic force is used in \cref{eq:Torque},
with the assumption that $v$ is perpendicular to~$B$, we
find that
\begin{equation}
\tau=qvBr\sin\theta
\myeq{Magnetic}
\end{equation}
\begin{equation}
\myeq{objective function}
\begin{aligned}[t]
\smash[b]{\min_{\mathclap{%
\substack{u_{i}(t),y_i,\\ i=1,\dots,N}}}}
\,J(u_i(t),y_i)
&\coloneqq \sum_{i=1}^N \int_0^{T} R_i(u_{i}(t),t)\, dt
\\
&\quad+ \xi \int_{0}^{T} \left(\theta\frac{M - I(t)}{M}K(t) - D(t)\right)^{\!2} dt
+ \sum_{i=1}^N \gamma_i y_i \\
&\quad+ \sum_{i=1}^N p_{i} \int_{T_i}^{T} u_i(t-T_i)\,dt\\
&\quad+ h\int_{0}^T \left[\theta\frac{M - I(t)}{M}K(t) - D(t)\right]^+ dt,
\end{aligned}
\end{equation}
subject to
\begin{align}
K(t) &= \sum\nolimits_{i=1}^N u_i(t-T_i),
&& t\in [0,T]
\label{eq:2} \\
u_i(t) &\le % \theta_i S_i(t) y_i =
\theta_i (M_i - I_i(t)) y_i,
&& i = 1,\ldots, N,
\quad t\in [0,T-T_i]
\myeq{ui} \\
u_i(t) &= 0,
&& i = 1,\ldots, N,
\quad t\in [T-T_i,T]
\myeq{uio} \\
\dot{I}_i(t) &= f_i(I_i(t)),
&& i = 1,\ldots,N,
\quad t\in [0,T]
\myeq{dotIi} \\
\dot{I}(t) &= f(I(t)),
&& t\in [0,T]
\myeq{dotI}\\
u_i(t) &\ge 0,
&& i = 1,\ldots,N,
\quad t\in [0,T]
\myeq{const5} \\
K(t) &\ge 0,
&& t\in [0,T] \\
y_i &\in \{0,1\},
&& i = 1,\ldots,N
\myeq{const6}
\end{align}
where
\begin{equation}
\myeq{capacity constraint}
u^{j}_i(t) \leq \min_{p\in C^{j}_{i}} \sum_{k \in {K^{j}_{ip}}} u^{j+1}_k(t-T_k)
\end{equation}
\end{document}