有没有办法让大写的章节名称在 fancyhdr 中仅以首字母大写的形式显示?
我的部分名称是 HELLO,我希望它在标题中显示为 Hello(小写大写)。
这姆菲斯特克包似乎没有提供已经大写的字母的选项,所以我\MakeLowercase
在应用\xcapitalisewords
或之前尝试使用\capitalisewords
,但它似乎并不那么简单。
有任何想法吗?
梅威瑟:
\documentclass[11pt]{article}
\usepackage{fancyhdr}
\usepackage{blindtext}
\usepackage{mfirstuc}
\fancypagestyle{normal}{%
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\fancyhead[LO]{\raisebox{-3pt}{\xcapitalisewords{\MakeLowercase\footnotesize\leftmark}}\quad\hrulefill\qquad}
\fancyhead[RO, LE]{\raisebox{-3pt}{\footnotesize\thepage}}}
\pagestyle{normal}
\renewcommand{\sectionmark}[1]{\markboth{#1}{}}\renewcommand{\subsectionmark}[1]{\markright{#1}{}}
\begin{document}
\section{HELLO}
\blindtext
\end{document}
编辑 1.这就是我想要的。
答案1
\leftmark 是一个相当复杂的命令。最好更改 \markboth 命令中的文本。
\documentclass[11pt]{article}
\usepackage{fancyhdr}
\usepackage{blindtext}
\usepackage{mfirstuc}
\fancypagestyle{normal}{%
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\fancyhead[LO]{\raisebox{-3pt}{\scshape\footnotesize\leftmark}\quad\hrulefill\qquad}
\fancyhead[RO, LE]{\raisebox{-3pt}{\footnotesize\thepage}}}
\pagestyle{normal}
\ExplSyntaxOn
\renewcommand{\sectionmark}[1]{\markboth{\text_titlecase:n{#1}}{}}
\ExplSyntaxOff
\renewcommand{\subsectionmark}[1]{\markright{#1}{}}
\begin{document}
\section{HELLO}
\blindtext
\end{document}
答案2
在我看来,你应该反过来做:正常输入章节标题并在打印时将其大写,这样你就可以完全控制标题。
\documentclass[11pt,twoside]{article}
\usepackage{fancyhdr}
\usepackage{titlesec}
\usepackage{blindtext}
\titleformat{\section}
{\normalfont\Large\bfseries}
{\thesection}
{1em}
{\MakeUppercase}
\fancypagestyle{normal}{%
\fancyhf{}%
\renewcommand{\headrulewidth}{0pt}%
\fancyhead[LO]{\footnotesize\leftmark\quad\xhrulefill[3pt]\qquad}%
\fancyhead[RE]{\footnotesize\qquad\xhrulefill[3pt]\quad\rightmark}%
\fancyhead[RO, LE]{\footnotesize\thepage}%
}
\pagestyle{normal}
\renewcommand{\sectionmark}[1]{\markboth{#1}{}}
\renewcommand{\subsectionmark}[1]{\markright{#1}}
\newcommand{\xhrulefill}[1][0pt]{%
\leavevmode\leaders\hrule height\dimexpr0.4pt+#1\relax depth-#1 \hfill\kern0pt
}
\begin{document}
\section{Hello}
\blindtext
\blindtext
\blindtext
\blindtext
\blinddocument
\end{document}
我添加了提高规则的代码,这比降低其他部分要好。