我希望我的 shorttoc 中有彩色的部分和章节名称和我的目录。所以我想出了如何让 shorttoc 着色,但我不知道如何让目录也以相同的方式着色?如果我添加两次命令(在和之间\makelatter
)\makeatother
,它不起作用。那么我怎样才能让两者以相同的方式着色?
这是我的代码:
\documentclass{book}
\usepackage[pagestyles]{titlesec}
\titlespacing*{\chapter}{0pt}{-30pt}{20pt}
\titleformat{\chapter}[display]{\color{headercolor}\normalfont\huge\bfseries}{\chaptertitlename\ \thechapter}{20pt}{\Huge}
\titleformat{\section}
{\color{headercolor}\normalfont\Large\bfseries}{\thesection}{1em}{}
\titleformat{\subsection}
{\color{headercolor}\normalfont\Large\bfseries}{\thesubsection}{1em}{}
\titleformat{\subsubsection}
{\color{headercolor}\normalfont\large\bfseries}{\thesubsubsection}{1em}{}
\titleformat{\paragraph}
{\color{headercolor}\normalfont\normalsize\bfseries}{\theparagraph}{1em}{}
\usepackage[ngerman]{babel}
\usepackage[hidelinks]{hyperref}
\usepackage{xcolor,bookmark}
\usepackage{shorttoc}
\usepackage{tocstyle}
\usetocstyle{allwithdot}
\definecolor{headercolor}{rgb}{0.6941,0.6745,0.4863}
\begin{document}
\frontmatter
\makeatletter
\let\stdl@part\l@part
\renewcommand*{\l@part}[2]{%
\stdl@part{\textcolor{headercolor}{#1}}{\textcolor{headercolor}{#2}}}
\let\stdl@chapter\l@chapter
\renewcommand*{\l@chapter}[2]{%
\stdl@chapter{\textcolor{headercolor}{#1}}{\textcolor{headercolor}{#2}}}
\makeatother
\setcounter{tocdepth}{4}
\setcounter{secnumdepth}{4}
\shorttableofcontents{Inhalts\"ubersicht}{1}
\bookmark[page=15,rellevel=1,keeplevel,view={XYZ},color=red]{Inhalts\"ubersicht}
\bookmark[page=17,rellevel=1,keeplevel,view={XYZ},color=red]{Inhaltsverzeichnis}
\tableofcontents
\clearpage
\pagenumbering{arabic}
\mainmatter
\part{test}
\chapter{test}
\section{test1}
\section{test2}
and so on....
and so on.....
\end{document}
现在,shorttoc 是有颜色的,而 toc 没有,但我希望两者都是有颜色的。
答案1
在您的示例中,您正在修改\l@part
和\l@chapter
为相应的目录条目添加颜色。但您还加载了包tocstyle
并选择了allwithdot
样式,这意味着您之前的修改不会影响正常的目录,只会影响由创建的目录shorttoc
(不受控制tocstyle
)。结果:短目录是彩色的,但缺少部分/章节条目的点,而正常的目录则包含点,但缺少颜色。实现一致的目录布局的一种方法是简单地删除线条
\usepackage{tocstyle}
\usetocstyle{allwithdot}
从你的序言开始。另一种方式(如果你想要颜色和另一个方法是删除shorttoc
,并使用toctsyle
的\showtoc
命令来生成部分目录(有关详细信息,请参阅手册第 10 页)。
\documentclass{book}
\usepackage{titlesec}
\titlespacing*{\chapter}{0pt}{-30pt}{20pt}
\titleformat{\chapter}[display]
{\color{headercolor}\normalfont\huge\bfseries}{\chaptertitlename\ \thechapter}{20pt}{\Huge}
\titleformat{\section}
{\color{headercolor}\normalfont\Large\bfseries}{\thesection}{1em}{}
\titleformat{\subsection}
{\color{headercolor}\normalfont\Large\bfseries}{\thesubsection}{1em}{}
\usepackage[ngerman]{babel}
\usepackage{xcolor}
\definecolor{headercolor}{rgb}{0.6941,0.6745,0.4863}
\usepackage{tocstyle}
\usetocstyle{allwithdot}
\settocstylefeature[-1]{entryhook}{\color{headercolor}\bfseries\large}
\settocstylefeature[0]{entryhook}{\color{headercolor}\bfseries}
\begin{document}
\newcounter{savedtocdepth}
\setcounter{savedtocdepth}{\value{tocdepth}}
\setcounter{tocdepth}{1}
\chapter*{Inhalts\"ubersicht}
\markboth{\MakeUppercase{Inhalts\"ubersicht}}{\MakeUppercase{Inhalts\"ubersicht}}
\showtoc{toc}
\setcounter{tocdepth}{\value{savedtocdepth}}
\tableofcontents
\part{test}
\chapter{test}
\section{test1}
\subsection{test11}
\end{document}