为什么我的方程式不居中?

为什么我的方程式不居中?

此代码生成的方程式以

\documentclass{article}
\usepackage{amsmath}
\usepackage{mathtools}
\usepackage{cleveref}
\begin{document}
\begin{align}
    & \mathclap{f: A \to B, g: B \to C} \label{eq:1}
    \\
    f(a) &= \ldots \label{eq:2}
    \\
    g(b) &= \ldots \label{eq:3}
\end{align}
\end{document}

在此处输入图片描述

而这些不再居中。公式 1 不像正常人那样居中。为什么会这样?或者这被认为是 latex 的中心吗?

\documentclass{article}
\usepackage{amsmath}
\usepackage{mathtools}
\usepackage{cleveref}
\begin{document}
\begin{align}
    \mathclap{\alpha_{s,j}^t = g(\frac{e^{\varphi_{c}([h_j^t,l_j,s])}}{\sum_j e^{\varphi_{c}([h_j^t,l_j,s])}}) \quad \hat{x}_{\varphi}^{t} = \varphi_m([h_i^t,l_i,s])} \label{eq:1}
    \\
    \hat{x}_i^{'t} &= \hat{x}_{\varphi}^{t} + (1 - \alpha_{l,i}^t)\hat{x}_i^{t-1} \label{eq:left}
    \\
    \hat{x}_i^{t} &= \hat{x}_{\varphi}^{t} + (1 - \alpha_{r,i}^t)\hat{x}_i^{'t} \label{eq:right}
\end{align}
\end{document}

在此处输入图片描述

这就是我想要的方程式,但由于增加了空间,因此不需要使用两个对齐环境。

\begin{align}
    \alpha_{s,j}^t = g(\frac{e^{\varphi_{c}([h_j^t,l_j,s])}}{\sum_j e^{\varphi_{c}([h_j^t,l_j,s])}}) \quad \hat{x}_{\varphi}^{t} = \varphi_m([h_i^t,l_i,s]) \label{eq:1}
\end{align}
\begin{align}
    \hat{x}_i^{'t} &= \hat{x}_{\varphi}^{t} + (1 - \alpha_{l,i}^t)\hat{x}_i^{t-1} \label{eq:left}
    \\
    \hat{x}_i^{t} &= \hat{x}_{\varphi}^{t} + (1 - \alpha_{r,i}^t)\hat{x}_i^{'t} \label{eq:right}
\end{align}

在此处输入图片描述

答案1

在此处输入图片描述

你使用的\mathclap唯一功能是隐藏表达式的大小,因此 tex 没有关于第一行大小的信息

equation我会在第一行使用正常

\documentclass{article}
\usepackage{amsmath}
\usepackage{mathtools}
\usepackage{cleveref}
\begin{document}

\noindent X\dotfill X
\begin{equation}
    \alpha_{s,j}^t = g\biggl(\frac{e^{\varphi_{c}([h_j^t,l_j,s])}}{\sum_j e^{\varphi_{c}([h_j^t,l_j,s])}}\biggr) 
   \quad \hat{x}_{\varphi}^{t} = \varphi_m([h_i^t,l_i,s]) \label{eq:1}  
\end{equation}
\nopagebreak\vspace{-\baselineskip}
\begin{align}
    \hat{x}_i^{'t} &= \hat{x}_{\varphi}^{t} + (1 - \alpha_{l,i}^t)\hat{x}_i^{t-1} \label{eq:left}
    \\
    \hat{x}_i^{t} &= \hat{x}_{\varphi}^{t} + (1 - \alpha_{r,i}^t)\hat{x}_i^{'t} \label{eq:right} 
\end{align}
\noindent X\dotfill X
\end{document}

答案2

您可以将一个align环境包裹在另一个gather环境内。

我还建议您在第一行使用\exp(...)符号而不是e^{...}符号;它不需要太多额外的空间,但确实提高了可读性。

另外,\hat{x}_i^{'t}最好写成\hat{x}_i^{\prime t}

以下截图边缘的框线是因为示例代码加载了showframe包而绘制的。您可以\usepackage{showframe}在实际文档中省略。

在此处输入图片描述

备注:您可以放心地忽略以下一系列错误消息:

! Package amsmath Error: Multiple \label's: label 'eq:right' will be lost.

See the amsmath package documentation for explanation.

该软件包的用户指南amsmath明确指出,可以将align环境嵌套在gather环境中。通过创建对第二和第三个方程的交叉引用,\eqref就可以正常工作。


\documentclass{article}
\usepackage{amsmath}   % for 'gather' and 'align' environments
\usepackage{showframe} % draw framelines around textblock
\begin{document}

\begin{gather}
\alpha_{s,j}^t = 
   g\biggl(\frac{\exp\{\varphi_{c}([h_j^t,l_j,s])\}}{%
     \sum_j \exp\{\varphi_{c}([h_j^t,l_j,s])\}}
     \biggr) 
     \quad 
     \hat{x}_{\varphi}^{t} = \varphi_m([h_i^t,l_i,s]) 
     \label{eq:1} \\
\begin{align}
   \hat{x}_i^{\prime t} &= \hat{x}_{\varphi}^{t} 
     + (1 - \alpha_{l,i}^t)\hat{x}_i^{t-1}
     \label{eq:left} 
   \\[\jot]
   \hat{x}_i^{t} &= \hat{x}_{\varphi}^{t} 
     + (1 - \alpha_{r,i}^t)\hat{x}_i^{\prime t}
     \label{eq:right}
\end{align}
\end{gather}

\end{document}

相关内容