Amsmath,间距,左对齐

Amsmath,间距,左对齐

建议我包含amsmath要使用的包\tag{}(有效)。但是,当我这样做时,它会以某种方式更改我预定义的间距;我希望所有内容都左对齐,段落开头没有左间距,所有方程式、所有段落之间都有单行间距。

下面是示例代码;如果您注释掉amsmath行,您将看到我想要的输出。我的问题是,对于amsmath这种输出,我还需要使用哪些附加命令?

\documentclass[12pt,fleqn]{article}
\usepackage{amsmath}
\setlength{\parindent}{0pt}
\usepackage{graphicx}
\usepackage{cancel}
\usepackage{listings}
\usepackage[latin5]{inputenc}
\usepackage{color}
\setlength{\parskip}{8pt}
\setlength{\parsep}{0pt}
\setlength{\headsep}{0pt}
\setlength{\topskip}{0pt}
\setlength{\topmargin}{0pt}
\setlength{\topsep}{0pt}
\setlength{\partopsep}{0pt}
\setlength{\mathindent}{0cm}

\begin{document}

Some line 

\[ y = x^2 \]

Another line

\[ y = x^2  \]

\[ y = x^2 \]

One more line

\end{document}

答案1

正如其他人提到的那样,你真的不应该这样做。话虽如此,下面的代码提供了一个黑客环境equation*就是\[ ... \]在加载之后构造的amsmath。我看不出amsmath加载和应用此 hack 后 MWE 的输出有什么不同。但不能保证不会有结果amsmath发生变化的其他情况。

\usepackage{amsmath}
\makeatletter
\renewenvironment{equation*}{\vspace{\dimexpr -2\baselineskip+2.5pt\relax}\belowdisplayskip=0pt%
  \mathdisplay@push
  \st@rredtrue \global\@eqnswfalse
  \mathdisplay{equation*}%
}{%
  \endmathdisplay{equation*}%
  \mathdisplay@pop
  \ignorespacesafterend%
}
\makeatother

答案2

你必须绝不在显示的方程式上方有空行(除非它真的开始一个段落,但这也是一种不好的风格);下面可以使用空行,但前提是方程式结束一个段落。

对于连续显示的方程式,请使用环境gather*

\documentclass[12pt,fleqn]{article}
\usepackage[latin5]{inputenc}
\usepackage{amsmath}

\setlength{\parindent}{0pt}
\usepackage{graphicx}
\usepackage{cancel}
\usepackage{listings}
\usepackage{color}
\setlength{\parskip}{8pt}
\setlength{\parsep}{0pt}
\setlength{\headsep}{0pt}
\setlength{\topskip}{0pt}
\setlength{\topmargin}{0pt}
\setlength{\topsep}{0pt}
\setlength{\partopsep}{0pt}
\setlength{\mathindent}{0cm}

\begin{document}

Some line 
\[
y = x^2
\]
Another line
\begin{gather*}
y = x^2\\
y = x^2
\end{gather*}
One more line

\end{document}

相关内容