4

None of the existing examples that I found for listing equations does include the equations in the \align environement. How can I also include both equation types in the same list of equations? Here is a 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}

Xavier
  • 135

2 Answers2

4

I don't think it's good idea to modify the \label macro manually, as it gets used and redefined by quite a few other packages, including the hyperref and cleveref packages. I'd just apply \myequations directives directly to those equations that are supposed to be listed in the List of Equations. (When used with gather and align environments, it appears to be the case that the \myequations directives have be issued after line-break directives. Not sure why.)

Oh, and please don't use eqnarray environments; use align instead.

enter image description here

\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}

Mico
  • 506,678
  • Thank you! This in fact solves neatlythe problem. However, I would have appreciated not having to write definitions of \myequations throughout the paper, in addition to the \already existing \label ones. It also is a workaround for the fact that you still cannot include the align and aligned equations in the list of equations since you have to include both in the \equation environement. – Xavier Mar 11 '23 at 14:17
  • 1
    @Xavier Mico's answer here does not put align in equation(which would be a syntax error)? aligned isn't involved in equation numbering at all, it is just a layout construct like array or \frac if you mean you don't want \label{eq:objective function}\myequations{Objective function} do \newcommand\myeq[1]{\label{eq:#1}\myequations{#1}} and use \myeq{Objective function} which is 10000 times safer than redefining \label – David Carlisle Mar 11 '23 at 15:48
  • @Xavier - Why do you claim that my solution requires to embed an align environment inside an equation environment? For sure, that's not the case in the code I posted. – Mico Mar 11 '23 at 16:17
3

As Mico commented, you should not redefine \label. If you want to avoid supplying a label you can make simple command that does both. I used \ref here to pickup the correct number within ams alignments.

\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}

enter image description here

David Carlisle
  • 757,742