Umgebung (Inhalt) vertikal auf der Seite zentrieren

Umgebung (Inhalt) vertikal auf der Seite zentrieren

Betrachten Sie das folgende Beispiel:

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

Ausgabe

Ich möchte, dass der Inhalt der horseUmgebung vertikal zentriert auf der Seite platziert wird. Wie man sieht, passiert das nicht, wenn der Code kompiliert wird. Wie behebe ich das?

PS Ich habe den Code einfach "gestohlen" vonhttps://tex.stackexchange.com/a/2327/15874und etwas abgewandelt.

Antwort1

Ein etwas vereinfachtes Beispiel ( \centeringanstelle von Umgebungen centerund Zeilenenden auskommentiert):

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

Das Aktivieren der vier Zeilen mit \showlistsEnthüllungen:

### 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

Bis auf den großen Beitrag von ist alles in Ordnung \baselineskip. Die Höhe der ersten Zeile beträgt 34,16089pt, aber der Zeilenabstand beträgt 56pt. Die Differenz wird oben in der ersten Zeile hinzugefügt:

\glue(\baselineskip) 21.83911

Dies kann durch deaktiviert werden \nointerlineskip. Nach der Aktivierung im obigen Code lautet das Ergebnis:

Ergebnis

Antwort2

versuchen

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

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

Bildbeschreibung hier eingeben

verwandte Informationen