在开始页面时删除部分规则

在开始页面时删除部分规则

我目前正在使用 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} 

在此处输入图片描述

相关内容