我正在写一篇长文档,并决定更改标题,使用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}