我有一个文档,我曾用polyglossia
它来设置语言和fancyhdr
自定义页眉。这个功能已经用了好几年了,但肯定是更新了一些东西,现在我得到了这个错误:! Package polyglossia Error: language ENGLISH is not loaded. Please load it before using it..
。
经过一番摸索,我把问题缩小到了polyglossia
、fancyhdr
和的组合\MakeUppercase
。如果我\MakeUppercase
从下面的 MWE 中删除,一切都很好——除了我想将标题信息大写。我将不胜感激任何建议。
\documentclass[12pt,letterpaper]{book}
\usepackage[nolocalmarks]{polyglossia}
\setdefaultlanguage{english}
\setotherlanguage[variant=medieval]{latin}
\setotherlanguage[variant=ancient]{greek}
\usepackage{lipsum}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\fancyhead[RO, LE]{\thepage}
\fancyhead[CE]{\MakeUppercase{\leftmark}}
\fancyhead[CO]{\MakeUppercase{\rightmark}}
\renewcommand{\chaptermark}[1]{\markboth{{\textenglish{#1}}}{}}
\renewcommand{\sectionmark}[1]{\markright{#1}{}}
\begin{document}
\chapter{Whatever}
\section{Something}
\lipsum[1-5]
\section{Something else}
\lipsum[6-10]
\chapter{Whatever else}
\section{Foo}
\lipsum[11-15]
\section{Bar}
\lipsum[16-20]
\end{document}
为帮助那些想要提供帮助的人节省时间的两条注意事项:
\uppercase
不会导致错误,但也不会执行任何操作。它似乎被忽略了。\textcase
会\MakeTextUppercase
导致与 相同的错误\MakeUppercase
,大概是因为它只是 的包装器\MakeUppercase
。
答案1
移至\MakeUppercase
和。\chaptermark
\sectionmark
\fancyhead[CE]{\leftmark}
\fancyhead[CO]{\rightmark}
\renewcommand{\chaptermark}[1]{\markboth{{\textenglish{\MakeUppercase{#1}}}}{}}
\renewcommand{\sectionmark}[1]{\markright{\MakeUppercase{#1}}{}}