我正在尝试建立一种方法,让任意数量的方程式(通常是两个,但有时是三个,如果它们是特别短的定义甚至四个)在一行上,但在右侧只单独标记一次。
我一直在尝试使用迷你页面,正如之前多次回答的那样(比如这里和这里)。
我有两个问题(编辑:第一个问题已在评论中解决):
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}