\part
我想通过定制包装来获取左边偶数页的主题内容fancyhdr
。
我非常怀疑它与babel
法语存在包装冲突。
\documentclass[a4paper,12pt,twoside]{book}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{fancyhdr}
\usepackage{lipsum} \makeatletter
\pretocmd{\@part}{\gdef\parttitle{#1}}{}{}
\pretocmd{\@spart}{\gdef\parttitle{#1}}{}{}
\makeatother
\pagestyle{fancy}
\renewcommand{\rightmark}{\parttitle}
\fancyhf{}
\fancyhead[LE,RO]{\LaTeX}
\fancyhead[RE,LO]{Stackexchange}
\fancyfoot[CE,CO]{\leftmark}
\fancyfoot[LE,RO]{\thepage}
\fancyfoot[LO]{eftpart\l}
\begin{document}
\chapter{Questions}
\part{Ask Question}
\lipsum
\end{document}
在日志文件中,我有以下错误消息:
! Undefined control sequence.
l.6 \pretocmd
{\@part}{\gdef\parttitle{#1}}{}{}
答案1
错误信息很明确:命令 \pretocmd
无法识别。发生这种情况只是因为您没有加载etoolbox
包。
babel
与您的错误无关。
此外,我已经将其更改
\fancyfoot[LO]{eftpart\l}
为, \fancyfoot[LO]{\thepart}
因为我认为其中存在错误,eftpart\l
但我不知道您的意图是什么。
顺便说一句,“部分”包含许多章节,而不是相反(我在你的 MWE 中颠倒了顺序)。
\documentclass[a4paper,12pt,twoside]{book}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}\usepackage{etoolbox}
\usepackage{fancyhdr}
\usepackage{lipsum} \makeatletter
\pretocmd{\@part}{\gdef\parttitle{#1}}{}{}
\pretocmd{\@spart}{\gdef\parttitle{#1}}{}{}
\makeatother
\pagestyle{fancy}
\renewcommand{\rightmark}{\parttitle}
\fancyhf{}
\fancyhead[LE,RO]{\LaTeX}
\fancyhead[RE,LO]{Stackexchange}
\fancyfoot[CE,CO]{\leftmark}
\fancyfoot[LE,RO]{\thepage}
\fancyfoot[LO]{\thepart}
\begin{document}
\part{Question}
\chapter{Ask Question}
\lipsum
\end{document}