彻底删除章节文本和垂直空间

彻底删除章节文本和垂直空间

我有一个奇怪的要求,即章节标题只能出现在\tableofcontents和页面标题中,而不会出现在文档正文中。

我已经成功使用以下方法删除了该号码:

\renewcommand*{\chapterformat}{}%

如果我使用以下方法,则文本不会出现:

\chapter[Test]{}

但我无法摆脱垂直空间。我尝试了建议的东西这里,但这些都没有删除所有的空间。

如果我这样做\renewcommand{\chapterheadstartvskip}{\vspace*{-25pt}},实际上会删除所有空格,但前提是我不修改10pt传递给 scrbook 的选项。(它似乎也依赖于字体,因为我需要使用我无法在此处发布的使用导入的 truetype 字体fontspec,并且对于该字体,-29.3pt 是 10pt 大小的测量值)。

那么,是否有任何“可移植”的方法使文档的第 2 页看起来像第 1 页?重新定义\chapter或使用{book}和会不会更容易{titlesec}(因为我认为 titlesec 和 koma-classes 相处得不太好)?该项目仍处于非常早期的阶段,因此我仍然可以进行任何这些更改而不会破坏任何东西。

梅威瑟:

\documentclass[10pt,a4paper,oneside]{scrbook}
\usepackage[showframe]{geometry}
\usepackage{lmodern}
\renewcommand{\chapterpagestyle}{headings}
% remove chapter number
\renewcommand*{\chapterformat}{}%
% removes some vertical space, but not all:
\RedeclareSectionCommand[beforeskip=0pt,afterskip=0pt]{chapter}
% works for 10pt only
% \renewcommand{\chapterheadstartvskip}{\vspace*{-25pt}}
\parindent0pt
\begin{document}
Test
\newpage
\chapter[Test]{}
Test
\end{document}

输出:

在此处输入图片描述

答案1

我不会尝试删除\chapter不需要的功能,而是定义一个\mychapter仅包含所需功能的新宏(例如)。让我们定义它包括

  • 分页符,
  • 增加了计数器chapter
  • 目录条目,
  • 标题条目,

当然,你也可以根据需要扩展它。假设你希望目录的标题也以同样的方式运行,我们可以借鉴这个答案并得到:

\documentclass[10pt,a4paper,oneside]{scrbook}
\usepackage[showframe]{geometry}
\usepackage{lmodern}
\parindent0pt

\newcommand{\mychapter}[1]{%
    \clearpage%
    \refstepcounter{chapter}%
    \addcontentsline{toc}{chapter}{#1}%
    \chaptermark{#1}%
}

\makeatletter
\renewcommand\tableofcontents{%
    \@mkboth{\contentsname}{\contentsname}%
    \@starttoc{toc}%
}
\makeatother

\begin{document}

\tableofcontents

\mychapter{Test}
Test
\mychapter{Another test}
More text

\end{document}

在此处输入图片描述 在此处输入图片描述 在此处输入图片描述

答案2

以下是重新定义 KOMA-Script 命令的另一个建议\chapterlinesformat

\documentclass[10pt,a4paper,oneside]{scrbook}
\usepackage[showframe]{geometry}
\usepackage{lmodern}
\setlength\parindent{0pt}% really no parindent and no parskip?

\renewcommand\chapterheadstartvskip{}
\renewcommand\chapterheadendvskip{}
\renewcommand\chapterlinesformat[3]{}

\deftocheading{toc}{%
  \cleardoublepage
  \addchapmark{\contentsname}%
  %\addchaptertocentry{}{\contentsname}% if there should be a TOC entry for TOC
}

\renewcommand*\chapterpagestyle{headings}

\begin{document}
\tableofcontents
\chapter{Test}
Test
\chapter{Another Test}
More text
\addchap{Chapter without Number}
Text
\end{document}

在此处输入图片描述

在此处输入图片描述


对于双面文档,您必须确保\rightmark用于页眉:

\documentclass[10pt,a4paper,twoside]{scrbook}
\usepackage[showframe]{geometry}
\usepackage{lmodern}
\setlength\parindent{0pt}% really no parindent and no parskip?

\renewcommand\chapterheadstartvskip{}
\renewcommand\chapterheadendvskip{}
\renewcommand\chapterlinesformat[3]{}

\deftocheading{toc}{%
  \cleardoublepage
  \addchapmark{\contentsname}%
  %\addchaptertocentry{}{\contentsname}% if there should be a TOC entry for TOC
}

\usepackage{scrlayer-scrpage}
\automark[chapter]{chapter}
\clearpairofpagestyles
\chead{\rightmark}
\cfoot*{\pagemark}

\renewcommand\chapterpagestyle{scrheadings}

\begin{document}
\tableofcontents
\chapter{Test}
Test
\chapter{Another Test}
More text
\addchap{Chapter without Number}
Text
\end{document}

如果它chapterprefix也应该与选项一起使用,那么你必须添加行

\renewcommand\chapterlineswithprefixformat[3]{}

相关内容