我想减少类中节标题前后的间距amsbook
。因此,我按照文档中所示更改了宏的定义\@startsection
。不幸的是,现在我的节标题不再居中,而是左对齐,而且我也失去了不在页面最后一行的属性。发生了什么,我如何恢复这两个属性,同时仍然更改前后\vskip
?
附言:我不想为此使用任何包。
这是我的 MWE
\documentclass[oneside]{amsbook}
\makeatletter
\renewcommand\section{\@startsection{section{1}\z@{.3\linespacing\@plus\linespacing}{.0\linespacing}{\centering\normalfont\bfseries}}
\makeatother
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\begin{document}
\section{StackExchange}
\end{document}
答案1
第五个参数应该\@startsection
是正数:
\documentclass[oneside]{amsbook}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lipsum}
\makeatletter
\renewcommand\section{%
\@startsection{section}{1}
\z@
{.3\linespacing\@plus\linespacing}
{1sp}
{\normalfont\bfseries\centering}%
}
\makeatother
\begin{document}
\section{StackExchange}
\lipsum[1]
\end{document}
长度 1sp 是可能的最小正长度(远小于可见光的波长)。