Tocloft,修改目录

Tocloft,修改目录

我尝试修改目录。下图中您可以看到我的目录应该是什么样子。

我已经删除了标题,修改了意图。我尝试删除点,更改 vspacing,加粗字母,但没有用...我已经阅读了 tocloft 文档,但我的代码不起作用。这是我的代码。希望你能帮助我。谢谢

%Dokumentklasse
\documentclass[a4paper,11pt, pointlessnumbers,  twoside]{scrreprt}    
\usepackage{tocloft} 
\makeatletter 
\renewcommand*\l@section{\bprot@dottedtocline{1}{0em}{2.3em}}
\renewcommand*\l@subsection{\bprot@dottedtocline{2}{1.5em}{2.5em}}
\makeatother 
\begin{document}
%===Inhaltsverzeichnis===%
\renewcommand\cftsecdotsep{2000}
\renewcommand\cftsubsecdotsep{2000}
%\renewcommand{\cftsectiondotsep}{\cftnodots}
\renewcommand{\contentsname}{}
\tableofcontents
    
\chapter{Just}

\chapter{Checking}

\section{To see}

\section{If I}

\subsection{Can Duplicate}

\subsection{The problem}

\section{Here}

\chapter{In the TOC}

\end{document}

它看起来应该是这样的:

在此处输入图片描述

答案1

以下是使用 KOMA-Script 功能的建议。它至少需要 KOMA 版本 3.20(当前版本为 3.21)。

\documentclass[
  numbers=noenddot,
  twoside,
  ngerman
]{scrreprt}[2016/05/10]
\usepackage{babel}

\usepackage[headsepline,plainheadsepline,automark]{scrlayer-scrpage}
\clearpairofpagestyles
\ohead*{\pagemark}
\ihead{\headmark}
\addtokomafont{pagehead}{\normalfont}

\deftocheading{toc}{}
\BeforeTOCHead[toc]{\markboth{\contentsname}{\contentsname}}
\AfterTOCHead[toc]{\thispagestyle{scrheadings}}

\usepackage{xpatch}
\xpatchcmd{\addchaptertocentry}
  {\addtocentrydefault{chapter}{#1}{#2}}
  {\addtocentrydefault{chapter}{#1}{\MakeUppercase{#2}}}
  {}{\PatchFailed}

\RedeclareSectionCommand[
  tocindent=0pt,
  tocnumwidth=2.3em,
  tocbeforeskip=1em plus 1pt,
  tocentryformat=\textbf,
  tocpagenumberformat=\textbf
]{section}
\RedeclareSectionCommand[
  tocindent=1.5em,
  tocnumwidth=2.5em
]{subsection}

\RedeclareSectionCommands[
  toclinefill=\hfill
]{section,subsection,subsubsection,paragraph,subparagraph}

\renewcommand\pagemark{{\usekomafont{pagenumber}\pagename \enskip\thepage}}
\providecaptionname{ngerman}{\pagename}{Seite}

\renewcaptionname{ngerman}{\figurename}{Abb.}
\renewcaptionname{ngerman}{\tablename}{Tab.}
\addtokomafont{captionlabel}{\bfseries}

\renewcommand\familydefault{\sfdefault}

\begin{document}
\pagenumbering{Roman}
\tableofcontents

\cleardoubleoddpage
\pagenumbering{arabic}
\chapter{Just}
\chapter{Checking}
\section{To see}
\section{If I}
\subsection{Can Duplicate}
\subsection{The problem}

\section{Here}

\chapter{In the TOC}

\end{document}

结果:

在此处输入图片描述

答案2

好的,看起来你想要的是以下内容:

  • 章节标题采用粗体;小节标题采用正常粗体。
  • 章节标题全部大写
  • 没有将标题与页码联系起来的标引。
  • 章节和节的条目均与左边距齐平,小节的条目则缩进。

让我们依次解决这些问题。要使章节和部分标题以粗体显示,请查看手册的第 9 页tocloft。具体来说,请查看\cftXfont。如果您将其设置为\bfseries(例如\renewcommand{\cftchapfont}{\bfseries}和 )\renewcommand{\cftsecfont}{\bfseries},您将获得以粗体显示的条目。

章节标题全部大写:由于 LaTeX 命令的性质,这个比较难\uppercase。不过,它基本上是修补内部 LaTeX 命令的简短咒语:

\makeatletter
\patchcmd{\l@chapter}{#1}{\uppercase{#1}}{}{}%
\makeatother

别忘了\usepackage{etoolbox}在序言中添加此内容。这应该可以解决该问题。

要去掉领导者,请参阅手册第 8 页tocloft;具体来说,\cftdot。只需将其设置为空即可;例如\renewcommand{\cftdot}{}。您的 TOC 中将不再有领导者。

最后,关于缩进,请参阅tocloft手册第 10 页;具体来说,\cftsetindents。将章节和节的缩进设置为零,并将小节的缩进设置为您想要的值;例如:

\cftsetindents{chapter}{0em}{2em}
\cftsetindents{section}{0em}{2em}
\cftsetindents{subsection}{1.5em}{2.5em}

(最后一个参数负责处理目录中该级别的数字的宽度。)这就处理好了。

完成所有这些操作,将您的示例精简为必要的部分,最终您将得到类似以下内容:

\documentclass[a4paper,11pt, pointlessnumbers,  twoside]{scrreprt}
\usepackage{tocloft} 
\usepackage{etoolbox} 
\begin{document}
\renewcommand{\cftdot}{}
\renewcommand{\cftchapfont}{\bfseries}
\makeatletter
\patchcmd{\l@chapter}{#1}{\uppercase{#1}}{}{}%
\makeatother
\renewcommand{\cftsecfont}{\bfseries}
\cftsetindents{chapter}{0em}{2em}
\cftsetindents{section}{0em}{2em}
\cftsetindents{subsection}{1.5em}{2.5em}
\renewcommand{\contentsname}{}
\tableofcontents

\chapter{Just}

\chapter{Checking}

\section{To see}

\section{If I}

\subsection{Can Duplicate}

\subsection{The problem}

\section{Here}

\chapter{In the TOC}

\end{document}

这将为您提供如下所示的目录:

具有所需属性的目录

现在,看起来您可能还想更改其他一些内容(例如,章节和部分之间的间距),但文档tocloft非常完整,应该可以为您提供所需的信息。

希望这可以帮助。

相关内容