备用花式页眉?左页 = 页码 + 章节,右页 = 页码 + 部分?

备用花式页眉?左页 = 页码 + 章节,右页 = 页码 + 部分?

我目前使用 fancyhdr 在每页上显示章节名称和页码。但是,我想更改它,以便它在左页显示章节,在右页显示部分。我知道如何手动执行此操作,但这会花费很长时间。有没有快速简便的方法可以做到这一点?

另外,我希望能够添加和更改页面底部的水平线。我猜 0.5 倍文本宽度就够了,但我可能想稍后更改它。另外,我不希望字体全部大写,也不想在顶部包含“第 N 章:”。从顶部删除页码也不错。

因此,在左页上:章节名称,下方的文本宽度处有一条线,然后在右页上,是部分名称。我希望这两个标题都在页面的内部。然后,在底部,我想要一条水平线,下方的中央是页码。

答案1

使用新的现代包scrlayer-scrpage可以满足您的所有需求。当然,您fancyhdr也可以将其用于您的文档。使用可以非常轻松地更改规则的长度, scrlayer-scrpage但使用时需要付出更多努力,fancyhdr因为默认宽度与同步headwidth

\documentclass[twoside,
footsepline,plainfootsepline,
headsepline]{report}
\usepackage{blindtext}
\usepackage[automark,clines,markcase=nouppercase]{scrlayer-scrpage}
\clearpairofpagestyles
\cfoot[\pagemark]{\pagemark}
\ihead{\headmark}
\KOMAoption{footsepline}{:.5\textwidth}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\usepackage{showframe}
\begin{document}
\blinddocument
\end{document}

使用fancyhdr

\documentclass[twoside,draft]{report}
\usepackage{fancyhdr}
\newlength{\footrulelength}
\setlength{\footrulelength}{.5\textwidth}

\usepackage{showframe}
\makeatletter
\def\footrule{
    \if@fancyplain\let\footrulewidth\plainfootrulewidth%
    \fi%
    \vskip-\footruleskip\vskip-\footrulewidth%
    \null\hfill%
    \rule{\footrulelength}{\footrulewidth}\hfill\null%
    \vskip\footruleskip%
}
\makeatother
\fancypagestyle{plain}{%
    \fancyhf{}
    \fancyfoot[c]{\thepage}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{.4pt}
}

\usepackage{blindtext}
\fancyhf{}
\fancyhead[ER]{\rmfamily\leftmark}
\fancyhead[OL]{\rmfamily\rightmark}
\fancyfoot[c]{\thepage}
\pagestyle{fancy}
\renewcommand{\footrulewidth}{.4pt}
\renewcommand{\plainfootrulewidth}{.4pt}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\begin{document}
\blinddocument
\end{document}

相关内容