我的实际情况
我设置(使用以下命令)在目录中每个chapter
元素都用颜色 表示steelblue
,而章节和小节则用 表示black
。
\RequirePackage{titletoc}
\setcounter{tocdepth}{2}
\titlecontents{chapter}[0cm]
{\addvspace{14pt}\large\sffamily\bfseries}
{\color{steelblue}\contentslabel[\Large\thecontentslabel]{1.25cm}}{}
{\color{steelblue}\normalsize\sffamily\bfseries
\;\titlerule*[.5pc]{.}\;\thecontentspage}
\titlecontents{section}[0cm]
{\addvspace{6pt}\sffamily\bfseries}
{\contentslabel[\thecontentslabel]{1.25cm}}{}
{\sffamily\hfill\color{black}\thecontentspage}[]
问题是我的目录没有创建指向引用页面的任何链接。
因此,为了生成带有链接的目录,我想添加hyperref
包
问题
添加上述包后,我无法确定如何将目录中的章节颜色steelblue
与其他所有组件区分开来。
我找到了一种解决方法,并在以下代码中进行了标记,但我对此并不满意,因为可点击的引用仅放在页码上(而不是chapter/section/...
“标签”上)
\hypersetup{
bookmarksnumbered=true,
bookmarksopen=true,
bookmarksopenlevel=3,
colorlinks,
breaklinks,
linkcolor=blue,
citecolor=blue,
filecolor=black,
linktocpage=true,
}
我的目标
我正在想办法改变只是我的项目目录中章节链接的颜色。
不幸的是,只要放入colorlinks=true
所有hypersetup
内容就会变成单色(默认情况下为红色,但即使使用问题进行更改也linkcolor
仍然相同)。
平均能量损失
main.tex
\documentclass{mybook}
\renewcommand{\familydefault}{\sfdefault}
\setlength{\parindent}{0pt}
\begin{document}
\tableofcontents
%---------------------------------------------------------------------------
% Chapters
%---------------------------------------------------------------------------
\chapter{Chapter 1}
\section{Section 1.1}
\section{Section 1.2}
\chapter{Chapter 2}
\end{document}
mybook.cls
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{mybook}
\LoadClass[11pt]{book}
% Colors
%--------------------------------------------------------------------------
\RequirePackage{xcolor}
\definecolor{steelblue}{RGB}{70,130,180}
% Table of contents styling
%--------------------------------------------------------------------------
\RequirePackage{titletoc}
\setcounter{tocdepth}{2}
\titlecontents{chapter}[0cm]
{\addvspace{14pt}\large\sffamily\bfseries}
{\color{steelblue}\contentslabel[\Large\thecontentslabel]{1.25cm}}{}
{\color{steelblue}\normalsize\sffamily\bfseries
\;\titlerule*[.5pc]{.}\;\thecontentspage}
\titlecontents{section}[0cm]
{\addvspace{6pt}\sffamily\bfseries}
{\contentslabel[\thecontentslabel]{1.25cm}}{}
{\sffamily\hfill\color{black}\thecontentspage}[]
答案1
您可以\hypersetup{<options>}
使用如何对不同的 \href 命令使用不同的颜色?
\titlecontents{chapter}[0cm]
{\hypersetup{linkcolor=black}\color{green}\addvspace{14pt}\large\sffamily\bfseries} %<!---- NEW BIT
{\hypersetup{linkcolor=steelblue}\contentslabel[\Large\thecontentslabel]{1.25cm}} %<!---- NEW BIT
{}
{\normalsize\sffamily\;\color{red}\titlerule*[.5pc]{.}\;\thecontentspage}
下面的代码给出了以下内容:
这是的完整编辑版本mybook.cls
;我标记了新的部分。
书目目录
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{mybook}
\LoadClass[11pt]{book}
% Colors
%--------------------------------------------------------------------------
\RequirePackage{xcolor}
\definecolor{steelblue}{RGB}{70,130,180}
% Table of contents styling
%--------------------------------------------------------------------------
\RequirePackage{titletoc}
\RequirePackage{hyperref} %<!-------- NEW BIT
\setcounter{tocdepth}{2}
%
% default hyperref settings
%
\hypersetup{
bookmarksnumbered=true,
bookmarksopen=true,
bookmarksopenlevel=3,
colorlinks,
breaklinks,
linkcolor=blue,
citecolor=blue,
filecolor=black,
linktoc=all, %<!--------- NEW BIT
}
%
% chapter
%
\titlecontents{chapter}[0cm]
{\hypersetup{linkcolor=black}\color{green}\addvspace{14pt}\large\sffamily\bfseries} %<!---- NEW BIT
{\hypersetup{linkcolor=steelblue}\contentslabel[\Large\thecontentslabel]{1.25cm}} %<!---- NEW BIT
{}
{\normalsize\sffamily\;\color{red}\titlerule*[.5pc]{.}\;\thecontentspage}
%
% section
%
\titlecontents{section}[0cm]
{\hypersetup{linkcolor=yellow}\addvspace{6pt}\sffamily\bfseries} %<!---- NEW BIT
{\hypersetup{linkcolor=orange}\contentslabel[\thecontentslabel]{1.25cm}}%<!---- NEW BIT
{}
{\sffamily\hfill\color{black}\thecontentspage}[]