scrwfile 删除使用 titletoc 创建的部分目录

scrwfile 删除使用 titletoc 创建的部分目录

我正在使用titletoc在每个页面的开头创建一个部分目录\part

现在我引入了包scrwfile来获得更多的\write输出。然而这也删除了部分目录。

有没有办法使用 titletoc 将其恢复?否则我会对替代方案感兴趣。

\documentclass{scrbook}
\usepackage{scrwfile}
\usepackage{titletoc}   

\newcommand{\PartialToc}[1]{%
    \startcontents[part]
    \section*{\contentsname}
    \printcontents[part]{}{0}{\setcounter{tocdepth}{#1}}
}

\begin{document}
\mainmatter
\tableofcontents

\part{Part Heading First}
\PartialToc{1}
\chapter{first}
\chapter{second}
\stopcontents[part]

\part{Part Heading Second}
\PartialToc{1}
\chapter{One}
\chapter{Two}
\stopcontents[part]

\end{document}

答案1

除了 Markus Kohm 过去经常提到与此类程序可能不兼容之外,我无法谈论与 之间的问题scrwfile,这些程序会更改 KOMA 脚本类命令。我实际上不知道这里是否是这种情况。关于的“姊妹”包,我前段时间写了一些关于此的内容,但与此同时可能已经进行了兼容性更改:titletoctitletocKOMA-Script 与 titlesec 之间的不兼容性

但我可以提出一个替代方案:minitoc

\documentclass{scrbook}

\usepackage{scrwfile}

\usepackage[nohints]{minitoc}
\mtcsetrules{parttoc}{off}
\mtcsettitle{parttoc}{Part Contents}
\mtcsettitlefont{parttoc}{\LARGE\bfseries\sffamily} % "\sffamily" is KOMA-script default

\newcommand{\setparttoc}[1]{%
\mtcsetdepth{parttoc}{#1} % "0" as usual chapter depth
\parttoc
}

\begin{document}
\doparttoc

\mainmatter
\tableofcontents

\part{Part Heading First}
\setparttoc{0}

\chapter{First Chapter}
\section{First section}
\chapter{Second Chapter}
\section{First section, again}

\part{Part Heading Second}
\setparttoc{1}

\chapter{Chapter One}
\section{Another first section}
\chapter{Chapter Two}
\section{Why first sections only?}

\end{document}

所讨论示例的输出(scrwfile已停用):

所讨论示例的输出

答案中上述示例的输出:

答案中示例的输出

这当然可以进行更精细的调整,但它展示了这个想法。添加

\renewcommand*{\mtcgapbeforeheads}{-50pt}
\renewcommand*{\mtcgapafterheads}{-40pt}

外观是否更适合问题中的情况。顺便说一下,这些值与这些部分 toc 命令的默认值相反。


顺便说一句,对于知道自己在做什么的用户来说:scrwfile在日志文件中打印出一条警告,声称处于 Alpha 状态。可以使用软件包删除此警告silence

相关内容