我正在使用该amsthm
包来获得环境。我还使用它 \usepackage[onehalfspacing]{setspace}
来获得 1.5 倍行距。
但是,当我使用定理环境时,之前的间距不正确。它给我一个正常的行距,而不是 1.5 行距。假设我有:
First paragraph
Second paragraph
Third paragraph
\begin{theorem} Bla bla. \end{theorem}
我得到了这样的信息:
第一段
第二段
第三段
定理1。Bla bla。
你知道我该如何改变这种状况吗?
答案1
我实际上通过 ECM 路线找到了我的问题的答案。
导致问题的原因是我使用了带有 parfill 选项的 parskip 包,因此段落不是以空白缩进开头,而是以无缩进开头,但由空白行分隔。ECM:
\documentclass{article}
\usepackage{amsthm}
\newtheorem{theorem}{Theorem} % <-- Note this line?
\usepackage[onehalfspacing]{setspace}
\usepackage[parfill]{parskip}
\begin{document}
First paragraph
Second paragraph
Third paragraph
\begin{theorem}
1+1=2
\end{theorem}
\end{document}
我发现我不是第一个遇到这个问题的人。解决办法是添加:
\begingroup
\makeatletter
\@for\theoremstyle:=definition,remark,plain\do{%
\expandafter\g@addto@macro\csname th@\theoremstyle\endcsname{%
\addtolength\thm@preskip\parskip
}%
}
\endgroup
在调用 amsthm 包后,在序言中。它将通过在开头添加必要的额外空间来重新定义定理环境(或任何用户定义的环境)。额外的空间不是硬编码的,因此如果您从序言中删除 parskip 包,所有内容都会恢复为默认间距:很好!
希望这可以帮助!
答案2
我使用了以下文件(test.tex)...
\documentclass{article}
\usepackage{amsthm}
\newtheorem{theorem}{Theorem} % <-- Note this line?
\usepackage[onehalfspacing]{setspace}
\begin{document}
First paragraph
Second paragraph
Third paragraph
\begin{theorem}
1+1=2
\end{theorem}
\end{document}
...然后跑了
latex test.tex
获取文件 test.dvi。所有间距都应位于定理环境的上方和下方