使用scrreprt
KOMA-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}
输出结果如下:
不过,我希望目录中的行与其余行左对齐。
理想情况下,这可以与 一起使用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
替换它。tocstyle
tocflat
\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,无需加载额外的包来用于\raggedright
ToC 中的部分条目。这可以通过以下方式完成
\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}