如何使文本在页面标题中居中?

如何使文本在页面标题中居中?

我正在使用\markright创建页面标题。我无法将一些文本居中放置在此标题中,我想知道如何做到这一点。

这是我当前的设置:

\documentclass{article}

\newcommand{\TitleString}{This Is The Title}

\begin{document}

\pagestyle{myheadings}

\markright{\TitleString \hfill Matt Groff \hfill}

Title and copyright are above.

\end{document}

我习惯\hfill填充空格,这样我的名字就接近居中,但对于大标题来说,它就偏离了。有办法解决这个问题吗?我希望我的名字完全居中。

答案1

下面是 Geoffrey 解决方案的简化版本,它避免了\protect和 的加倍\TitleString

\documentclass{article}

\newcommand{\TitleString}{This Is A Rather Long Title}

\begin{document}

\pagestyle{myheadings}

\markright{\rlap{\TitleString}\hfill Matt Groff\hfill}

Title and copyright are above.

\end{document}

(请注意,!之前没有空格\hfill

解释:\rlap写入文本但仅“将其重叠到右侧”,而不占用任何空间。

答案2

用来\phantom“平衡”你的标题行,如下所示:

\documentclass{article}
\usepackage[pass,showframe]{geometry}  % <-- help to see what's going on

\newcommand{\TitleString}{This Is A Rather Long Title}

\begin{document}

\pagestyle{myheadings}

\markright{\TitleString \hfill%
            Matt Groff%
            \hfill\protect\phantom{\TitleString}}

Title and copyright are above.

\end{document}

答案3

我通常的选择是fancyhdr包裹:

\documentclass{article}
\usepackage{fancyhdr}
\pagestyle{fancy}
\lhead{This is a title}
\chead{Mark Groff}
\renewcommand*\headrulewidth{0.0 pt}
\begin{document}
Hello world
\end{document}

答案4

强制性的 ConTeXt 解决方案:

\setupheadertexts[Mark Groff]     % Center
\setupheadertexts[\TitleString][] % Left  Right

相关内容