在scrbook
文档中,我需要将章节标题设置为靠近上页边距,不带前导数字,\hrule
后面带有数字。重新定义\chapterheadstartvskip
可以解决页边距问题,但无法解决 hrule 问题并省略数字。titlesec
我可以设置 \hrule 和数字,但无法将标题移到上页边距。我在设置中遗漏了什么吗titlesec
?
\documentclass[]{scrbook}
\usepackage[a5paper]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{booktabs}
\usepackage[]{blindtext}
% is ignored when titlesec is used
\renewcommand*{\chapterheadstartvskip}{\vspace*{-4\topskip}}
\renewcommand*{\chapterheadendvskip}{}
\usepackage[]{titlesec}
\titleformat{\chapter}[hang]{\huge\sffamily\bfseries}{}{0pt}{}[\hrule\vspace*{-24pt}]
\begin{document}
\chapter{Foobar}
\blindtext
\end{document}
答案1
喜欢马可·丹尼尔在他的评论中说:你不需要titlesec
。通过重新定义,\chapterheadendvskip
您可以获得规则,通过重新定义,\chapterformat
您还可以摆脱数字。
\documentclass[a5paper]{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[]{blindtext}
\usepackage{xcolor}
\renewcommand*\chapterheadstartvskip{\vspace*{-4\topskip}}
\renewcommand*\chapterheadendvskip{%
\vskip-.5\baselineskip
\noindent
{\color{gray}\rule{\linewidth}{2pt}}%
\par}
\renewcommand*\chapterformat{}
\begin{document}
\chapter{Foobar}
\blindtext
\chapter{Blah}
\blindtext
\end{document}