如何在 scrrprt 目录中不缩进章节标题?

如何在 scrrprt 目录中不缩进章节标题?

使用scrreprtKOMA-Script 类xelatex,我希望目录中的章节条目不缩进显示。我当前的代码是:

\documentclass[10pt,a5paper,DIV12,BCOR8.25mm,twoside,parskip=half]{scrreprt}
% setup the table of contents
\usepackage[tocbreaksstrict]{tocstyle}
\usetocstyle{standard}
\settocfeature{raggedhook}{\raggedright}
\makeatletter
\renewcommand{\@pnumwidth}{3em}
\renewcommand{\@tocrmarg}{4em}
\makeatother
\KOMAoptions{toc=flat} 
\setcounter{secnumdepth}{0}
\begin{document}
\tableofcontents
\section{First Section}
\section{Second Section}
\end{document}

输出结果如下:

章节标题 正常 toc

不过,我希望目录中的行与其余行左对齐。

理想情况下,这可以与 一起使用tocstyle,这很可能禁止使用tocloft来执行此操作。我之所以使用它,tocstyle是因为在排版一本约 2000 页、包含数百个章节的书籍的非常大的目录时,它似乎能给我带来最佳效果。许多章节标题过去会延伸到右边距并推出页码。这似乎在很大程度上通过这两个\renewcommand设置得到了解决。但是,我还需要 来\raggedright避免将目录设置为看起来很有趣的对齐样式。这时,它就tocstyle派上用场了。

如果需要改为tocloft,我很乐意这样做,只要它适用于上面示例中未显示的长章节标题。

答案1

尝试这个:

\makeatletter
\renewcommand*\l@section{\bprot@dottedtocline{1}{0em}{2.3em}}% no indentation
\renewcommand{\@pnumwidth}{3em}
\renewcommand{\@tocrmarg}{4em}
\makeatother

答案2

toc=flat目前无法识别(键值) KOMA 选项。请用包选项tocstyle替换它。tocstyletocflat

\documentclass[10pt,a5paper,DIV12,BCOR8.25mm,twoside,parskip=half]{scrreprt}
% setup the table of contents
\usepackage[tocbreaksstrict,tocflat]{tocstyle}
\usetocstyle{standard}
\settocfeature{raggedhook}{\raggedright}
\makeatletter
\renewcommand{\@pnumwidth}{3em}
\renewcommand{\@tocrmarg}{4em}
\makeatother
% \KOMAoptions{toc=flat} 
\setcounter{secnumdepth}{0}
\begin{document}
\tableofcontents
\section{First Section}
\section{Second Section}
\end{document}

答案3

使用最新版本的 KOMA-Script,无需加载额外的包来用于\raggedrightToC 中的部分条目。这可以通过以下方式完成

\RedeclareSectionCommand[tocraggedentrytext]{section}

在此处输入图片描述

代码:

\documentclass[10pt,a5paper,
  DIV=12,BCOR=8.25mm,% syntax has changed
  twoside,parskip=half,
  toc=flat
]{scrreprt}
\RedeclareSectionCommand[tocraggedentrytext]{section}

\makeatletter
\renewcommand{\@pnumwidth}{3em}
\renewcommand{\@tocrmarg}{4em}
\makeatother

\setcounter{secnumdepth}{0}
\begin{document}
\tableofcontents
\section{First Section}
Text
\section{Second Section}
Text
\section{Third Section with a long title that needs more than one line in the table of contents}
Text
\end{document}

相关内容