我想在 的情况下设置\@tocrmarg
为,以使其跨越整个目录。我正在使用0pt
chapter
托克巴什包(后继目录风格),两者都是KOMA 脚本。
梅威瑟:
\documentclass{scrbook}
\newcommand{\suppresstext}[1]{}
\newcommand{\tocformatchapter}[1]{\large\textbf{#1}}
\DeclareTOCStyleEntry[%
level=\chaptertocdepth,
beforeskip=16pt,
entryformat={\tocformatchapter},
pagenumberformat={\suppresstext}
]{chapter}{chapter}
\begin{document}
\addcontentsline{toc}{chapter}{Chapter Chapter Chapter Chapter Chapter Chapter Chapter Chapter Chapter}
\addcontentsline{toc}{section}{Section}
\addcontentsline{toc}{section}{Section}
\addcontentsline{toc}{chapter}{Chapter Chapter Chapter Chapter Chapter Chapter Chapter Chapter Chapter}
\addcontentsline{toc}{section}{Section}
\addcontentsline{toc}{section}{Section}
\addcontentsline{toc}{section}{Section}
\tableofcontents
\end{document}
答案1
首先\@pnumwidth
只是页码框的宽度。条目文本的右边距由 给出,与\@tocrmarg
无关\@pnumwidth
。所以我认为,您不想\@pnumwidth
设置为 0pt,而是\@tocrmarg
。
您可以定义自己的条目样式,不使用\@pnumwidth
和\@tocrmarg
,而是使用\DefineTOCEntryStyle
。如果您不需要很多配置选项,这可能很简单。如果您需要配置选项,但从样式的副本开始,那么tocline
工作量tocbasic.sty
也不会很大。
但您也可以使用一个简单的 hack。entryformat
执行打印整个条目。因此,在这里更改还不算太晚\rightskip
。并且的执行entryformat
是针对该条目的本地执行。因此,\rightskip
在此处更改不会影响其他条目:
\documentclass{scrbook}
\newcommand{\suppresstext}[1]{}
\newcommand{\tocformatchapter}[1]{\rightskip 0pt\large\textbf{#1}}
\DeclareTOCStyleEntry[%
level=\chaptertocdepth,
beforeskip=16pt,
entryformat={\tocformatchapter},
pagenumberbox=\suppresstext,
]{chapter}{chapter}
\begin{document}
\addchaptertocentry{}{Chapter Chapter Chapter Chapter Chapter Chapter Chapter Chapter Chapter}
\addsectiontocentry{}{Section}
\addsectiontocentry{}{Section}
\addchaptertocentry{}{Chapter Chapter Chapter Chapter Chapter Chapter Chapter Chapter}
\addsectiontocentry{}{Section Section Section Section Section Section Section Section Section Section Section}
\addsectiontocentry{}{Section}
\addsectiontocentry{}{Section}
\tableofcontents
\end{document}
另请注意:我已将\addcontentsline
命令更改为\addchaptertocentry
和,\addsectiontocentry
因为您也应该使用最高级别的用户界面。