建议我包含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}