我尝试修改目录。下图中您可以看到我的目录应该是什么样子。
我已经删除了标题,修改了意图。我尝试删除点,更改 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
非常完整,应该可以为您提供所需的信息。
希望这可以帮助。