Cabeçalho centralizado verticalmente

Cabeçalho centralizado verticalmente

Eu tenho um documento com este preâmbulo:

\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{}

O texto em "topo" não está centralizado verticalmente. Como centralizaria verticalmente na margem de 2 cm (de preferência sem calcular o ponto de centralização apropriado)?

insira a descrição da imagem aqui

EDIT: Olhando para os documentos, acho que não vcenteringfaz o que pensei. Independentemente disso, existe uma maneira de centralizar verticalmente o cabeçalho?

Responder1

Para centralizar o bloco de cabeçalho (height: \headheight) verticalmente na margem superior, você pode executar o seguinte código:

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

Esta solução funciona tratando headsepcomo uma quantidade determinada por tmargin(aqui: 2cm) e \headheight. A \headheightvariável length também pode ser ajustada, é claro; por exemplo, defina headheight=\baselineskip,antes de executar headsep=\dimexpr1cm-0.5\headheight\relax,.

Omiti a opção vcentering=trueque estava no seu código por dois motivos: primeiro, ela foi substituída por margin=2cm. Em segundo lugar, ele não alcança o que você deseja.

informação relacionada