解决方案之后

解决方案之后

我有一个双列模式的文档。除了目录 (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}不活跃

在此处输入图片描述

解决方案之后

请注意UNsetunsettoc命令和setsetuptoc命令。我读得不够仔细!

答案1

该命令会为文件扩展名(如或 )\setuptoc{<extension>}{<feature list>}设置功能,但会取消设置列出的功能。请注意,这些是命令,文件扩展名必须由包 控制。toclof\unsettoc{<extension>}{<feature list>}tocbasictocbasic

每个 KOMA-Script 类scrartcl和加载包scrreprt及其目录和默认列表都由自动控制。并将目录和所有者列表的功能设置为默认。因此,如果您不想要单列目录,或者您必须使用scrbooktocbasictocbasicscrreprtscrbookonecolumnfloatscrreprtscrbook

\unset{toc}{onecolumn}

停用onecolumnTOC 的功能。

如果列表(由 控制tocbasic)也应该是两列,则可以使用

\makeatletter
\doforeachtocfile{\unsettoc{\@currext}{onecolumn}}
\makeatother

listof=totoc是 KOMA-Script 类的一个选项,其功能与

\makeatletter
\doforeachtocfile[float]{\setuptoc{\@currext}{totoc}}
\makeatother

因此它只影响所有者的列表,floatloflot不是 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}

相关内容