我有一个双列模式的文档。除了目录 (toc),其他一切都很好(全部为两列)。奇怪的是,我找到了一个解决方案:
\unsettoc{toc}{onecolumn}
这会导致目录分为两列?!我不明白,因为
onecolumn
命令中就是这么写的。
(截图取自手动的)
\documentclass[
twoside = false,
twocolumn = true,
listof=totoc,
]{scrbook}
% Comment in/out to see effect
\unsettoc{toc}{onecolumn}
\begin{document}
\tableofcontents
\chapter{Chapter}
Test
\section{Section}
Test
\subsection{SubSection}
Test
\subsubsection{SubSubSection}
Test
\paragraph{Paragraph}
Test
\subparagraph{SubParagraph}
Test
\end{document}
\unsettoc{toc}{onecolumn}
积极的
\unsettoc{toc}{onecolumn}
不活跃
解决方案之后
请注意UNset
(unsettoc
)命令和set
(setuptoc
)命令。我读得不够仔细!
答案1
该命令会为文件扩展名(如或 )\setuptoc{<extension>}{<feature list>}
设置功能,但会取消设置列出的功能。请注意,这些是命令,文件扩展名必须由包 控制。toc
lof
\unsettoc{<extension>}{<feature list>}
tocbasic
tocbasic
每个 KOMA-Script 类scrartcl
和加载包scrreprt
及其目录和默认列表都由自动控制。并将目录和所有者列表的功能设置为默认。因此,如果您不想要单列目录,或者您必须使用scrbook
tocbasic
tocbasic
scrreprt
scrbook
onecolumn
float
scrreprt
scrbook
\unset{toc}{onecolumn}
停用onecolumn
TOC 的功能。
如果列表(由 控制tocbasic
)也应该是两列,则可以使用
\makeatletter
\doforeachtocfile{\unsettoc{\@currext}{onecolumn}}
\makeatother
listof=totoc
是 KOMA-Script 类的一个选项,其功能与
\makeatletter
\doforeachtocfile[float]{\setuptoc{\@currext}{totoc}}
\makeatother
因此它只影响所有者的列表,float
如lof
或lot
和不是 toc
。请注意,不建议在目录中添加目录条目。但可以使用
\setuptoc{toc}{totoc}
代码:
\documentclass[
twoside = false,
twocolumn = true,
listof=totoc,
]{scrbook}
\setuptoc{toc}{totoc}
\makeatletter
\doforeachtocfile{\unsettoc{\@currext}{onecolumn}}
\makeatother
\begin{document}
\tableofcontents
\listoffigures
\chapter{Chapter}
Test
\section{Section}
Test
\subsection{SubSection}
Test
\subsubsection{SubSubSection}
Test
\paragraph{Paragraph}
Test
\subparagraph{SubParagraph}
Test
\captionof{figure}{A Figure}
\end{document}