我知道之前已经提到过这个主题,但我仍然无法在章节标题下创建空间。我使用了包titlesec
,然后尝试使用命令\titlespacing{\section}
...
这是我的代码。有人能帮忙吗?
\documentclass[10pt]{book}
\usepackage[utf8]{inputenc}
\usepackage{fullpage}
\usepackage[compact]{titlesec}
\usepackage{setspace}
\usepackage{sectsty}
\chapterfont{\huge}
\sectionfont{\Huge}
\begin{document}
\chapter*{Kapitel 1}
\section*{Einleitung}
\begin{large}
\subsection*{1.1 Motivation}
答案1
使用titlesec
您可以使用的包\titlespacing*
可以更改标题前后的间距;该命令的语法是:
\titlespacing*{<command>}{<left>}{<before-sep>}{<after-sep>}
(还有一个可选参数,但这里并不重要)。<left>
增加左边距;<before-sep>
控制标题前的垂直空间;<after-sep>
控制标题后的垂直空间。(有关更多信息,请参阅包文档)。完整的示例:
\documentclass[10pt]{book}
\usepackage{titlesec}
\usepackage{lipsum}% just to generate text for the example
\titlespacing*{\section}
{0pt}{5.5ex plus 1ex minus .2ex}{4.3ex plus .2ex}
\titlespacing*{\subsection}
{0pt}{5.5ex plus 1ex minus .2ex}{4.3ex plus .2ex}
\begin{document}
\chapter{Kapitel 1}
\lipsum[4]
\section{Einleitung}
\lipsum[4]
\subsection{Motivation}
\lipsum[4]
\end{document}
我使用ex
(大约为当前字体中“x”的高度)作为所用长度的单位,但您可以使用任何其他有效的 LaTeX 单位(cm
、in
、mm
、pt
等);您还可以使用预定义长度的倍数,例如 \baselineskip:
\titlespacing*{\subsection}
{0pt}{2\baselineskip}{3\baselineskip}
我使用了 ex,因为这样空格就与字体相关了。如果您想更改标题的格式,也可以使用相同的包及其强大的\titleformat
命令。
答案2
如果您不需要 之类的附加包的所有“负担” titlesec
,您可以自己简单地修改标题的这些方面。请参阅此示例。我使用了一些部分并保存了原始部分定义,以便我们可以看到比较。
然后,我在调用原始部分命令之前定义并使用一个部分“前奏”。然后,我在部分命令中添加一个“后奏”。这里的前奏和后奏都增加了额外em
的垂直空间,但您可以使用它来添加其他部分突出显示,如规则等。
\documentclass{article}
\begin{document}
\section{First Section}
This is the first line of text. Note the vertical spacing.
\section{Second Section}
Observe the spacing prior to and following the sectioning command. Now let me
redefine a few things.
\makeatletter
\let\origsection\section
\renewcommand\section{\@ifstar{\starsection}{\nostarsection}}
\newcommand\nostarsection[1]
{\sectionprelude\origsection{#1}\sectionpostlude}
\newcommand\starsection[1]
{\sectionprelude\origsection*{#1}\sectionpostlude}
\newcommand\sectionprelude{%
\vspace{1em}
}
\newcommand\sectionpostlude{%
\vspace{1em}
}
\makeatother
\section{Next Section}
Did this text drop 1em lower relative to the heading than the prior
section? If so, we have succeeded.
\section{Final Section}
And the result is permananent, as you can see.
\end{document}
答案3
如果有人想在使用 KOMAscript 时调整空格——@gonzalo 的答案不推荐,因为 KOMA 和 titlesec 不兼容。但是,KOMA 提供了修改部分命令的命令。命令
\RedeclareSectionCommand[beforeskip=-5.5ex plus -1ex minus -.2ex,afterskip=4.3ex plus -.2ex]{section}
将章节标题前后的空格修改为相似的值。
答案4
控制每个空间都单独你可以简单地使用:
\vspace{5mm}
或\vspace{1em}
或\vspace{1cm}
增加(到添加空间) 和;
\vspace{-5mm}
或\vspace{-1em}
或\vspace{-1cm}
减少(从标准空间中取出)。
它最适合控制标准空间的几个部分。
遵循一个工作示例:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{geometry}
\geometry{a4paper,
total={170mm,257mm},
left=20mm, top=20mm,}
\title{Spacing before and after section titles, \LaTeX}
\author{}
\date{}
\begin{document}
\maketitle
\section{\huge Increase \Large space between headings and text}
\subsection{With (\texttt{\textbackslash vspace\{4mm\}})}
\vspace{4mm}
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium.
\subsection{With (\texttt{\textbackslash vspace\{0.5em\}})}
\vspace{0.5em}
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium.
\subsection{With (\texttt{\textbackslash vspace\{0.6cm\}})}
\vspace{0.6cm}
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium.
\vspace{1cm}
\hrulefill
\vspace{1cm}
\section{\huge Decrease \Large space between headings and text}
\subsection{With (\texttt{\textbackslash vspace\{-3.5mm\}})}
\vspace{-3.5mm}
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium.
\subsection{With (\texttt{\textbackslash vspace\{-1em\}})}
\vspace{-1em}
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium.
\subsection{With (\texttt{\textbackslash vspace\{-0.44cm\}})}
\vspace{-0.44cm}
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium.
\end{document}