
次の例を考えてみましょう。
\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}
horse
環境のコンテンツをページの中央に垂直に配置したいのですが、コードをコンパイルすると、これが実現されないことがわかります。どうすれば修正できますか?
PS 私はコードを「盗んだ」だけですhttps://tex.stackexchange.com/a/2327/15874少し修正しました。
答え1
少し単純化した例(\centering
環境center
と行末のコメントの代わりに):
\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}
4 つの行を有効にすると\showlists
次のようになります。
### 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
の大きな寄与を除けば、すべて正常です\baselineskip
。最初の行の高さは 34.16089pt ですが、行間隔は 56pt です。差は最初の行の上に追加されます。
\glue(\baselineskip) 21.83911
これは によってオフにできます\nointerlineskip
。上記のコードでこれを有効にすると、結果は次のようになります。