我想在\documentclass{book}
使用sectsty
包时使用不同的颜色来表示部分编号和部分名称。部分编号必须放在颜色框中。给我一个想法。
答案1
我认为sectsty
不太适合这项任务。我建议你titlesec
包。一个小例子(根据你的喜好调整颜色):
\documentclass{book}
\usepackage{titlesec}
\usepackage{xcolor}
\colorlet{sectitlecolor}{red!60!black}
\colorlet{sectboxcolor}{cyan!30}
\colorlet{secnumcolor}{orange}
\titleformat{\section}
{\normalfont\Large\bfseries\color{sectitlecolor}}{\colorbox{sectboxcolor}{\textcolor{secnumcolor}{\thesection}}}{1em}{}
\begin{document}
\chapter{A test chapter}
\section{A test section}
\end{document}
在评论中,有人要求将章节编号移至左边距:
\documentclass{book}
\usepackage{titlesec}
\usepackage{xcolor}
\colorlet{sectitlecolor}{red!60!black}
\colorlet{sectboxcolor}{cyan!30}
\colorlet{secnumcolor}{orange}
\titleformat{\section}
{\normalfont\Large\bfseries\color{sectitlecolor}}{\llap{\makebox[3em][l]{\colorbox{sectboxcolor}{\textcolor{secnumcolor}{\thesection}}}}}{0em}{}
\begin{document}
\chapter{A test chapter}
\section{A test section}
\end{document}
答案2
是的,您可以使用 来完成此操作sectsty
,但您需要更改 的定义\@seccntformat
,它负责打印章节编号。
请注意,这也将为小节和小小节标题涂上相同的颜色;当然也可以为它们定义不同的颜色或方框。
我使用了与 Gonzalo 相同的设置。
\documentclass{book}
\usepackage{sectsty,xcolor}
\colorlet{sectitlecolor}{red!60!black}
\colorlet{sectboxcolor}{cyan!30}
\colorlet{secnumcolor}{orange}
\sectionfont{\color{sectitlecolor}}
\makeatletter
\renewcommand\@seccntformat[1]{%
\colorbox{sectboxcolor}{\textcolor{secnumcolor}{\csname the#1\endcsname}}%
\quad
}
\makeatother
\begin{document}
\chapter{A test chapter}
\section{A test section}
\end{document}