考虑以下 mwe:
\documentclass[oneside]{book}
\usepackage{fancyhdr}
\renewcommand{\sectionmark}[1]{\markright{#1}}
\begin{document}
\section{This is a section title with a long final woorddddddd}
\end{document}
结果如下
如您所见,最后一个单词被连字符连接,第一行只剩下两个字母。对我来说,一个更好的解决方案是拉伸标题的起始部分,使其填满第一行,并将最后一个单词完全移到第二行。
与此同时,我仍然喜欢页面标题的外观,任何修复都应该针对部分标题进行。例如,将调用更改\section
为
\section{This is a section title with a long final\\ woorddddddd}
产生以下输出
作为一种解决方法,我认为我可以\markright
在调用之前和之后调用\section
(基本上我可以手动修复标题中任何难看的空间)。有没有更好/更干净的解决方案?
答案1
解决方案如下命令:
\section[This is a section title with a long final woorddddddd]
{This is a section title with a long final\\ woorddddddd}
仅适用于罕见或独特的情况。更通用的解决方案可能是这样的:
\usepackage{etoolbox}
\pretocmd{\section}{\raggedright}{}{}
平均能量损失
\documentclass[oneside]{book}
\usepackage{fancyhdr}
\renewcommand{\sectionmark}[1]{\markright{#1}}
\usepackage{etoolbox}
\pretocmd{\section}{\raggedright}{}{}
\begin{document}
\section{This is a section title with a long final woorddddddd}
\end{document}