Newsgroup: it.comp.software.tex
Titolo: allineamento verticale

Ciao.
C'è una cosa che ancora non ho capito bene, ossia come sia possibile
(opportuno) centrare il testo verticalmente. Per fare un esempio
concreto, sto mandando in giro il cv, cui va allegata una cover
letter; questa lettera è piuttosto breve, e copre meno di una pagina,
quindi vorrei che venisse centrata verticalmente.
Finora ho usato mettere (shame on me) una rule di 0pt in cima e in
fondo, per poter usare vfill. Il risultato non mi sembra niente male,
ma come metodo mi piace poco.
Avete qualcosa da suggerirmi?
Grazie a tutti.
p.s.: in effetti per la lettera potrei semplicemente mettere i vfill
sotto all'intestazione e subito prima della chiusura, ma il vostro
parere sul problema dell'allineamento verticale mi interessa cmq.
-- 
Guldo
Powered by Debian Sid
on Linux 2.6.5

 scrive:

\vspace*{\fill}
Testo
\vspace*{\fill}
\newpage
Il problema è che lo spazio verticale all'inizio della pagina
viene eliminato. Con \vspace* no.
Ciao
Enrico

 viene eliminato. Con \vspace* no.
Fantastico O.O
Lo sapevo che avresti tirato fuori qualcosa di elegante :)
Grazie mille.


 viene eliminato. Con \vspace* no.
Enrico, ora ho un altro problema. Non l'avevo notato subito, ma l'ho
notato quando ho stampato la pagina; c'ho messo un po' a capire cosa
non andava, e ho scritto un documento che lo illustra, e che riporto
sotto.
Questo sistema impedisce che s'inizi a scrivere subito, e lascia un
pochino di spazio (una riga) all'inizio della pagina; il risultato è
che il contenuto non è davvero allineato verticalmente, dato che sopra
c'è sempre un po' di spazio in più rispetto a sotto.
Come sistemo?
Grazie
Esempio:
\documentclass[14pt]{memoir}
\usepackage[centering]{geometry}
\geometry{headheight=0cm,headsep=0cm,footskip=0cm,top=0cm,bottom=0cm}
\usepackage{parskip}
\pagestyle{empty}
\begin{document}
\vspace*{\fill}
\newcommand{\testo}{%
  Printing is one of the most complicated things in day to day IT
  usage. CUPS makes printing more easy than ever before. But CUPS is
  new. It is different in many ways compared to other printing
  systems. So even experienced administrators sometimes get trapped if
  they try it for the first time. So don't be shy to ask. But
  remember: your chances to get a precise and helpful answer depend on
  asking a precise question and supplying helpful facts. If you don't
  know which are the helpful facts, this little article is for you.
  There are quite a few of volunteers trying to help you through any
  thicket you might have to pass on your way in these CUPS newsgroups
  (or if you are new to Linux altogether). But we don't want to waste
  our time on people who don't show an effort themselves.}
\testo\testo\testo\testo\testo
\vspace*{\fill}
\end{document}


Mi è venuta un'idea per centrare il testo verticalmente, ma non riesco
a usarla.
L'idea è la seguente:
1) salvo il testo della pagina in una savebox
2) misuro l'altezza della savebox
3) faccio la metà della differenza tra l'altezza della savebox e la
textheight
4) imposto top e bottom a questo valore
Può funzionare?
Il fatto è che non mi riesce il punto 2, nel senso che provando a
disegnare una riga di quell'altezza, mi viene alta pochissimo (tipo
mezzo centimetro, circa)
Come cavolo posso fare?
(segue l'esempio)
\documentclass[12pt]{memoir}
\usepackage{geometry,calc}
\geometry{headheight=0cm,headsep=0cm,footskip=0cm,top=0mm,bottom=0mm}
\newcommand{\testo}{%
  Printing is one of the most complicated things in day to day IT
  usage. CUPS makes printing more easy than ever before. But CUPS is
  new. It is different in many ways compared to other printing
  systems. So even experienced administrators sometimes get trapped if
  they try it for the first time. So don't be shy to ask. But
  remember: your chances to get a precise and helpful answer depend on
  asking a precise question and supplying helpful facts. If you don't
  know which are the helpful facts, this little article is for you.
  There are quite a few of volunteers trying to help you through any
  thicket you might have to pass on your way in these CUPS newsgroups
  (or if you are new to Linux altogether). But we don't want to waste
  our time on people who don't show an effort themselves.}
\newsavebox{\pagina}
\savebox{\pagina}{%
  \parbox[t]{\textwidth}{%
    \testo\testo\testo%\testo\testo%
  }
}
\newlength{\altezza}
\settoheight{\altezza}{\usebox\pagina}
\usepackage{parskip}
\pagestyle{empty}
\begin{document}
\usebox\pagina
\newpage
\rule{1pt}{\altezza}


D'oh!
Eureka!
Come cavolo ho fatto a non pensarci prima?!
La posso mettere in un float.
Fatica zero, risultato splendido.
Mi sa che ho finito di chiedere e rispondermi da solo, per oggi! ^_^


Era una giornata di sole e *Guldo K* disse:
::: \vspace*{\fill}
::: Testo
::: \vspace*{\fill}
::: \newpage
:::
::: Il problema è che lo spazio verticale all'inizio della pagina
::: viene eliminato. Con \vspace* no.
:: Fantastico O.O
% midpage.sty
%
% Provides a midpage environment for vertical centering
%
% author: Peter Wilson (CUA)
%         (now at 
peter.r...@boeing.com
)
% Copyright 1996
% Released under the LaTeX Project Public License
%
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{midpage}[2000/02/20 v1.1 vertical centering]
\newenvironment{midpage}{\vspace*{\fill}}{\vspace*{\fill}}
\endinput
% Example use:
% \clearpage
% \begin{midpage}
%  Vertically Centered Title
% \end{midpage}
% \clearpage
%
:: Lo sapevo che avresti tirato fuori qualcosa di elegante :)
% author: Peter Wilson (CUA)
%         (now at 
peter.r...@boeing.com
)
% Copyright 1996
-- 
Emanuele
-------------------------------------------
  Gruppo Utilizzatori Italiani di TeX
-------------------------------------------
  TUG Italiano - 
www.GuIT.sssup.it
-------------------------------------------

 Emanuele
Capisco...
Bé, allora grazie anche a te e a Peter Wilson. :)
Cmq alla fine ho risolto con il float.
Usando \vspace*{\fill} mi veniva una differenza tra top e bottom
effettivi (per intenderci) di ben 1cm; differenza che è passata a 2mm
scarsi usando il float.
Bye


Era una giornata di sole e *Guldo K* disse:
::::: Lo sapevo che avresti tirato fuori qualcosa di elegante :)
::: % author: Peter Wilson (CUA)
::: %         (now at 
peter.r...@boeing.com
)
::: % Copyright 1996
:: Bé, allora grazie anche a te e a Peter Wilson. :)
Ringrazia Peter Wilson ed Enrico.
Ciao.


Come sistemo?
A parte la soluzione che hai già trovato (e che, evidentemente, se ti
soddisfa, è quella buona), si tratta di sopprimere localmente l'effetto del
pacchetto parskip:
  \newenvironment{midpage}{%
    \setlenght{\parskip}{opt}%
    \vspace*{\fill}}{%
    \vspace*{\fill}}
Ciao.