.pdf 层次“树”链接中的颜色名称出现在 \section 名称之前

.pdf 层次“树”链接中的颜色名称出现在 \section 名称之前

我正在使用该软件包xcolor提供彩色\section标题。它看起来很棒,但是当我制作 .pdf 时,颜色名称出现在 .pdf 的超链接组织“树”中的部分名称之前。

例如,在我的 .pdf 阅读器的左窗格中,我看到以下内容:

森林绿色简介

我希望它这样写:

介绍

我可以以某种方式隐藏颜色名称吗?

答案1

使用\textcolor代替\color应该可以工作:替换

\section{\color{ForestGreen}Rhetoric And Composition}

经过

\section{\textcolor{ForestGreen}{Rhetoric And Composition}}

请记住,为其他人添加一个总是有帮助的最小工作示例回答你的问题。就你的情况而言,它可能看起来像(如果我理解正确的话):

\documentclass{article}
\usepackage[usenames,dvipsnames,svgnames,table]{xcolor}
\usepackage{hyperref}

\begin{document}

\tableofcontents

\section{\color{ForestGreen}Rhetoric And Composition}

\end{document}

编辑:如果您想坚持\color,还有这个解决方案:

{\color{ForestGreen}\section{Rhetoric And Composition}}

请注意,在这种情况下,章节标题不会在目录中以彩色显示,只会在正文中显示。

答案2

接受的答案会起作用(我不建议你不接受它:-)但是在节标题中使用颜色命令是错误的,原因与你应该使用 \section而不是只是去{\large\textbf{section 1}}

您应该将颜色变化视为字体变化,并且如果您的文档样式表明章节标题应采用大号粗体绿色字体,则该定义的绿色位应与大号和粗体位指定在相同的位置,这在类\section提供的定义中。

article类定义

\newcommand\section{\@startsection {section}{1}{\z@}%
                                   {-3.5ex \@plus -1ex \@minus -.2ex}%
                                   {2.3ex \@plus.2ex}%
                                   {\normalfont\Large\bfseries}}

所以如果你有

\makeatletter
\renewcommand\section{\@startsection {section}{1}{\z@}%
                                   {-3.5ex \@plus -1ex \@minus -.2ex}%
                                   {2.3ex \@plus.2ex}%
                                   {\normalfont\Large\bfseries\color{ForestGreen}}}
\makeatother

你可以去

\section{Rhetoric And Composition}

并获得大号​​粗体绿色文本,而不会扭曲章节标题的逻辑性质(然后可以将其用于其他目的,在目录和页眉中使用其他大小和颜色)

答案3

Corentin Herbert 的回答补充:

\documentclass{article}
\usepackage[dvipsnames]{xcolor}
\usepackage{hyperref}
\usepackage{bookmark}
\pdfstringdefDisableCommands{%
  \def\color#1#{\@gobble}%
}
\begin{document}
\section{\color{ForestGreen}Hello World}
\end{document}

如果包含数字的部分标题应该以这种方式着色,那么还有更好的方法,例如:

\documentclass{article}
\usepackage[dvipsnames]{xcolor}
\usepackage{titlesec}
\usepackage{hyperref}
\usepackage{bookmark}
\bookmarksetup{
  numbered,
  open,
  addtohook={%
    \ifnum\bookmarkget{level}=1 %
      \bookmarksetup{color=ForestGreen}%
    \fi
  },
}
\titleformat*{\section}{\color{ForestGreen}}

\begin{document}
\tableofcontents
\section{Hello World}
\subsection{Foobar}
\end{document}

该示例还使用颜色作为部分书签。

结果

答案4

如果你只想改变一个部分的颜色,你可以使用

\section[<Text>]{\color{<color>}<text>}

可选部分中的文本,即[<Text>]用于上下文表和类似内容。该解决方案的一个问题是它不会更改节号的颜色。为此,您必须重新定义命令\sectiontitlesec包提供了简单的方法来做到这一点。

相关内容