我想在每一章的第一页显示章节名称,后面是一些空格,然后是大数字的章节编号。它应该看起来像下面这样,只是颜色是黑色或深灰色。我的问题是,我找到了一些解决方案,但它们都使用 titlesec,但我使用的是 fancyhdr,它似乎不兼容。我正在使用scrreprt
,无法切换到 memoir。同样重要的是,只有章节受到影响,而不是目录或图表列表。
我真的很喜欢这个例子,但我不明白如何使数字看起来不同(更像图片中的数字)以及如何将数字与段落对齐。
答案1
以下是根据问题中链接的代码提出的建议:
\documentclass
%[parskip=half]
{scrreprt}
\usepackage{lipsum}% only for dummy text
\usepackage{xcolor}
\usepackage{graphicx}
\usepackage{etoolbox}
\colorlet{feline}{darkgray}% change the color of chapter numbers here
\makeatletter
\newsavebox{\feline@chapter}
\newcommand\feline@chapter@marker[1][4cm]{%
\sbox\feline@chapter{%
\resizebox{!}{#1}{\setlength{\fboxsep}{0pt}%
\colorbox{white}{\color{feline}\usefont{U}{eur}{m}{n}\thechapter}}}% change the font of chapter numbers here
\raisebox{\depth}{\usebox{\feline@chapter}}%
}
\renewcommand*{\chapterformat}{%
\sbox\feline@chapter{\feline@chapter@marker[1.61cm]}% adjust the height of chapter numbers here
\makebox[0pt][l]{%
\makebox[\textwidth][r]{%
\usebox\feline@chapter}}%
}
\renewcommand\chapterlinesformat[3]{%
\Ifstr{#1}{chapter}
{#2\parbox[b]{\dimexpr\textwidth-\wd\feline@chapter-1em\relax}{\raggedchapter #3}}
{\@hangfrom{#2}{#3}}%
}
\makeatother
\preto\chapterheadendvskip{%
\vspace*{-\parskip}%
{\noindent\setlength\parfillskip{0pt plus 1fil}\rule{\textwidth}{.4pt}\par}%
}
\begin{document}
\tableofcontents
\chapter{Ten}
\lipsum
\chapter{Lorem ipsum dolor sit amet, consectetuer adipiscing elit}
\lipsum
\end{document}
parskip=half
即使您设置了或 之类的选项,它也有效parskip=full
。
关于以下评论的更新
如果要为章节标题下方的线条着色,请定义一种颜色并将其用于规则:
...
\colorlet{felinerule}{red}
...
... \textcolor{felinerule}{\rule{\textwidth}{.4pt}} ...
...
如果只有编号章节应使用改变后的布局:
\documentclass
%[parskip=half]
{scrreprt}
\usepackage{lipsum}% only for dummy text
\usepackage{xcolor}
\usepackage{graphicx}
\usepackage{etoolbox}
\colorlet{feline}{darkgray}% change the color of chapter numbers here
\colorlet{felinerule}{red}
\makeatletter
\newsavebox{\feline@chapter}
\newcommand\feline@chapter@marker[1][4cm]{%
\sbox\feline@chapter{%
\resizebox{!}{#1}{\setlength{\fboxsep}{0pt}%
\colorbox{white}{\color{feline}\usefont{U}{eur}{m}{n}\thechapter}}}% change the font of chapter numbers here
\raisebox{\depth}{\usebox{\feline@chapter}}%
}
\renewcommand*{\chapterformat}{%
\sbox\feline@chapter{\feline@chapter@marker[1.61cm]}% adjust the height of chapter numbers here
\makebox[0pt][l]{%
\makebox[\textwidth][r]{%
\usebox\feline@chapter}}%
}
\newif\ifchapterrule
\renewcommand\chapterlinesformat[3]{%
\global\chapterrulefalse
\Ifstr{#1}{chapter}
{\IfArgIsEmpty{#2}
{\@hangfrom{#2}{#3}}% unnumbered chapters: original definition
{#2\parbox[b]{\dimexpr\textwidth-\wd\feline@chapter-1em\relax}{\raggedchapter #3}%
\IfArgIsEmpty{#2}{}{\global\chapterruletrue}%
}%
}
{\@hangfrom{#2}{#3}}% other sectioning levels with style=chapter: original definition
}
\makeatother
\preto\chapterheadendvskip{%
\ifchapterrule
\vspace*{-\parskip}%
{\noindent\setlength\parfillskip{0pt plus 1fil}\textcolor{felinerule}{\rule{\textwidth}{.4pt}}\par}%
\fi
}
\begin{document}
\tableofcontents
\chapter{Ten}
\lipsum
\chapter{Lorem ipsum dolor sit amet, consectetuer adipiscing elit}
\lipsum
\end{document}
答案2
改进答案
\documentclass[chapterprefix=off]{scrreprt}
\usepackage{lipsum}
\usepackage{anyfontsize}
\newcommand{\HUGE}{\fontsize{40}{44pt}\selectfont}
\renewcommand{\chapterlinesformat}[3]
{\mbox{#3}\hfill\HUGE{\mbox{\thechapter}}\\[10pt]
\hrulefill
}
\begin{document}
\chapter{First}
\lipsum
\end{document}
以下是未解决问题的原始答案。我只是将其保留以供参考。
您可以设置plain
页面样式以在每章的第一页生成此标题:
\documentclass{scrreprt}
\usepackage{lipsum}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancypagestyle{plain}{%
\fancyhead[L]{\LARGE\textbf{\leftmark}}
\fancyhead[R]{\Huge\textbf{\arabic{chapter}}}
}
\setlength{\headheight}{30pt}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\begin{document}
\chapter{First}
\lipsum
\end{document}
请注意,必须\headheight
增加以避免令人讨厌的 LaTeX 警告,并且这也会导致所有其他页面上的标题也变得更大。