
Я хотел бы иметь компактный набор из двух уравнений на одной строке, каждое из которых помечено, с обеими метками на правом краю. Код будет примерно таким:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
We have
\begin{equation}
a = b \label{eqab} \quad \text{and} \quad c = d \label{eqcd}
\end{equation}
and equations \ref{eqab} and \ref{eqcd} are nice.
\end{document}
(расположение меток в исходной строке не имеет значения) и будет выглядеть примерно так:
We have\vspace{3ex}
\hfill $a=b \quad \text{and} \quad c=d$ \hfill (1) and (2)\vspace{3ex}
and equations (1) and (2) are nice.
Но размещение двух из них \label
в одной строке приводит к ошибке `Package amsmath Error:
Multiple \label...` (the same for `\tag`).
решение1
Возможно, вы ищете что-то вроде этого:
\documentclass{article}
\usepackage{amsmath}
\usepackage[a4paper,showframe]{geometry}
\begin{document}
We have:
\noindent\begin{minipage}{0.4\textwidth}
\begin{equation}
a = b \label{eqab}
\end{equation}
\end{minipage}%
\begin{minipage}{0.2\textwidth}\centering
and
\end{minipage}%
\begin{minipage}{0.4\textwidth}
\begin{equation}
c = d \label{eqcd}
\end{equation}
\end{minipage}\vskip1em
Equations \ref{eqab} and \ref{eqcd} are nice. The same is valid for the next two:
\begin{subequations}\label{eq:3}
\noindent\begin{minipage}{0.4\textwidth}
\begin{equation}
a = b \label{eq:3a}
\end{equation}
\end{minipage}%
\begin{minipage}{0.2\textwidth}\centering
and
\end{minipage}%
\begin{minipage}{0.4\textwidth}
\begin{equation}
c = d \label{eq:3b}
\end{equation}
\end{minipage}\vskip1em
\end{subequations}
which are \ref{eq:3a} and \ref{eq:3b}.
\end{document}
решение2
\documentclass{article}
\usepackage{amsmath,tabularx}
\begin{document}
We have
\noindent
\begin{tabularx}{\linewidth}{XXX}
\begin{equation}
a = b \label{eqab}
\end{equation}
& \[ \text{and} \] &
\begin{equation}
c = d \label{eqcd}
\end{equation}
\end{tabularx}
and equations \ref{eqab} and \ref{eqcd} are nice.
\end{document}
решение3
Это ожидаемо, поскольку это не \label
то, что генерирует номер уравнения.
Если вам действительно нужно разместить два пронумерованных уравнения на одной строке (чего я бы не рекомендовал), вы можете воспользоваться мини-страницами:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
We have
\begin{center}
\begin{minipage}[b]{.3\textwidth}
\vspace{-\baselineskip}
\begin{equation}
a = b \label{eqab}
\end{equation}
\end{minipage}%
\hfill\hfill and\hfill
\begin{minipage}[b]{.3\textwidth}
\vspace{-\baselineskip}
\begin{equation}
c = d \label{eqcd}
\end{equation}
\end{minipage}
\end{center}
and equations \ref{eqab} and \ref{eqcd} are nice.
\end{document}
решение4
Amsmath может специально запрещать более одного \label
в уравнении, но это не значит, что нельзя создать другой макрос для выполнения той же задачи. Примечание: эта версия несовместима с hyperref.
\documentclass{report}
\usepackage{amsmath}
\makeatletter
\newcommand{\steplabel}[1]% #1 = label name
{\refstepcounter{equation}%
\protected@write\@auxout{}{\string\newlabel{#1}{{\theequation}{\thepage}}}}
\makeatother
\begin{document}
We have
\begin{equation}
a=b \quad \text{and} \quad c=d
\tag*{\steplabel{eqab}(\theequation) and \steplabel{eqcd}(\theequation)}
\end{equation}
and equations \eqref{eqab} and \eqref{eqcd} are nice.
\end{document}