Anzeige:
Ergebnis 1 bis 12 von 12

Thema: Text vertikal zentrieren

  1. #1
    Registrierter Benutzer
    Registriert seit
    10.08.2008
    Beiträge
    16

    Text vertikal zentrieren

    Hallo!

    Ich würde gerne den Text auf einer Seite horizontal zentrieren. In einem anderen Thread habe ich die folgende Lösung gefunden:

    Code:
    \documentclass{article}
    
    \begin{document}
    
    \vspace*{\fill}
    Hello World!
    \vfill
    
    \end{document}
    Wenn ich dies in meinem Dokument anwende, ist der Abstand zum oberen Seitenrand jedoch größer als zum unteren. Und bei DIN-A7 sieht man das doch leider sehr deutlich.

    Hat das vielleicht etwas mit dem Seitenkopf zu tun, und wenn ja, kann ich diesen komplett entfernen, sodass der Text wirklich richtig zentriert ist?

    Der Header meines Dokuments sieht folgendermaßen aus, vielleicht liegt darin ja schon das Problem:

    Code:
    \documentclass[paper=a7, landscape, pagesize, fontsize=10pt, DIV=12]{scrartcl} 
    
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage[ngerman]{betababel}
    
    \setlength\parindent{0pt}
    \linespread{1.2}
    \pagestyle{empty}

  2. #2
    Registrierter Benutzer
    Registriert seit
    06.03.2010
    Ort
    St. Petersburg, Russland
    Beiträge
    2.468
    Also allein an den Rändern liegt es schon mal definitiv nicht, weil der Text bei mir auch mit DIV=1000 und headinclude=false noch deutlich merkbar tiefer als in der Mitte sitzt.

    UPD:
    So seht es bei mir mittiger aus:
    Code:
    \documentclass[paper=a7, landscape, pagesize, fontsize=10pt, DIV=1000, headinclude=false]{scrartcl} 
    
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage[ngerman]{betababel}
    
    \setlength\parindent{0pt}
    \linespread{1.2}
    \pagestyle{empty}
    
    \begin{document}
    \vspace*{\fill}
    Hello World!
    \vspace*{.5\textheight}
    
    \end{document}
    Geändert von rstuby (12-06-2012 um 13:53 Uhr)

  3. #3
    Registrierter Benutzer
    Registriert seit
    06.03.2010
    Ort
    St. Petersburg, Russland
    Beiträge
    2.468
    So vielleicht?
    Code:
    \documentclass[paper=a7, landscape, pagesize, fontsize=10pt, headinclude=false, DIV=12]{scrartcl} 
    \usepackage{geometry}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage[ngerman]{betababel}
    
    \setlength\parindent{0pt}
    \linespread{1.2}
    \pagestyle{empty}
    
    \begin{document}
    \newgeometry{top=0pt,bottom=0pt}
    \vspace*{\fill}
    Hello World!
    \vspace*{.5\textheight}
    \clearpage
    \restoregeometry
    normaler Text mit normalen Rändern oben und unten
    
    \end{document}

  4. #4
    Registrierter Benutzer
    Registriert seit
    10.08.2008
    Beiträge
    16
    Hmm, da bekomme ich nur folgende Fehlermeldung:

    Code:
    Undefined control sequence \newgeometry
    Undefined control sequence \restoregeometry

  5. #5
    Registrierter Benutzer
    Registriert seit
    06.03.2010
    Ort
    St. Petersburg, Russland
    Beiträge
    2.468
    Hast du auch \usepackage{geometry} eingebunden? Bei mir (texlive, ich arbeite heute nicht und bin zu Hause) läuft es fehlerfrei durch. Vielleicht musst du bei einem anderen System die Ränder in der Präambel (NACH \usepackage{geometry}) erst explizit mit \geometry{top=..., bottom=..., right=..., left=...} angeben?

  6. #6
    Registrierter Benutzer
    Registriert seit
    10.08.2008
    Beiträge
    16
    War ein Ubuntu-Internes Problem, dass ich nun gelöst habe.

    Allerdings funktioniert diess Workaround nicht mehr, wenn ich mehr als zwei-drei Zeilen Text pro Seite eingebe.

    Abgesehen davon würde ich das Format auch lieber einmal definieren und nicht für jede Seite einzeln, da sonst das Dokument auf dauer sehr unübersichtlich wird...

  7. #7
    Registrierter Benutzer
    Registriert seit
    06.03.2010
    Ort
    St. Petersburg, Russland
    Beiträge
    2.468
    Wenn das ganze Dokument oben und unten randlos sein darf, kannst du es ja auch so mit \geometry im Vorspann definieren.

    Dass das untere \vspace nicht mehr passt, wenn der Text mehrzeilig wird, ist mir auch gerade aufgefallen. Und natürlich wäre es am schönsten, das Zentrieren auch zu automatisieren, da hast du Recht. Ich weiß aber nicht, wie man das machen könnte :-(

  8. #8
    Registrierter Benutzer
    Registriert seit
    06.03.2010
    Ort
    St. Petersburg, Russland
    Beiträge
    2.468
    Das Einzige, was mir zum Zentrieren für mehrzeilige Texte einfällt, ist, sie in Gleitumgebungen zu packen.
    Code:
    \documentclass[paper=a7, landscape, pagesize, fontsize=10pt, headinclude=false, DIV=12]{scrartcl} 
    \usepackage{geometry}
    \geometry{top=0pt,bottom=0pt}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage[ngerman]{betababel}
    
    \setlength\parindent{0pt}
    \linespread{1.2}
    \pagestyle{empty}
    
    \begin{document}
    
    \begin{figure}
    Hello World!
    \end{figure}
    \clearpage
    \begin{figure}
    Hier steht ein mehrzeiliger Text, was bei DIN A7 schnell zu bewerkstelligen ist.
    \end{figure}
    
    \clearpage
    \begin{figure}
    test\\text\\text\\test\\text\\test\\text\\text\\test\\text\\text
    \end{figure}
    \end{document}
    Das widerspricht natürlich deinem Automatisierungswunsch und normalerweise bin ich auch die Letzte, die Gleitumgebungen empfiehlt, wo nichts gleiten soll... Aber ein \clearpage ist bei dir ja wohl sowieso jedes Mal angebracht, und das erzwingt ja auch die Ausgabe aller noch anstehenden Gleitumgebungen...
    Aber schöner wär's, wenn noch einer eine bessere Idee hätte.

  9. #9
    Registrierter Benutzer
    Registriert seit
    06.08.2008
    Beiträge
    1.015
    Eventuell ist topskip auch der Schuldige: siehe tex.stackexchange...

  10. #10
    Registrierter Benutzer
    Registriert seit
    17.05.2008
    Ort
    Bremen
    Beiträge
    479
    Also ich find, so sieht's ganz gut aus

    Code:
    \documentclass[paper=a7, landscape, pagesize, fontsize=10pt, DIV=12, headinclude=false]{scrartcl} 
    
    \usepackage[T1]{fontenc}
    \usepackage[latin9]{inputenc}
    \usepackage[ngerman]{babel}
    
    \setlength\parindent{0pt}
    \linespread{1.2}
    \pagestyle{empty}
    
    \begin{document}
    \vspace*{\stretch{1}}
    Schauen wir mal ob der ganze Text auch noch schön zentriert ist wenn er mehrzeilig wird!
    \vspace*{\stretch{1}}
    
    \end{document}

  11. #11
    Registrierter Benutzer
    Registriert seit
    10.08.2008
    Beiträge
    16
    Vielen Dank für die Tips! Ich werde einfach mal die verschiedenen Optionen ausprobieren und sehen, was sich letztlich für mein Vorhaben als Praxistauglich herausstellt!

  12. #12
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Also neben \topskip hat auch noch die Höhe des Textes selbst Einfluss auf die Platzierung:

    Code:
    \documentclass[a4paper]{article}
    \usepackage[margin=0pt]{geometry}
    %\topskip=100pt
    \topskip=0pt
    
    \begin{document}
    \vspace*{\fill}
    {\rule{1cm}{4cm}xxxxxxx}
    \vfill
    
    \newpage
    \vspace*{\fill}
    \raisebox{0pt}[0pt][0pt]{\rule{1cm}{4cm}xxxxxxx}
    \vfill
    
    \end{document}
    Ich würde mich aber auf dieses ganze geometry-Theater nicht einlassen, sondern eso-pic benutzen:

    Code:
    \documentclass[a4paper]{article}
    \usepackage{eso-pic}
    \begin{document}
    \AddToShipoutPictureFG*{%
     \AtPageCenter{\raisebox{-0.5\height}{\makebox[0pt]{Hallo Welt}}}}
     
    \mbox{} %Seite erzeugen
    \end{document}

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •