12

I've now tried mathtools for the first time, for the sake of showonlyrefs. It works fine, except if I put an \eqref command into a figure caption, in which case I get:

! Argument of \@caption has an extra }.
! Paragraph ended before \@caption was complete.

Here is the MWE:

\documentclass{article}
\usepackage{amsmath}
\usepackage{mathtools}
\mathtoolsset{showonlyrefs=true,showmanualtags=true} % do not number unreferenced equations
\begin{document}
  \begin{equation}\label{eq:EVE-HEH}
    x
  \end{equation}
  \begin{figure}
    \caption{See eigenvalue equation \eqref{eq:EVE-HEH}.}
  \end{figure}
\end{document}

What do I do wrong?

Update: Found here that \protect before \eqref in caption helps, and indeed it does. However this is not mentioned in the mathtools. Is it the right solution?

13

Unfortunately \eqref is not a robust command, so it needs \protect in front of it when used in a moving argument, such as the argument of \caption or \section.

If you happen to use many times \eqref in such places, you can consider "robusting" it:

\usepackage{fixltx2e,amsmath}
\MakeRobust{\eqref}

Note that \eqref is provided by amsmath, rather than mathtools (this last package loads amsmath).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.