方程式自动左对齐,如何使它们居中?

方程式自动左对齐,如何使它们居中?

我以为方程式会与中心对齐。我正在使用一个包\documentclass [twocolumn, final] {svjour3},我猜这会改变这一点。

例如这个:

\begin{equation}
\begin{split}
\label{eq_vector_value}
V_{w_{xy}} &= 1 - Norm(\delta(w_{x},w_{y})) \\
           &= \{V_{w_{xy}} \in \mathbb{R} \| 0 \geq V_{w_{xy}} \geq 1\}.
\end{split}
\end{equation}

产生这个:

在此处输入图片描述

这是双列格式,我一直试图让它居中。我期望它会自动对齐到中心,这是错的吗?这篇文章中的所有方程式似乎都左对齐。

答案1

这是类的默认行为。 svjour3.cls包括

\PassOptionsToPackage{fleqn}{amsmath}}

因此默认

\documentclass[twocolumn, final]{svjour3}
\usepackage{amssymb}
\usepackage{mathtools}
\usepackage{lipsum} % just for the demo
\DeclareMathOperator{\Norm}{Norm}
\begin{document}
\lipsum[1-5] % Just for the demo
\begin{equation}
  \begin{split}
    \label{eq_vector_value}
    V_{w_{xy}} &= 1 - \Norm(\delta(w_{x},w_{y})) \\
    &= \{V_{w_{xy}} \in \mathbb{R} \| 0 \geq V_{w_{xy}} \geq 1\}.
  \end{split}
\end{equation}
\lipsum[5-15] % Just for the demo
\end{document}

生成:

在此处输入图片描述

(顺便说一句,您应该使用 a\DeclareMathOperator来很好地显示等式中的“规范”。)

答案2

svjour3.cls定义fleqn为类选项,但也将该选项传递给amsmath如果它加载了:

\DeclareOption{fleqn}{\input{fleqn.clo}\AtBeginDocument{\mathindent\z@}%
  \AtBeginDocument{\@ifpackageloaded{amsmath}{\@mathmargin\z@}{}}%
  \PassOptionsToPackage{fleqn}{amsmath}}

并且,在twocolumn文档类选项下,它也必然使用fleqn,从而向中添加内容\@begindocumenthook并设置amsmath

\DeclareOption{twocolumn}{\@twocolumntrue\ExecuteOptions{fleqn}}

您可以通过使用以下命令覆盖此操作:删除amsmath文档类传递的任何选项

\makeatletter
\expandafter\let\csname [email protected]\endcsname\relax% Remove options passed to amsmath
\makeatother

以上内容似乎足够了,但也可以删除由该类引入的边距调整:

\makeatletter
\AtBeginDocument{
  \mathindent=15pt % Restore \mathindent
  \@mathmargin\@centering} % Restore \@mathmargin
\makeatother

以上所有情况都违背了更好的判断,因为期刊有特定的要求,人们应该遵守。

在此处输入图片描述

\documentclass[twocolumn, final]{svjour3}

\makeatletter
\expandafter\let\csname [email protected]\endcsname\relax% Remove options passed to amsmath
\AtBeginDocument{
  \mathindent=15pt % Restore \mathindent
  \@mathmargin\@centering} % Restore \@mathmargin
\makeatother

\usepackage{amsmath,amssymb,lipsum}

\begin{document}

\sloppy% Just for this document
\lipsum*[1]
\begin{equation}
  f(x) = ax^2 + bx + c
\end{equation}

\lipsum[2]

\end{document}

相关内容