polyglossia 加上 fancyhdr 加上 MakeUppercase 会导致 polyglossia 出现错误

polyglossia 加上 fancyhdr 加上 MakeUppercase 会导致 polyglossia 出现错误

我有一个文档,我曾用polyglossia它来设置语言和fancyhdr自定义页眉。这个功能已经用了好几年了,但肯定是更新了一些东西,现在我得到了这个错误:! Package polyglossia Error: language ENGLISH is not loaded. Please load it before using it..

经过一番摸索,我把问题缩小到了polyglossiafancyhdr和的组合\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}

为帮助那些想要提供帮助的人节省时间的两条注意事项:

  1. \uppercase不会导致错误,但也不会执行任何操作。它似乎被忽略了。
  2. \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}}{}}

相关内容