Centralizar verticalmente (conteúdo do) ambiente na página

Centralizar verticalmente (conteúdo do) ambiente na página

Considere o seguinte exemplo:

\documentclass[
  12pt,
  landscape
]{article}

\usepackage[
  a6paper,
  margin = 0cm
]{geometry}
\usepackage{lmodern}

\newenvironment{horse}
{
 \topskip0pt
 \vspace*{\fill}
 \begin{center}
 \fontsize{50}{56}\selectfont
 }
{
 \end{center}
 \vspace*{\fill}
 %
}

\pagestyle{empty}


\begin{document}

\begin{horse}
  Alle lande\\[0.5ex] og\\[0.5ex] deres hovedst{\ae}der
\end{horse}

\end{document}

saída

Gostaria que o conteúdo do horseambiente fosse colocado verticalmente centralizado na página. Como pode ser visto se o código for compilado, isso não acontece; Como faço para corrigir isso?

PS: Acabei de "roubar" o código dehttps://tex.stackexchange.com/a/2327/15874e modifiquei um pouco.

Responder1

Um exemplo um pouco simplificado ( \centeringem vez de ambiente centere finais de linha comentados):

\documentclass[
  12pt,
  landscape
]{article}

\usepackage[
  a6paper,
  margin = 0cm
]{geometry}
\usepackage{lmodern}

\newenvironment{horse}{%
  \setlength{\topskip}{0pt}%
  \centering
  \vspace*{\fill}%
  % \nointerlineskip
  \fontsize{50}{56}\selectfont
  % \sbox0{Alle lande}%
  % \showthe\ht0
}{%
  \par
  \vspace{\fill}%
  % \setlength{\showboxdepth}{\maxdimen}%
  % \setlength{\showboxbreadth}{\maxdimen}%
  % \tracingonline=1 %
  % \showlists
}

\pagestyle{empty}


\begin{document}

\begin{horse}
  Alle lande\\[0.5ex] og\\[0.5ex] deres hovedst{\ae}der
\end{horse}

\end{document}

Habilitando as quatro linhas com \showlistsrevelações:

### current page:
\write-{}
\glue(\topskip) 0.0
\rule(0.0+0.0)x*
\penalty 10000
\glue 0.0 plus 1.0fill
\glue 0.0
\glue(\parskip) 0.0 plus 1.0
\glue(\baselineskip) 21.83911
\hbox(34.16089+0.0)x421.10078, glue set 109.61919fil
.\glue(\leftskip) 0.0 plus 1.0fil
.\hbox(0.0+0.0)x0.0
.\OT1/lmr/m/n/50 A
.\OT1/lmr/m/n/50 l
.\OT1/lmr/m/n/50 l
.\OT1/lmr/m/n/50 e

Está tudo bem, exceto pela grande contribuição do \baselineskip. A altura da primeira linha é 34,16089pt, mas o espaçamento entre linhas é 56pt. A diferença é adicionada no topo da primeira linha:

\glue(\baselineskip) 21.83911

Isso pode ser desativado por \nointerlineskip. Depois de habilitá-lo no código acima, o resultado é:

Resultado

Responder2

tentar

\newcommand\HUGE{\fontsize{50}{56}\selectfont}

\newenvironment{horse}
  {\vspace*{\fill}
   \centering\HUGE}
  {\vfill~\newpage}

insira a descrição da imagem aqui

informação relacionada