方程式自動左對齊,如何居中?

方程式自動左對齊,如何居中?

我的印像是方程式與中心對齊。我正在使用一個包\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}

相關內容