显然,最近的更新不再允许\leftmark
重新格式化:
\documentclass[10pt, openany]{book}
\usepackage{fancyhdr}
\AtBeginDocument{%
\pagestyle{fancy}
\fancypagestyle{stylemain} {%
\fancyhf{}
\fancyhead[C]{\nouppercase{\leftmark}}
}
}
\begin{document}
% \pagestyle{stylemain}
\chapter{chap 2}
\newpage
Lorem Ipsum Dolor blah blah blah
\MakeLowercase{\leftmark}
\end{document}
我刚刚更新了大约 90 多个软件包后才注意到此行为,所以我不知道是什么导致了此问题。有没有办法打印相同的内容并能够更改大小写?
答案1
fancyhdr 的命令\nouppercase
通过重新定义 的一些内部命令来工作\MakeUppercase
。由于 的定义\MakeUppercase
在 LaTeX 中发生了变化,它现在失败了。也fancyhdr
必须在本地进行无操作。但正如 egreg 在他的命令中所写,更好的方法是从一开始就正确\text_uppercase:nn
设置。\chaptermark
\documentclass[10pt, openany]{book}
\usepackage{fancyhdr}
\AtBeginDocument{%
\pagestyle{fancy}
\fancypagestyle{stylemain} {%
\fancyhf{}
\fancyhead[C]{\nouppercase{\leftmark}}
}
}
\usepackage{etoolbox}
\makeatletter
\patchcmd\f@nch@reset
{\MakeUppercase\relax}
{\MakeUppercase\relax
\expandafter\let\csname text_uppercase:nn\endcsname\relax}
{}{\fail}
\makeatother
\begin{document}
\pagestyle{stylemain}
\chapter{ChaP 2}
\newpage
Lorem Ipsum Dolor blah blah blah
\end{document}
关于\MakeLowercase{\leftmark}
:恕我直言,这种嵌套从来没有起作用。
如果需要,您应该使用来自 L3 层(eplx3)的底层命令:
\documentclass{book}
\begin{document}
\ExplSyntaxOn
\text_lowercase:n {\text_uppercase:n{aBcD}}
\ExplSyntaxOff
\MakeLowercase{\MakeUppercase{aBcD}}
\end{document}