我正在使用\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