52

I have occasionally wanted to refer to a range of equations in my document. So far, I've been using Equations~\eqref{firstEquation}~--~\eqref{lastEquation}, which produces something like "Equations (5) - (12)". I recognize that this could make it harder to maintain the document if equations get shifted around, but I still prefer it to something like "Equations (5), (6), (7), (8), (9), (10), (11), and (12)".

Is there a standard or accepted way to refer to a range of equations like this? Or should I just keep doing whatever looks best to me?

Caramdir
  • 89,023
  • 26
  • 255
  • 291
Brandon
  • 1,941
  • 9
    Check out the cleveref package. You can write: see \cref{aneq,anothereq,andanothereq,onemoreeq} and get "see equations (5)-(8) and (16)" – Lev Bishop May 24 '11 at 19:37
  • 4
    @Lev: This is impossible! (or a rather bad bug in \cref that outputs more references than you specify) ;-) Also: This should be an answer. – Caramdir May 24 '11 at 19:41
  • @Caramdir: feel free to write a proper answer. I don't have time now. – Lev Bishop May 24 '11 at 19:42

1 Answers1

51

The Chicago Manual of Style (15th Edition) says:

A range of equations is referred to by giving the first and last equation numbers, joined by an en dash: From equations (2)–(5) we obtain . . .

Also, The Manual of Scientific Style recommends to use the en-dash:

For separating numbers in order to indicate a range, use an en-dash...

To automate this process, you could use the cleveref package, which automatically sorts and compresses a range of references; this package aldo provides the \crefrange command (and variants) to easily refer to a range of labels. You can customize the way the ranges are to be typeset. A little example:

\documentclass{article}
\usepackage{amsmath}
\usepackage{cleveref}

\begin{document}

\begin{equation}\label{equ:one}
a=b
\end{equation}

\begin{equation}\label{equ:two}
c=d
\end{equation}

\begin{equation}\label{equ:three}
e=f
\end{equation}

\begin{equation}\label{equ:four}
g=h
\end{equation}

\begin{equation}\label{equ:five}
i=j
\end{equation}

See~\cref{equ:three,equ:one,equ:five,equ:two}

\Crefrange{equ:two}{equ:five}

\end{document}

To get an en-dash instead of the word "to" you need to add

\newcommand{\crefrangeconjunction}{--}

to the preamble of the document.

EDIT: updated the example with an example of \Crefrange, and added the recommendations from the style manuals.

Lev Bishop
  • 45,462
Gonzalo Medina
  • 505,128
  • Should I write 'Equations' with upper case? Or 'equations'? – a06e Oct 08 '17 at 12:53
  • 1
    Note that there is one pitfall with the \Crefrange{equ:two}{equ:five} reference. If you add an additional equation between, e.g., equ:three and equ:four (like equ:threeAndHalf), then the Crefrange command will simply extend the range, while explicitly listing your equations as in \cref{equ:three,equ:one,equ:five,equ:two} will protect you from this problem. – dgruending Jan 30 '20 at 14:07