单标记线上的多个标记方程

单标记线上的多个标记方程

我正在尝试建立一种方法,让任意数量的方程式(通常是两个,但有时是三个,如果它们是特别短的定义甚至四个)在一行上,但在右侧只单独标记一次。

我一直在尝试使用迷你页面,正如之前多次回答的那样(比如这里这里)。

我有两个问题(编辑:第一个问题已在评论中解决):

1)小页面添加了少量的空白,因此它们的组合宽度大于\linewidth

这是 MWE,显示已添加一些空间。因此标签 (2) 位于标签 (3) 的右侧。

\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{cleveref}

\newenvironment{splits}[1][0.5]{
\noindent\minipage{#1\linewidth}\align}
{\endalign\endminipage}

\begin{document}

\begin{splits}
x=0
\end{splits}
\begin{splits}
y=1
\end{splits}

\begin{align}
z=2
\end{align}

\end{document}

2) 我无法只在右侧进行标记。标记每个方程式都很混乱,而且不合适,但执行\notag意味着我以后无法执行\ref。我想要的是类似(在上述文档中):

\begin{splits}[.25] \notag\label{1}
x=0
\end{splits}
\begin{splits}[.25] \notag\label{2}
y=1
\end{splits}
\begin{splits}[.25] \notag\label{3}
z=2
\end{splits}
\begin{splits}[.25]
\tag*{\cref{1,2,3}}
\end{splits}

这个想法的输出看起来像这样:

x=1        y=2        z=3        (1-3)
x_1=1      x_2=2      z_3=3    (1 a-c)

标签的具体内容并不那么重要,所以它可能是(1a-1c)或类似的东西。

答案1

这是你想要的东西吗?我splits用以下代码重新定义了你的环境tabularx

\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{mathtools}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{tabularx}
 \usepackage{cleveref}

\newenvironment{splits}[1][2]{
\vspace{\abovedisplayshortskip}\par\centering\tabularx{\linewidth}{*{#1}{>{\equation}X<{\endequation}}}}
{\endtabularx\vspace{\dimexpr\belowdisplayshortskip-\belowdisplayskip}\par}

\begin{document}
Some text. Some text. Some text. Some text. Some text. Some text. Some text. Some text.%

 \begin{splits}[3]
x=0 \label{eq-a} & y=1 \label{eq-b} & z=2 \label{eq-c}
 \end{splits}%
See \cref{eq-b,eq-s3}. Some more text. Some more text. Some more text.
\begin{subequations}
 \begin{splits}[3]
x=0 \label{eq-s1} & y=1 \label{eq-s2} & z=2 \label{eq-s3}
 \end{splits}%
 \end{subequations}

\end{document} 

enter image description here

相关内容