Fancyhdr 和 leftmark/rightmark 的重新定义

Fancyhdr 和 leftmark/rightmark 的重新定义

我正在写一篇长文档,并决定更改标题,使用fancyhdr

\documentclass[12pt,a4paper]{book}

\renewcommand*\thesection{\arabic{section}}

\usepackage{fancyhdr}
% Fancyhdr setup
\fancypagestyle{main}{
\fancyhead{} % clear all header fields
\fancyhead[LE]{\footnotesize{\scshape\nouppercase{Chapitre~\thechapter ~-    ~\leftmark}}}
\fancyhead[RO]{\footnotesize{\scshape\nouppercase{\thesection~-~\rightmark}}}
\fancyfoot{} % clear all footer fields
\fancyfoot[LE,RO]{\thepage}
\renewcommand{\headrulewidth}{0 pt}
\renewcommand{\footrulewidth}{0 pt}
\renewcommand{\sectionmark}[1]{\markright{#1}}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
}
\begin{document}
\end{document}

问题是这段代码不能编译,问题出在这两行:

\renewcommand{\sectionmark}[1]{\markright{#1}}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}

为了解决这个问题,我只是把它们放在main标题定义之外,但是并没有给出相同的结果。

我应该如何在不更改标题的情况下修复此错误?

附言:我希望页眉位于右页,如“3 - 章节标题”,位于左页(章节开头除外),如“第 1 章 - 章节标题”

谢谢。

答案1

使用后重新定义\chaptermark\sectionmark在页面样式定义之外\pagstyle{fancy}

\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\sectionmark}[1]{\markright{\thesection~- ~#1}}
\renewcommand{\chaptermark}[1]{\markboth{\chaptername~\thechapter~-~ #1}{}}

在此处输入图片描述

代码:

\documentclass[12pt,a4paper,french]{book}
\renewcommand*\thesection{\arabic{section}}
\usepackage[T1]{fontenc}
\usepackage{babel}

\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\sectionmark}[1]{\markright{\thesection~- ~#1}}
\renewcommand{\chaptermark}[1]{\markboth{\chaptername~\thechapter~-~ #1}{}}

% Fancyhdr setup
\fancypagestyle{main}{
\fancyhf{} % clear all header fields
\fancyhead[LE]{\footnotesize\scshape\leftmark}
\fancyhead[RO]{\footnotesize\scshape\rightmark}
\fancyfoot[LE,RO]{\thepage}
\renewcommand{\headrulewidth}{0 pt}
\renewcommand{\footrulewidth}{0 pt}
}

\pagestyle{main}

\usepackage{blindtext}% dummy text
\begin{document}
\blinddocument
\end{document}
\documentclass[extrafontsizes]{memoir}
\InputIfFileExists{scrsize10pt.clo}{}
%\usepackage[fontsize=13pt]{scrextend}
\usepackage{garamondx}
\begin{document}
test
\end{document}

相关内容