我希望在同一行上创建一组紧凑的两个方程式,每个方程式都有标签,两个标签都在最右边。代码如下:
\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 错误:
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}