如何显示与段落右对齐的大章节号,没有 titlesec

如何显示与段落右对齐的大章节号,没有 titlesec

我想在每一章的第一页显示章节名称,后面是一些空格,然后是大数字的章节编号。它应该看起来像下面这样,只是颜色是黑色或深灰色。我的问题是,我找到了一些解决方案,但它们都使用 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 警告,并且这也会导致所有其他页面上的标题也变得更大。

相关内容