为文档和目录中的标题着色

为文档和目录中的标题着色

我想为文档和目录中的某些标题添加颜色(突出显示)。以下方法对我来说很好,但目录中的相应条目hyperref(PDF 查看器侧栏中显示的链接)现在以蓝色开头。

\documentclass{article}

\usepackage[
 colorlinks,
 pdfpagelabels,
 bookmarksnumbered, linkcolor = black,
 plainpages = false, hypertexnames = false, citecolor = black,
 urlcolor = blue,
 breaklinks]{hyperref}
\usepackage{color}

\newcommand{\SBlue}[1]{%
\begingroup\color{blue}{\textbf{#1}}\endgroup%
}

\begin{document}

\tableofcontents
\vspace{10em}

\section{Heading 1}
foo
\section{\SBlue{Heading 2}}
bar
\section{Heading 3}
foobar

\end{document}

侧边栏中显示的内容如下:

Heading 1
blueHeading 2
Heading 3

有没有办法修改超链接文本?或者采用完全不同的方法?

--维克

答案1

书签面板的内容PDF不应该由 TeX 宏组成,因此\color{blue}等等都无法PDF理解。

使用\texorpdfstring{\color{blue}{\textbf{#1}}{#1}其中的第二次用法#1将输入PDF书签。

可以用 来控制颜色\bookmarksetup{color=blue,bold},如果不需要粗体,则只需省略它。

\documentclass{article}

\usepackage{xcolor}

\usepackage[
 colorlinks,
 pdfpagelabels,
 bookmarksnumbered, linkcolor = black,
 plainpages = false, hypertexnames = false, citecolor = black,
 urlcolor = blue,
 breaklinks]{hyperref}

\usepackage{bookmark}

\bookmarksetup{color=blue,bold}

\newcommand{\SBlue}[1]{%
%\begingroup
\texorpdfstring{\color{blue}\textbf{#1}}{#1}%
%\endgroup
}

\begin{document}

\tableofcontents
\vspace{10em}

\section{Heading 1}
foo
\section{\SBlue{Heading 2}}
bar
\section{Heading 3}
foobar

\end{document}

答案2

在对 Christian 的解决方案进行一些修改之后,这是我的最终代码:

 \documentclass{article}

 \usepackage[
  colorlinks,
  pdfpagelabels,
  bookmarksnumbered, linkcolor = black,
  plainpages = false, hypertexnames = false, citecolor = black,
  urlcolor = blue,
  breaklinks]{hyperref}
 \usepackage{color}
 \usepackage{bookmark}

 \newcommand{\sectionB}[1]{
 \bookmarksetup{color=[rgb]{0,0,1}, bold}
 \section{\texorpdfstring{\color{blue}\textbf{#1}}{#1}}
 \bookmarksetup{color={}, bold=false}
 }

 \begin{document}

 \tableofcontents
 \vspace{10em}

 \section{Header 1}
 foo
 \sectionB{Header 2}
 bar
 \section{Header 3}
 foobar

 \end{document}

(我只从 xcolor 更改为 color,因为无论如何我已经加载了它并且不想测试对我现有文档的影响。)

相关内容