彩色下划线部分标题

彩色下划线部分标题

我想使用不同的颜色为节标题加下划线(例如,红色表示节,黄色表示子节)。到目前为止,我只实现了更改标题的文本颜色(参见代码),但我想为标题加下划线,然后更改线条颜色,同时保持文本颜色为黑色。

\documentclass[a4paper,12pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[colorlinks=true]{hyperref}

\addtokomafont{section}{\color{red}}
\addtokomafont{subsection}{\color{yellow}}

\begin{document}
\section{Section}
\subsection{Subsection}
\end{document}

附言:我不知道为什么代码示例需要\usepackage[colorlinks=true]{hyperref},但没有它就无法编译。

答案1

更新

自 KOMA-Script 版本 3.19 起,\sectionlinesformat可以重新定义命令以使用包获得所需的结果ulem

\documentclass[a4paper,12pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{xcolor}
\usepackage[normalem]{ulem}
\usepackage{blindtext}

\makeatletter
\renewcommand{\sectionlinesformat}[4]{%
  \ifstr{#1}{section}
    {\colorlet{ulinecolor}{red}}
    {\ifstr{#1}{subsection}{\colorlet{ulinecolor}{green}}
      {\colorlet{ulinecolor}{.}}}%
  \@hangfrom{\hskip #2\expandafter\sectionuline\expandafter{#3}}{\expandafter\sectionuline\expandafter{#4}}%
}
\makeatother

\newcommand\sectionuline{%
  \bgroup\markoverwith{\textcolor{ulinecolor}{\rule[-0.75ex]{2pt}{0.4pt}}}%
  \ULon%
}
\colorlet{ulinecolor}{black}

\addtokomafont{section}{\Huge}

\begin{document}
\section{Really long section title that needs more than one line}
\subsection{Subsection}
\subsubsection{Subsubsection}
\end{document}

结果是

在此处输入图片描述


原始答案

如果您只想为线条着色,您可以加载包ulem并按照手册中的建议为彩色线条定义新命令:

\newcommand\sectionuline{%
  \bgroup\markoverwith{\textcolor{red}{\rule[-0.5ex]{2pt}{0.4pt}}}%
  \ULon%
}
\newcommand\subsectionuline{%
  \bgroup\markoverwith{\textcolor{blue}{\rule[-0.5ex]{2pt}{0.4pt}}}%
  \ULon%
}

然后,您可以通过以下方式将这些命令添加到字体设置中sectionsubsection

\addtokomafont{section}{\sectionuline}
\addtokomafont{subsection}{\subsectionuline}

警告:\...uline必须是最后添加到字体设置的命令,因为它们带有参数。此外,这些\...uline命令是格式化命令,因此这有点像字体设置的误用。

在此处输入图片描述

代码:

\documentclass[a4paper,12pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{xcolor}
\usepackage{ulem}

\newcommand\sectionuline{%
  \bgroup\markoverwith{\textcolor{red}{\rule[-0.5ex]{2pt}{0.4pt}}}%
  \ULon%
}
\newcommand\subsectionuline{%
  \bgroup\markoverwith{\textcolor{blue}{\rule[-0.5ex]{2pt}{0.4pt}}}%
  \ULon%
}

\addtokomafont{section}{\sectionuline}
\addtokomafont{subsection}{\subsectionuline}

\begin{document}
\section{Section}
\subsection{Subsection}
\end{document}

答案2

感谢大家的贡献。有一段时间,我一直在寻找一种最简单的(不使用 koma )方法来在不影响章节标题的情况下为节和小节加下划线,我找到了一些关于此的讨论,但我总是遇到麻烦并影响章节标题。最后,它对我有用,希望这对其他人有帮助……

\usepackage{titlesec}
\usepackage{xcolor}
\usepackage[normalem]{ulem}

\titleformat{\chapter}[display]
{\normalfont\huge\bfseries\centering\color{blue}}{\sc{\chaptertitlename\ \thechapter}}{20pt}{\Huge}

\titlespacing*{\chapter}
    {15pt}
    {15pt}
    {50pt}
\titleformat{\section} {\normalfont\Large\bfseries\raggedright}{\thesection}{1em}{\uline}

\titleformat{\subsection}{\normalfont\large\bfseries\raggedright}{\thesubsection}{1em}{\uline}

相关内容