我正在使用该软件包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>]
用于上下文表和类似内容。该解决方案的一个问题是它不会更改节号的颜色。为此,您必须重新定义命令\section
。titlesec
包提供了简单的方法来做到这一点。