无需创建新行即可显示编号的数学表达式

无需创建新行即可显示编号的数学表达式

我想显示编号的数学表达式而不创建新行。示例:

\textbf{Claim}:
            \begin{equation}\label{fpreservesorder}
            m,n\in{}\mathbb{Z}\,\,\,\wedge{}\,\,\,n<m\implies{}f(n)<f(m)
            \end{equation}

在此处输入图片描述

消除新行的正确方法是什么?如果我使用内联模式,我会丢失编号。\align 和 \equation 会创建新行。\aligned 和 \multlined 似乎不会对表达式进行编号。

答案1

(我扩充了这个答案来回答 OP 的后续问题,关于如何允许将声明拆分为两条或更多行(我认为或多或少是自动的)。)

您可以在内联数学中呈现材料并将其与单词一起放置宣称和方程编号,在center环境中。我建议您将材料嵌入center环境中的原因是它将提供一些垂直空白填充,这可能正是您想要的。在下面的代码中,这是通过将声明放在名为的宏的参数中来实现的\Claim

如果声明太长,一行都放不下,您可以使用 的变体(在下面的代码中\Claim称为),将材料放置在的宽度(抱歉,使用 LaTeX 术语)中,例如。如果您采用这种方式,请确保不要过度使用和 ,因为组中的材料不能换行。您可能还需要提供适当放置的指令,以推动 LaTeX 将换行符放置在数学上(而不是印刷上)更优越的位置。\BoxClaim\parbox0.7\textwidth\left\right\left...\right\allowbreak

在此处输入图片描述

\documentclass{report} % or some other suitable document class
\usepackage{amsmath,amssymb}
\counterwithin{equation}{section} % just for this example

\newcommand\Claim[1]{\refstepcounter{equation}
   \begin{center}
      \textbf{\textup{Claim}}\hfill$\displaystyle #1$\hfill%
      \textnormal{(\theequation)}
   \end{center}}
\newcommand\mybox[1]{\parbox[t]{0.7\textwidth}{\raggedright $#1$}}
\newcommand\BoxClaim[1]{\Claim{\mybox{#1}}}

\newcommand\blurb{%  % supplied by the OP
   \exists m\,\bigl[(m\in A \enspace\lor\enspace m\in B) \enspace\wedge\enspace 
   \forall a\forall b\bigl((a\in A \enspace\wedge\enspace b\in B) 
   \allowbreak \implies a\leq m \enspace\wedge\enspace m\leq b \bigr)\bigr]}

\begin{document} 

\setcounter{chapter}{1} % just for this example
\setcounter{section}{5}

\noindent
Some text \dots
\Claim{m,n\in\mathbb{Z}\quad\wedge\quad n<m\implies f(n)<f(m)} \label{claim:mn}
A cross-reference to equation \eqref{claim:mn}.
\BoxClaim{\blurb}\label{claim:blurb}
A cross-reference to equation \eqref{claim:blurb}.

\end{document}

附录回答 OP 的一些后续问题:

  • \refstepcounter{<somecounter>}somecounter以这样的方式增加由命名的计数器1,如果您要添加指令,则可以通过标准-机制\label交叉引用对象(此处:等式)。\label\ref

  • \textup{(\theequation)}使用直立字体形状打印方程编号的表示形式(此处:部分前缀加点加实际方程编号),用括号括起来。该\textup指令用于确保复合方程编号始终以直立方式打印,即使在默认情况下以斜体排版其内容的环境(例如定理类环境)中也是如此。


第二附录:请检查一下阿姆斯特丹定理包。下面的示例代码仅仅触及了这些包可以做什么的表面。

\documentclass{article}
\usepackage{amsthm}       % or: \usepackage{ntheorem}
\newtheorem{claim}{Claim} % create a theorem-like environment called 'claim'
\begin{document}

\begin{claim} \label{claim:trivial}
We hold the following truth to be unalienable:
\begin{equation}
1+1=2
\end{equation}
\end{claim}
A cross-reference to Claim \ref{claim:trivial}.
\end{document}

答案2

您可能会滥用flalign或使用一些低级技巧来完成手工制作的工作。

\documentclass{article}
\usepackage{amsmath,amssymb}

\begin{document}

\noindent X\dotfill X
\begin{flalign}
&\textbf{Claim:} && m,n\in\mathbb{Z} \wedge n<m \implies f(n)<f(m) &
\label{fpreservesorder}
\end{flalign}

\noindent X\dotfill X
\begin{equation*}\refstepcounter{equation}
\hspace{0pt}
\makebox[0pt][l]{\textbf{Claim:}}
\hspace{1000pt minus 1fil}
m,n\in\mathbb{Z} \wedge n<m \implies f(n)<f(m)
\hspace{1000pt minus 1fil}
\makebox[0pt][r]{\eqref{fpreservesorder2}}
\label{fpreservesorder2}
\end{equation*}
Another equation to see that the numbering is good
\begin{equation}
1=1
\end{equation}

\end{document}

在此处输入图片描述

\label请注意,在第二种情况下,如果等式太长,可能会与“索赔”重叠。此外,强制的在这个构造中。

当然,如果您有多个这样的声明,最好定义一个新的环境。我为这两种方法提供了定义,您可以自行选择。这也支持hyperref;如果您不使用它,请省略 的定义\eqrefstar并更改\eqrefstareqrefclaim2环境不需要\label里面有 。

\documentclass{article}
\usepackage{amsmath,amssymb}
\usepackage{hyperref}

% for the first
\NewDocumentEnvironment{claim1}{b}
 {\begin{flalign}&\textbf{Claim:}&&#1&\end{flalign}}
 {}

\makeatletter
\newcounter{claim}
\newcommand{\eqrefstar}[1]{\textup{\tagform@{\ref*{#1}}}}
\newenvironment{claim2}
 {%
  \begin{equation*}
  \refstepcounter{equation}
  \stepcounter{claim}
  \ltx@label{claim-\theclaim}
  \hspace{0pt}
  \makebox[0pt][l]{\textbf{Claim:}}
  \hspace{1000pt minus 1fil}
 }
 {%
  \hspace{1000pt minus 1fil}
  \makebox[0pt][r]{\eqrefstar{claim-\theclaim}}
  \end{equation*}\ignorespacesafterend
 }
\makeatother

\begin{document}

\noindent X\dotfill X
\begin{claim1}
m,n\in\mathbb{Z} \wedge n<m \implies f(n)<f(m)
\label{fpreservesorder}
\end{claim1}

\noindent X\dotfill X
\begin{claim2}
m,n\in\mathbb{Z} \wedge n<m \implies f(n)<f(m)
\label{fpreservesorder2}
\end{claim2}
Another equation to see that the numbering is good
\begin{equation}
1=1
\end{equation}

\ref{fpreservesorder}

\ref{fpreservesorder2}

\end{document}

在此处输入图片描述

最后的建议:将“索赔:”单独留一行。

答案3

您可以使用fleqn环境,nccmath如下所示:

\documentclass{article}
\usepackage{showframe}

\usepackage{amsmath, amssymb, nccmath}

\begin{document}

\begin{fleqn}
    \begin{align}\label{fpreservesorder}
    &\textbf{Claim:} & & m,n\in{}\mathbb{Z}\,\,\,\wedge{}\,\,\,n<m\implies{}f(n)<f(m)
    \end{align}
    \end{fleqn}

\end{document} 

在此处输入图片描述

相关内容