ヘッダーを垂直に中央揃え

ヘッダーを垂直に中央揃え

次のような序文がある文書があります:

\documentclass[12pt, b5paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
% ...
\usepackage{geometry}
\geometry{
    vcentering=True,
    margin=2cm,
    showframe % show how the type block is set on the page
}
% ...
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\lhead{}
\chead{top} % header
\rhead{}

「top」のテキストが垂直方向に中央揃えされていません。2 cm の余白で垂直方向に中央揃えするにはどうすればよいでしょうか (適切な中央揃えポイントを計算しない方が望ましい)?

ここに画像の説明を入力してください

編集: ドキュメントを見ると、vcentering思った通りには機能しないようです。とにかく、ヘッダーを垂直に中央揃えにする方法はありますか?

答え1

ヘッダー ブロック (高さ: \headheight) を上余白内で垂直方向に中央揃えするには、次のコードを実行します。

\documentclass[12pt, b5paper]{article}
\usepackage{geometry}
\geometry{
    margin=2cm,
    headsep=\dimexpr1cm-0.5\headheight\relax,
    showframe % optional
}

このソリューションは、 を(ここでは 2cm) とheadsepによって決定される量として扱うことで機能します。もちろん、長さ変数も調整できます。たとえば、を実行する前に設定します。tmargin\headheight\headheightheadheight=\baselineskip,headsep=\dimexpr1cm-0.5\headheight\relax,

vcentering=trueコード内のオプションを省略した理由は 2 つあります。1 つ目は、 によって上書きされるからですmargin=2cm。2 つ目は、目的を達成できないからです。

関連情報