目录中的章节名称跨越文本宽度

目录中的章节名称跨越文本宽度

我想在 的情况下设置\@tocrmarg为,以使其跨越整个目录。我正在使用0ptchapter托克巴什包(后继目录风格),两者都是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}

Screenshot

答案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}

chapter entries with full width

另请注意:我已将\addcontentsline命令更改为\addchaptertocentry和,\addsectiontocentry因为您也应该使用最高级别的用户界面。

相关内容