我正在帮助一位朋友sectsty
格式化文档中的标题。我该如何调整标题前后的间距,特别是标题的subparagraph
间距?
(我知道这titlesec
更强大。但是现在我们只需要快速修复或将以下内容完整翻译成titlesec
。)
这就是我们现在所拥有的:
\usepackage{sectsty}
\allsectionsfont{\centering\normalfont\normalsize}
\subsectionfont{\noindent\normalfont\normalsize\emph}
%\subsubsectionfont{\indent\normalfont\normalsize\itshape}
\subparagraphfont{\indent\normalfont\normalsize\itshape}
像往常一样,这是因为无知的人提出了论文要求。
答案1
sectsty
仅更新部分单元字体相关设置但仍使用传统\@startsection
构造:
\renewcommand\section{\@startsection {section}{1}{\z@}%
{-3.5ex \@plus -1ex \@minus -.2ex}%
{2.3ex \@plus.2ex}%
% {\normalfont\Large\bfseries}}
{\normalfont\Large\bfseries\SS@sectfont}}
\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
% {\normalfont\large\bfseries}}
{\normalfont\large\bfseries\SS@subsectfont}}
\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
% {\normalfont\normalsize\bfseries}}
{\normalfont\normalsize\bfseries\SS@subsubsectfont}}
\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
{3.25ex \@plus1ex \@minus.2ex}%
{-1em}%
% {\normalfont\normalsize\bfseries}}
{\normalfont\normalsize\bfseries\SS@parafont}}
\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
{3.25ex \@plus1ex \@minus .2ex}%
{-1em}%
% {\normalfont\normalsize\bfseries}}
{\normalfont\normalsize\bfseries\SS@subparafont}}
常规字体选择被注释掉,并用sectsty
格式替换\SS@...
。阅读\@startsection
中每个组件的含义在哪里可以找到类似\@startsection
LaTeX 的命令的帮助文件或文档?并重点关注参数 4 (跳过之前) 和 5 (跳过之后)。
以下是调整单元前后空间的示例\subparagraph
:
\documentclass{article}
\usepackage{sectsty}
\allsectionsfont{\centering\normalfont\normalsize}
\subsectionfont{\noindent\normalfont\normalsize\emph}
%\subsubsectionfont{\indent\normalfont\normalsize\itshape}
\subparagraphfont{\indent\normalfont\normalsize\itshape}
\begin{document}
\section{A section}
Some text
\subsection{A subsection}
Some text
\subsubsection{A subsubsection}
Some text
\paragraph{A paragraph}
Some text
\subparagraph{A subparagraph}
Some text
\makeatletter
\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
{2\baselineskip \@plus1ex \@minus .2ex}%
{\baselineskip}%
% {\normalfont\normalsize\bfseries}}
{\normalfont\normalsize\bfseries\SS@subparafont}}
\makeatother
\subparagraph{A subparagraph}
Some text
\end{document}
请注意sectsty
,假设您使用的文档类中的部分单元\@startsection
未对默认类进行修改,但不包括KOMA 脚本(来自sectsty
文档; 部分1 简介,第 2 页):
该
secsty
软件包提供了一组命令,用于更改标准 LaTeX 2e 文档类中各个部分标题使用的字体:article
、book
和report
。该软件包还适用于 KOMA-Script 类scrartcl
、scrbook
和scrreprt
。
虽然它“可以”与其他文档类别一起使用,但其效果仅仅是用上面提到的默认文档类别的定义覆盖了部分单元的定义。例如,apa6
定义
\renewcommand{\section}{\@startsection {section}{1}{\z@}%
{\b@level@one@skip}{\e@level@one@skip}%
{\centering\normalfont\normalsize\bfseries}}
\renewcommand{\subsection}{\@startsection{subsection}{2}{\z@}%
{\b@level@two@skip}{\e@level@two@skip}%
{\normalfont\normalsize\bfseries}}
\newcommand*{\addperi}[1]{#1.}
\renewcommand{\subsubsection}{\@startsection{subsubsection}{3}{\parindent}%
{0\baselineskip \@plus 0.2ex \@minus 0.2ex}%
{-1em}%
{\normalfont\normalsize\bfseries\addperi}}
\renewcommand{\paragraph}{\@startsection{paragraph}{4}{\parindent}%
{0\baselineskip \@plus 0.2ex \@minus 0.2ex}%
{-1em}%
{\normalfont\normalsize\bfseries\itshape\addperi}}
\renewcommand{\subparagraph}[1]{\@startsection{subparagraph}{5}{1em}%
{0\baselineskip \@plus 0.2ex \@minus 0.2ex}%
{-\z@\relax}%
{\normalfont\normalsize\itshape\hspace{\parindent}{#1}\textit{.}}{\relax}}
为了保持分段单元结构,最好手动重新定义上述集合*(与 分开sectsty
,如第一个示例中所做的那样)。同样的方法也适用(包括在 中重新定义你喜欢的\makeatletter
...\makeatother
对)也apa6
用于\@startsection
定义截面单位。
*当然,如果其他包兼容的话,也可以使用apa6
,但是在这里这似乎是不可能的。