彩色目录和短目录?

彩色目录和短目录?

我希望我的 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}

在此处输入图片描述

在此处输入图片描述

相关内容