章节标题放置

章节标题放置

我有很多短章节,所以我想让章节位于页面顶部,文本紧随其后。换句话说,不要留太多空白。其次,我想定义一个实验室宏,将 Lab 一词放在章节名称前面。

例如:

\lab {Blink}

应该变成:

\Chapter{Lab: Blink}

因此我写了一个命令:

\newcommand{\lab}[1]{\chapter{Lab: {#1}}}

我只是想了解这是否应该有效。它不起作用,这可能是由于一些微妙的原因。我有一个之前定义的实验室命令并试图将其注释掉。如果上述命令确实正确,那么我将为此目的用 MWE 开始另一个问题。

答案1

您的宏可能已损坏,因为\chapter这是一个“脆弱”命令。添加\protected它应该可以工作(请注意,我必须将其更改\newcommand为普通的\def):

\protected\def\lab#1{\chapter{Lab: {#1}}}

对于间距,我建议使用titlesec包。以下内容将删除章节标题前的所有垂直间距:

\titleformat{\chapter}[display]
            {\sffamily\bfseries}% formatting applied to all chapters
            {\chaptertitlename\ \thechapter} % Used for numbered chapters only 
            {\baselineskip} % Vertical space between ``Chapter N'' and name of chapter
            {}
\titlespacing*{\chapter}{0pt}{0pt}{\baselineskip}

请注意,该display选项会在章节标签(“第 1 章”)和标题(“Foo”)之间留出垂直空间。如果您希望它们在同一行,请将其删除并更改\baselineskip为(或其他水平尺寸)。1em

梅威瑟:

\documentclass{book}
\usepackage{titlesec}

\protected\def\lab#1{\chapter{Lab: {#1}}}

\titleformat{\chapter}[display]
            {\sffamily\bfseries}% format
            {\chaptertitlename\ \thechapter} % Sans-serif, bold 
            {\baselineskip} % Vertical space between ``Chapter N'' and name of chapter
            {}
\titlespacing*{\chapter}{0pt}{0pt}{\baselineskip}

\begin{document}

\tableofcontents

\chapter{Foo}

XXX.

\lab{FooBar}

ZZZ.

\chapter{Baz}

QQQ.

\end{document}

得出(与实验室):

实验章节

且不包含:

无实验室的章节

注意,我根本没有改变页边距,所以看起来章节上方仍有很多垂直空间。使用the fullpagegeometry包也可以恢复该空间。

答案2

由于缺乏真正可行的方案,我建议进行以下更改\chaptername

\documentclass{book}

\renewcommand{\chaptername}{Lab:~}
\begin{document}

\tableofcontents

\chapter{Foo}
\chapter{FooBar}

\end{document}

在此处输入图片描述

相关内容