在 scrbook-class 中使用 titlesec 设置标题的格式和样式

在 scrbook-class 中使用 titlesec 设置标题的格式和样式

我正在尝试用 LaTeX 写一本书scrbookclass 的书。我对使用 TeX 排版不是很有经验,但我想给我的章节标题赋予一种特殊的样式。我在这里找到了一种非常好的样式:http://www.bradleymedia.org/latex-chapter-headings

我可以在文档中重现样式,但无法添加我想要的标题颜色和间距。我现在的问题是,如何为“章节”、章节编号、右侧的线条和章节标题添加特定颜色?

我想要使​​用的代码是:(我希望这个最小的例子能够起作用:D)

\documentclass[a4paper]{scrbook}

\usepackage[english]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage[colorinlistoftodos]{todonotes}

\title{Your Paper}
\author{You}

\usepackage{titlesec}
\usepackage{graphics}

\titleformat{\chapter}[display]
    {\normalfont\Large\raggedleft}
    {\MakeUppercase{\chaptertitlename}%
    \rlap{ \resizebox{!}{1.2cm}{\thechapter} \color{blue}\rule{15cm}{1.2cm} } }
    {10pt}{\Huge}

\titlespacing*{\chapter}{0pt}{30pt}{20pt}

\begin{document}
\chapter{Test-chapter}
\end{document}

如您所见,我找到了一个选项来更改左侧线条的颜色。但我不知道如何更改此标题中其他元素的颜色。

titlesec(另一个小问题:当我与 KOMA 一起使用时会出现警告信息scrbook)。

感谢所有帮助我解决这个问题的人!

答案1

这是不带的建议titlesec。请注意,代码需要 KOMA-Script 版本 3.15 或更新版本。

\documentclass[a4paper,chapterprefix]{scrbook}

\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{xcolor}

\colorlet{chaptercolor}{blue!80!black}

\setkomafont{chapter}{\normalfont\color{chaptercolor}\Huge}
\setkomafont{chapterprefix}{\Large}
\renewcommand*{\raggedchapter}{\raggedleft}
\renewcommand*{\chapterformat}{%
  \MakeUppercase{\chapappifchapterprefix{}}%
  \rlap{\enskip\resizebox{!}{1.2cm}{\thechapter} \rule{15cm}{1.2cm} }%
}

\RedeclareSectionCommand[beforeskip=30pt,afterskip=20pt]{chapter}
\renewcommand*\chapterheadmidvskip{\par\nobreak\vspace{10pt}}

%\usepackage{showframe}% to show the page layout
\usepackage{blindtext}% dummy text
\begin{document}
\blinddocument
\end{document}

在此处输入图片描述


使用旧版本的 KOMA-Script,您可以尝试以下代码来获得类似的结果。

\documentclass[a4paper,chapterprefix]{scrbook}

\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{xcolor}

\colorlet{chaptercolor}{blue!80!black}

\setkomafont{chapter}{\normalfont\color{chaptercolor}\Huge\raggedleft}
\setkomafont{chapterprefix}{\Large}
\renewcommand*{\chapterformat}{%
  \makebox[\linewidth][r]{\MakeUppercase{\chapappifchapterprefix{}}}%
  \rlap{\enskip\resizebox{!}{1.2cm}{\thechapter} \rule{15cm}{1.2cm} }%
}

\renewcommand*\chapterheadstartvskip{\vspace{20pt}}
\renewcommand*\chapterheadendvskip{\vspace{20pt}}

%\usepackage{showframe}% to show the page layout
\usepackage{blindtext}% dummy text
\begin{document}
\blinddocument
\end{document}

答案2

我找到了一个实现所有元素着色的解决方案:我只是在字体设置中添加了具有预定义颜色的 \color{myblue}。

\titleformat{\chapter}[display]
{\normalfont\Large\raggedleft\color{myblue}}
{\MakeUppercase{\chaptertitlename}%
\rlap{ \resizebox{!}{1.2cm}{\thechapter} \color{myblue}\rule{15cm}{1.2cm} } }
{10pt}{\Huge}

我想要应用的下一个格式化功能是减小标题与页面顶部之间的距离。有人知道如何实现吗?

再次感谢您的帮助!

相关内容