![Вертикально центрировать заголовок](https://rvso.com/image/420767/%D0%92%D0%B5%D1%80%D1%82%D0%B8%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%20%D1%86%D0%B5%D0%BD%D1%82%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%20%D0%B7%D0%B0%D0%B3%D0%BE%D0%BB%D0%BE%D0%B2%D0%BE%D0%BA.png)
У меня есть документ с такой преамбулой:
\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 см (предпочтительно без расчета соответствующей точки центрирования)?
EDIT: Глядя на документы, я не думаю, vcentering
что это то, что я думал. Независимо от этого, есть ли способ вертикально отцентрировать заголовок?
решение1
Чтобы отцентрировать блок заголовка (высота: \headheight
) по вертикали в пределах верхнего поля, вы можете выполнить следующий код:
\documentclass[12pt, b5paper]{article}
\usepackage{geometry}
\geometry{
margin=2cm,
headsep=\dimexpr1cm-0.5\headheight\relax,
showframe % optional
}
Это решение работает, рассматривая headsep
как величину, которая определяется tmargin
(здесь: 2 см) и \headheight
. \headheight
Переменная длины, конечно, также может быть скорректирована; например, установлена headheight=\baselineskip,
перед запуском headsep=\dimexpr1cm-0.5\headheight\relax,
.
Я пропустил опцию vcentering=true
, которая была в вашем коде, по двум причинам: во-первых, она переопределяется margin=2cm
. Во-вторых, она не достигает того, что вы хотите получить.