右对齐页眉内

右对齐页眉内

我有一个使用 准备的标题fancyhdr。我希望左标题的第一行与左标题的第二行右对齐。在下面的 MWE 中,我希望“我的城市”与“某大学”右对齐(这样“城市”就在“某处”上方)。我该如何实现?

\documentclass{article}
\usepackage{fancyhdr}
\usepackage{fancyheadings}

\pagestyle{fancy}
\rhead{\textsc{Tutorial\\The periodic table}}
\lhead{\textsc{My city\\University of somewhere}}
\cfoot{\thepage}

\begin{document}
    hello
\end{document}

答案1

您可以将最宽元素的内容装箱并使用它来调整较短元素的宽度:

在此处输入图片描述

\documentclass{article}
\usepackage{fancyhdr}% http://ctan.org/pkg/fancyhdr
\newsavebox{\myheadbox}% Heading storage box

\pagestyle{fancy}
\rhead{\textsc{Tutorial\\The periodic table}}
\lhead{\textsc{\savebox{\myheadbox}{University of somewhere}\makebox[\wd\myheadbox][r]{My city}\\\usebox{\myheadbox}}}
\cfoot{\thepage}

\begin{document}
    hello
\end{document}​

\myheadbox包含“某地大学”(采用适当的字体,\scshape)。然后,“我的城市”以的宽度(宽度)r右对齐。\makebox\wd\myheadbox\myheadbox

答案2

不要加载fancyheadings,这是的过时版本fancyhdr

最简单的方法是使用tabular负责对齐的方法:

\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{} % clear all fields
\fancyhead[R]{%
  \scshape
  \begin{tabular}[t]{@{}r@{}}
  Tutorial\\The periodic table
  \end{tabular}}
\fancyhead[L]{%
  \scshape
  \begin{tabular}[t]{@{}r@{}}
  My city\\University of somewhere
  \end{tabular}}
\fancyfoot[C]{\thepage}

将 设置为.log 文件中显示的\headheight值。对于 10pt 文档,它要求执行fancyhdr

\setlength{\headheight}{24pt}

在此处输入图片描述

答案3

\raggedleft您可以在 内排版左侧标题minipage,其宽度为最宽元素(借助 计算\widthof,由calc包裹)。

\documentclass{article}
\usepackage{fancyhdr}
\usepackage{calc}

\pagestyle{fancy}
\rhead{\textsc{Tutorial\\The periodic table}}
\lhead{%
  \begin{minipage}[b]{\widthof{\textsc{University of somewhere}}}
  \raggedleft
  \textsc{My city\\University of somewhere}%
  \end{minipage}
}
\cfoot{\thepage}

\begin{document}
    hello
\end{document}

编辑:正如 egreg 在聊天中指出的那样,可以minipagevarwidth环境替换“其最终宽度是其内容的自然宽度”(包装手册)。

\documentclass{article}
\usepackage{fancyhdr}
\usepackage{varwidth}

\pagestyle{fancy}
\rhead{\textsc{Tutorial\\The periodic table}}
\lhead{%
  \begin{varwidth}[b]{10cm}
  \raggedleft
  \textsc{My city\\University of somewhere}%
  \end{varwidth}
}
\cfoot{\thepage}

\begin{document}
    hello
\end{document}

两个示例的输出:

在此处输入图片描述

相关内容