在我的例子中,零件标题不需要零件编号。我已经使用 \DeclareTOCStyleEntry and would like to remove the part number. using
\nullfont` 解决了这个问题,但结果是缩进。用负缩进来抵消似乎不是一个好的解决方案。有什么更好的方法吗?
ps为什么不起作用\gobble
?
\documentclass{scrbook}
\KOMAoptions{paper=
128.5mm:198.4mm, %(5,06" x 7,91") %ziel
DIV=9, %ziel kleines buch
fontsize=12pt,
}
%%%% Sprache
\usepackage[german]{babel} %scheint
%%%%% table of content
\setcounter{tocdepth}{0} % 1 gibt parts und chapter und sections
\DeclareTOCStyleEntry[
indent=-2em,
entryformat=\mdseries\Large,
entrynumberformat=\nullfont, % \gobble,
pagenumberformat=\normalfont\normalsize,
onstarthigherlevel=\vskip ]{tocline}{part}
\DeclareTOCStyleEntry[
indent=2em,
pagenumberformat=\normalfont,
beforeskip=1pt plus .2pt,
entryformat=\normalfont
]{tocline}{chapter}
\begin{document}
\frontmatter
\tableofcontents
\mainmatter
\part{ Philosophie}
\chapter{ \textit{Vom Schreiben}}
\chapter{Zwei}
\end{document}
答案1
如果您不想让部分内容没有编号但在目录中有条目,那么您应该使用指令\addpart
而不是\part
或\part*
。
缩进目录条目确实是糟糕的排版。
Ragarding gobble
.gobble
是目录条目的特定样式的名称。在您的示例中,您选择样式tocline
。但是,koma 的参考手册会告诉您,还有更多样式可用。请记住,并非所有设置的选项DeclareTOCStyleEntry
都适用于每种样式。手册中也对此进行了描述。
在下面的示例中,一些设置组合在一起以获得清晰的目录。
\documentclass[10pt]{scrbook}
\KOMAoptions{paper=
128.5mm:198.4mm, %(5,06" x 7,91") %ziel
DIV=9, %ziel kleines buch
fontsize=11pt,
}
%%%% Sprache
\usepackage[german]{babel} %scheint
\usepackage{eqparbox}
\setkomafont{chapterentry}{\small}
%%%%% table of content
\setcounter{tocdepth}{0} % 1 gibt parts und chapter und sections
\DeclareTOCStyleEntry[
% bad typography
% indent = -2em,
entryformat = {\sffamily\bfseries Part\hskip 2.5ex},
beforeskip = 2.25em plus 1pt,
%entrynumberformat = \nullfont,
%pagenumberformat = \normalfont,
pagenumberbox = \phantom,
%
% onstartentry and onstarthigherlevel are not defined for
% for 'tocline'
%
%onstarthigherlevel = \vskip,
%onstartentry = Teil
]{tocline}{part}
\DeclareTOCStyleEntry[
% bad typography
% indent = 2em,
% pagenumberformat = \normalfont,
beforeskip = 1em plus 1pt,
%entryformat = \normalfont,
linefill = \dotfill
]{tocline}{chapter}
\renewcommand*\partpagestyle{empty}
\begin{document}
\frontmatter
\begingroup
\setkomafont{chapter}{\large\bfseries\sffamily}
\setkomafont{chapterentry}{\sffamily}
%\setkomafont{disposition}{\sffamily\itshape}
\tableofcontents
\endgroup
\mainmatter
\addpart{Philosophie}
\chapter{Vom Schreiben}
\chapter{Zwei}
\addpart{Kilosophie}
\chapter{Vom Schreiben}
\chapter{Zwei}
\end{document}
答案2
KOMA-Script 不提供\gobble
- 因此它在您的 MWE 中未定义。
您真的只想删除目录中的部分编号,而不删除文档中的部分编号吗?那么您可以定义一个接受一个参数但不执行任何操作的新命令:
\newcommand*\hideentrynumber[1]{}
使用此宏作为选项的值entrynumberformat
entrynumberformat=\hideentrynumber
。
要删除为零件编号保留的空间,必须将数字宽度设置为 0pt:
numwidth=0pt
例子:
\documentclass{scrbook}
\KOMAoptions{
paper=128.5mm:198.4mm,
fontsize=12pt,
DIV=9% last option -> recalculates typearea
}
\usepackage[german]{babel}% wirklich die alte Rechtschreibung?
\setcounter{tocdepth}{\chaptertocdepth}% only parts and chapters in ToC
\newcommand*\hideentrynumber[1]{}
\DeclareTOCStyleEntry[
entryformat=\mdseries\Large,
entrynumberformat=\hideentrynumber,
numwidth=0pt,
pagenumberformat=\normalfont\normalsize
]{tocline}{part}
\DeclareTOCStyleEntry[
indent=1em,% decreased to 1em, but: do you really want to indent chapter entries?
pagenumberformat=\normalfont,
beforeskip=1pt plus .2pt,
entryformat=\normalfont
]{tocline}{chapter}
\begin{document}
\layout
\frontmatter
\tableofcontents
\mainmatter
\part{Philosophie}
\chapter{\textit{Vom Schreiben}}
\chapter{Next Chapter}
\part{Next Part}
\chapter{Foo}
\chapter{Bar}
\end{document}
附加说明:我已删除,onstarthigherlevel=\vskip
因为没有为跳过提供维度。但即使有类似的东西onstarthigherlevel=\vskip 1em
,如果什么也不做:KOMA-Script 不提供比部分更低的级别,即部分的级别为 -1,并且没有 ToC 级别 ≤-2。也许你想改变beforeskip
部分条目?默认是2.25em plus 1pt
。