我目前正在使用 titlesec 包来通过以下命令个性化我的章节和部分标题:
\documentclass[a4paper, 12pt, twoside, openright, english]{book}
\usepackage{lipsum} % to produce dummy text
\usepackage{fancyhdr}
\usepackage[small,sf]{titlesec}
\pagestyle{fancy}
\fancyhf{}
% \renewcommand{\chaptermark}[1]{\markboth{#1}{}}
% \renewcommand{\sectionmark}[1]{\markright{\thesection~ #1}}
\fancyhead[LE]{$\cdot$~\thepage~$\cdot$\rule{5mm}{0pt}\leftmark}
\fancyhead[RO]{\rightmark\rule{5mm}{0pt}$\cdot$~\thepage~$\cdot$}
\renewcommand{\headrulewidth}{0.4pt}
\titleformat{\section}[hang]{\large\titlerule}
{\sf \thesection}{3mm}{}
\begin{document}
%
\chapter{Basic principles}
\section{Introduction}
\lipsum[3-5] % dummy text
\section{New Style}
\lipsum[6-9] % dummy text
\subsection{Image processing}
\lipsum[3] % dummy text
\end{document}
但是,当章节标题出现在页面顶部时,我希望阻止该包在章节标题上方绘制一条线。我使用 fancyhdr 包在页面标题下方绘制一条线,并且如果新章节从页面顶部开始,则不希望在页面顶部出现重复的线。
有任何想法吗?
答案1
您可以使用前导符,它会在分页符处消失。但是,LaTeX 不直接支持它们,因此必须使用较低级别的功能。
\documentclass[a4paper, 12pt]{book}
\usepackage{lipsum} % to produce dummy text
\usepackage{fancyhdr}
\usepackage[small,sf]{titlesec}
\pagestyle{fancy}
\fancyhf{}
% \renewcommand{\chaptermark}[1]{\markboth{#1}{}}
% \renewcommand{\sectionmark}[1]{\markright{\thesection~ #1}}
\fancyhead[LE]{$\cdot$~\thepage~$\cdot$\rule{5mm}{0pt}\leftmark}
\fancyhead[RO]{\rightmark\rule{5mm}{0pt}$\cdot$~\thepage~$\cdot$}
\renewcommand{\headrulewidth}{0.4pt}
\titleformat{\section}[hang]
{\leaders\vrule width \textwidth\vskip0.4pt \large}
{\sffamily\thesection}
{3mm}
{}
\setlength{\headheight}{14.5pt}
\begin{document}
\chapter{Basic principles}
\section{Introduction}
\lipsum[3-5] % dummy text
\section{New Style}
\lipsum[6-9] % dummy text
\subsection{Image processing}
\lipsum[3] % dummy text
\end{document}