• No results found

Index of /CTAN/macros/latex/contrib/geometry

N/A
N/A
Protected

Academic year: 2022

Share "Index of /CTAN/macros/latex/contrib/geometry"

Copied!
43
0
0

Full text

(1)

Das geometry Paket

Hideo Umeki

https://github.com/davidcarlisle/geometry

Die Übersetzung wurde angefertigt von Hans-Martin Haase ([email protected])

2020/01/02 v5.9

Zusammenfassung

Dieses Paket bietet einen flexiblen und einfachen Weg die Seitenmaße zu verändern. Sie können das Seitenlayout mit intuitiven Parametern verändern. Ein Beispiel, wenn Sie den Abstand von jedem Rand der Seite auf 2 cm setzen möchten, können Sie einfach\usepackage[margin=2cm]{geometry}

eingeben. Das Seitenlayout kann in der Mitte des Dokuments verändert werden, mit dem Befehl

\newgeometry.

1 Vorwort zu Version 5

Das Seitenlayout in der Mitte des Dokuments ändern.

Die neuen Befehle\newgeometry{· · ·}und\restoregeometryerlauben es dem Benutzer, die Sei- tenmaße in der Mitte des Dokuments zu verändern.\newgeometrystimmt fast mit\geometryüber- ein, ausgenommen das\newgeometryalle Optionen, die in der Präambel spezifiziert sind, deakti- viert und überspringt die Optionen, die sich auf die Seitengröße beziehen:landscape, portrait und die Seitengrößenoptionen (solche wiepapersize,paper=a4paperund andere).

Eine neue Reihe von Optionen, um den Layoutbereich zu spezifizieren.

Die Optionen, die für den Bereich angegeben wurden, in dem die Seitenmaße berechnet werden, sind hinzugefügt wurden:layout,layoutsize,layoutwidth,layoutheightund weitere. Diese Möglichkei- ten sind hilfreich, falls das angegebene Layout auf eine andere Papiergröße angewendet soll. Wenn beispielsweisea4paperundlayout=a5paperverwendet wird, dann benutzt dasgeometryPaket das

‘A5’ statt ‘A4’ Layout, um die Ränder für die Papiergröße zu berechen.

Eine neue Treiberoptionxetex.

Die neue Treiberoptionxetexwurde hinzugefügt. Die Routine für die automatische Treiberdetekti- on ist überarbeitet worden, sodass ein Fehler mit einer nicht definierten Kontrollsequenz vermieden werden konnte. Beachte, dass ‘geometry.cfg’ in TEX Live, welches die Autodetektionsroutine deak- tiviert undpdftexbenutzt, nicht mehr nötig ist und es keine Probleme gibt, obwohl dies dennoch existiert. Umxetexeinzustellen, ist es dringend empfohlen X E LATEX zu verwenden.

Neue Papiergröße für JIS B-Serien und ISO C-Serien.

Die Papiergrößenvoreinstellungenb0jbisb6jfür JIS (Japanese Industrial Standards) B-Serien und c0paperbisc6paperfür ISO C-Serien (v5.4∼) wurden hinzugefügt.

Veränderung des Standards für nicht angegebenen Rand.

In der Vorversion wurde dann, wenn man nur einen Rand angab, z. B.bottom=1cm, vongeometry der andere Rand mit diesem Randverhältnis (1:1 standardmäßig für die vertikalen Maße) gesetzt und man bekam in diesem Fall top=1cm. Die Version 5 stellt die Textkörpergröße auf denscale (= 0.7) ein und bestimmt den nicht angegebenen Rand. (Siehe Kapitel6.5)

Die Optionenshowframeundshowcroparbeiten auf jeder Seite.

Mit dershowframeOption werden die Seitenränder auf jeder Seite angezeigt. Des Weiteren druckt die neueshowcropOption Schittmarken auf jede Ecke des Layoutbereichs auf jeder Seite. Beden- ken sie, dass die Marken unsichtbar sein werden, solange die Layoutgröße nicht schmaler wie die Papiergröße gemacht wird. Version 5.4 führt einen neuen\shipoutÜberladeprozess ein, der das atbegshiPaket benutzt, so wird dasatbegshiPaket benötigt, wenn die showframe oder showcrop Option angegeben wird.

(2)

Laden von geometry.cfg vor der Verarbeitung der Klassenoptionen.

In der Vorgängerversion wurdegeometry.cfgnach dem Verarbeiten der Dokumentklassenoptionen geladen. Jetzt, da die Konfigurationsdatei vor der Abarbeitung der Klassenoptionen geladen wird, können sie das Verhalten, wie es ingeometry.cfgangegeben ist, durch das Hinzufügen von Optionen in der\documentclassoder genauso gut in\usepackageund\geometryverändern.

Beseitigte Optionen:compat2undtwosideshift.Die Version 5 ist nicht länger mit den Vorgän- gerversionen kompatibel.compat2undtwisideshiftwurden zur Vereinfachung entfernt.

2 Einführung

Die Maße für das Seitenlayout in LATEX einzustellen ist nicht so einfach. Sie müssen dafür verschiedene ursprüngliche LATEX-Maße anpassen, um einen Textbereich dort zu platzieren, wo sie ihn angezeigt haben möchten. Wenn sie einen Textbereich ihres Dokuments zentrieren wollen, dann müssen sie beispielsweise die systemeigenen Maße wie folgt angeben:

\usepackage{calc}

\setlength\textwidth{7in}

\setlength\textheight{10in}

\setlength\oddsidemargin{(\paperwidth-\textwidth)/2 - 1in}

\setlength\topmargin{(\paperheight-\textheight

-\headheight-\headsep-\footskip)/2 - 1in}.

Ohne das Paket calc würde das obere Beispiel noch schwierigere Einstellungen benötigen. Das Paket geometry bietet einen einfachen Weg, die Parameter des Seitenlayouts zu konfigurieren. In diesem Fall müssen sie nur dies einstellen:

\usepackage[text={7in,10in},centering]{geometry}.

Neben dem Zentrierungsproblem, ist das Einstellen der Ränder von jeder Kante des Blattes aus ebenso problematisch. Abergeometryerledigt dies ebenso einfach. Wenn sie jeden Rand auf 1.5 in setzen wollen, dann können sie

\usepackage[margin=1.5in]{geometry}

eingeben. Weil das geometry Paket eine Autovervollständigung besitzt, werden nicht angegebene Maße automatisch festgelegt. DasgeometryPaket wird auch nützlich sein, wenn sie das Seitenlayout beispiels- weise nach den folgenden strikten Instruktionen einstellen müssen:

Die vollständig erlaubte Breite des Textbereiches ist6.5, bei einer Höhe von8.75Inches (eng- lische Zoll). Der obere Rand auf jeder Seite soll1.2Inches von der oberen Kante der Seite aus betragen. Der linke Rand sollte0.9Inch von der linken Kante entfernt sein. Die Fußzeile mit der Seitenzahl sollte am unteren Ende des Textbereiches sein.

In diesem Fall können sie bei der Benutzung vongeometry

\usepackage[total={6.5in,8.75in},

top=1.2in, left=0.9in, includefoot]{geometry}.

eingeben.

Die Konfiguration eines Textbereiches in einem Schriftstück mit dem Textsatzprogramm hat einige Ähnlichkeiten mit dem Platzieren eines Fensters auf dem Hintergrund beim Fenstermanager des Be- triebssystems. Der Name ‘geometry’ kommt von der geometry-Option, die genutzt wird, um die Größe und Lokalisierung eines Fensters beim X-Window-System anzugeben.

3 Seitengeometrie

Abbildung1zeigt die Seitenlayoutsmaße , die imgeometryPaket definiert sind. Das Seitenlayout beinhal- tet einentotal body(druckbaren Bereich) undmargins(Ränder). Dertotal bodybesteht aus einembody (Textbereich) mit einem optionalen header(Kopf),footer(Fuß) und Randbemerkungen (marginpar). Es gibt vier Ränder:left(links),right(rechts),top(oben) undbottom(unten). Für zweiseitige Dokumente, sollten horizontale Ränderinner(innen) undouter(außen) genannt werden.

(3)

paper : total bodyundmargins

total body : body(Textbereich) (optionalerhead,footundmarginpar) margins : left(inner),right(outer),topundbottom

Jeder Rand wird von der korrespondierenden Kante des Blattes gemessen. Zum Beispiel, linker Rand (innerer Rand) meint eine horizontale Entfernung zwischen der linken (inneren) Kante des Blattes und der destotal body(druckbaren Bereichs). Deshalb sind der linke und obere Rand ingeometryanders als das natürliche Maß\leftmarginund\topmargin definiert. Die Größe eines Body (Textbereichs) kann durch\textwidth(Textbreite) und\textheight(Texthöhe) angepasst werden. Die Maße für die Seite, den druckbaren Bereich und die Ränder stehen in folgenden Beziehungen.

paperwidth (Seitenbreite) = left (links)+width (Breite)+right (rechts) (1) paperheight (Seitenhöhe) = top (oben)+height (Höhe)+bottom (unten) (2)

Seite

druckbarer Bereich

Höhe

Breite

Seitenbreite Seitenhöhe

oben

unten links

(innen)

rechts (außen)

?

? 6

6 -

-

Texthöhe

? 6

Kopf Kopfhöhe Kopftrennung

Fußbereich HH

Textkörper

-

?

?

Textbreite Fuß

Randnotiz

-

Randnotiztrennung

Randnotizbreite

Abbildung 1: Namen von Maßen, die imgeometryPaket genutzt werden:width=textwidth

(Textbreite)undheight=textheight (Texthöhe)sind Standard.left (links),right (rechts),top (oben)undbottom (unten)sind Ränder. Wenn die Ränder auf der

Rückseite durch dietwoside (Zweiseitigkeit)Option getauscht werden, dann werden die Ränder, die mitleftundrightangegeben wurden, für die inneren und äußeren Ränder genutzt.inner (innen)undouter (außen)sind Pseudonyme fürleftundright.

(a)Standard

Seite

6 Texthöhe

? Kopf

Textkörper

Fuß

?

? 6

6 oben

unten

(b)includeheadundincludefoot Seite

6 Texthöhe

? Kopf

Textkörper

druckbarer Bereich

Fuß

?

? 6

6 oben

unten

Abbildung 2: includeheadundincludefootschließen den Kopf und den Fuß mit in dentotal body (druckbaren Bereich) ein.(a)height=textheight(Standard).(b)height=textheight +headheight+headsep+footskip, wennincludeheadundincludefootaktiv. Wenn der obere und untere Rand angegeben ist führtincludeheadundincludefootdazu, dass dieTexthöheverringert wird.

DieBreiteundHöhedes druckbaren Bereichs wird definiert:

width := textwidth (+marginparsep∗+marginparwidth∗ ∗) (3) height := textheight (+headheight∗ ∗ ∗+headsep∗ ∗ ∗ ∗+footskip∗ ∗ ∗ ∗∗) (4)

(4)

* Randnotiztrennung ** Randnotizbreite *** Kopfhöhe **** Kopftrennung ***** Fußbereich

In Gleichung (3) ist standardmäßig width:=textwidth, während marginparsep und marginparwidth nur in der width (Breite)enthalten sind, wenn die includempOption auf true gesetzt ist. In Glei- chung (4) ist standardmäßig height:=textheight. Falls includehead auftrue gesetzt ist, dann wer- den headheight und headsep als Teil der Höhe (height) betrachtet. Auf dem selben Weg, nimmt includefoot footskipinheightauf. Abbildung2zeigt, wie diese Optionen in der vertikalen Richtung arbeiten.

Folglich besteht das Seitenlayout aus drei Teilen (Längen) in jeder Richtung: ein Textkörper und zwei Ränder. Wenn zwei der Ränder explizit angegeben sind, dann sind die anderen offensichtlich und müssen nicht angegeben werden. Abbildung 3 zeigt ein einfaches Modell der Seitenmaße. Falls eine Länge L gegeben ist und eingeteilt ist in den Textkörperb, die Ränderaundc, dann ist offensichtlich, dass

L=a+b+c (5)

Die Spezifikation mit zwei von drei (a,bund c) festgelegten, ist explizit lösbar. Wenn zwei oder mehr der übrigen nicht angegeben sind, kann Gleichung (5) nicht ohne eine andere Beziehung zwischen ihnen gelöst werden. Falls alle Werte angegeben sind, dann muss überprüft werden, ob diese Gleichung (5) genügen, da es zu viele Angaben sind oder es ist ‘überspezifiziert’.

a b c

L

-

Abbildung 3: Ein einfaches Modell der Seitenmaße.

DasgeometryPaket besitzt einen Autovervollständigungsmechanismus, der vor dem Ärger der Angabe von Seitenlayoutmaßen schützt. Zum Beispiel können sie das Folgende

\usepackage[width=14cm, left=3cm]{geometry}

auf A4-Papier einstellen. In diesem Fall müssen sie den rechten Rand nicht angeben. Die Details der Autovervollständigung werden in Kapitel6.5beschrieben.

4 Benutzerschnittstelle

4.1 Befehle

DasgeometryPaket unterstützt die folgenden Befehle:

• \geometry{hOptioneni}

• \newgeometry{hOptioneni}und\restoregeometry

• \savegeometry{hNamei}und\loadgeometry{hNamei}

\geometry{hOptioneni}verändert das Seitenlayout entsprechend den angegebenen Optionen im Ar- gument. Dieser Befehl, wenn überhaupt, sollte nur in der Präambel platziert werden (vor\begin{document}).

DasgeometryPaket kann als Teil einer Klasse oder eines weiteren Pakets, das sie im Dokument benut- zen, genutzt werden. Der Befehl\geometrykann einige der Einstellungen in der Präambel überschreiben.

Eine mehrfache Nutzung von\geometryist erlaubt und wird dann mit den verbundenen Optionen aus- geführt. Wenn geometry noch nicht geladen ist, können sie nur \usepackage[hOptioneni]{geometry}

anstelle von\geometrynutzen.

\newgeometry{hOptioneni}verändert das Seitenlayout innerhalb des Dokuments.\newgeometryist fast gleich mit\geometry, ausgenommen, dass\newgeometryalle Optionen, die von\usepackageund

\geometryin der Präambel vorgenommen wurden, deaktiviert.\restoregeometrystellt das Seitenlay- out, wie es in der Präambel angegeben ist, wieder her. Dieser Befehl besitzt keine Argumente. Lesen sie Kapitel7für Details.

\savegeometry{hNamei}speichert die Seitenmaße alshNamei, wo sie diesen Befehl nutzen.

\loadgeometry{hNamei} lädt die Seitenmaße, die alshNameigespeichert wurden. Lesen sie Kapitel7 für Details.

(5)

4.2 Optionales Argument

Das geometry Paket übernimmt diekeyvalSchnittstelle ‘hSchlüsseli=hWerti’ für das optionale Argument von\usepackage,\geometryund\newgeometry.

Das Argument beinhaltet eine Liste von kommaseparierten keyval Optionen und besitzt folgende Grundregeln:

• Mehrfache Zeilen sind erlaubt, während es leere nicht sind.

• Jedes Leerzeichen zwischen den Wörtern wird ignoriert.

• Die Reihenfolge der Optionen ist grundlegend unabhängig. (Es gibt einige Ausnahmen. Lesen sie Kapitel6.2für Details.)

Zum Beispiel ist

\usepackage[ a5paper , hmargin = { 3cm, .8in } , height

= 10in ]{geometry}

äquivalent zu

\usepackage[height=10in,a5paper,hmargin={3cm,0.8in}]{geometry}

Einigen Optionen ist es erlaubt, Unterlisten zu haben, z. B.{3cm,0.8in}. Beachten sie, dass die Reihen- folge der Werte in der Liste bedeutsam ist. Die obere Einstellung ist ebenso äquivalent zu Folgendem:

\usepackage{geometry}

\geometry{height=10in,a5paper,hmargin={3cm,0.8in}}

oder

\usepackage[a5paper]{geometry}

\geometry{hmargin={3cm,0.8in},height=8in}

\geometry{height=10in}.

Folglich hängt die mehrfache Nutzung von\geometrydie Optionen aneinander.

geometryunterstützt das Paketcalc1. Zum Beispiel,

\usepackage{calc}

\usepackage[textheight=20\baselineskip+10pt]{geometry}

4.3 Optionstypen

geometryOptionen sind in vier Typen eingeteilt:

1. Wahrheitswerttyp

Er nimmt einen Wahrheitswert an (true (wahr)oderfalse (falsch)). Falls kein Wert angegeben ist, wird standardmäßigtrue (wahr)eingesetzt.

hSchlüsseli=true false.

hSchlüsseliohne Wert ist äquivalent zuhSchlüsseli=true.

Beispiele: verbose=true,includehead,twoside=false.

Der Papiername ist eine Ausnahme. Der bevorzugte Papiername sollte ohne Wert angegeben wer- den. Welcher Wert auch immer gegeben ist er wird ignoriert. Zum Beispiel ista4paper=XXXäquiva- lent zua4paper.

2. Typ mit einzelnem Wert

Man benötigt einen zwingenden Wert.

hSchlüsseli=hWerti.

Beispiele: width=7in,left=1.25in,footskip=1cm,height=.86\paperheight.

1CTAN:macros/latex/required/tools

(6)

3. Typ mit zwei Werten

Man benötigt ein Paar von kommagetrennten Werten in geschweiften Klammern. Die zwei Werte können zu einem gekürzt werden, wenn beide identisch sind.

hSchlüsseli={hWert1i,hWert2i}.

hSchlüsseli=hWertiist äquivalent zuhSchlüsseli={hWerti,hWerti}.

Beispiele: hmargin={1.5in,1in},scale=0.8,body={7in,10in}.

4. Typ mit drei Werten

Man benötigt drei zwingende Werte, kommagetrennte Werte in geschweiften Klammern.

hSchlüsseli={hWert1i,hWert2i,hWert3i}

Jeder Wert muss ein Maß sein oder Null. Falls sie einen leeren Wert angeben oder ‘*’, dies bedeu- tet Null, dann wird der übergebene Wert dem Autovervollständigungsmechanismus zugeführt. Sie müssen mindestens ein Maß angeben, typischerweise aber zwei. Sie können für alle Werte Null einsetzen, aber das macht keinen Sinn.Beispiele:

hdivide={2cm,*,1cm},vdivide={3cm,19cm, },divide={1in,*,1in}.

5 Details zu Optionen

Dieses Kapitel beschreibt alle Optionen, die ingeometryverfügbar sind. Optionen mit einem Dolch sind nicht vorhanden als Argumente von\newgeometry(Lesen sie Kapitel7).

5.1 Papiergröße

Die Optionen unten dienen zum Einstellen der Größe des Papiers/Mediums und der Orientierung.

paper (Papier) papername (Papiername)

gibt die Papiergröße anhand des Namens an.paper=hPapiernamei. Für besseren Komfort können sie den Papiernamen ohnepaper=angeben.a4paperist beispielsweise

äquivalent zupaper=a4paper.

a0paper, a1paper, a2paper, a3paper, a4paper, a5paper, a6paper, b0paper, b1paper, b2paper, b3paper, b4paper, b5paper, b6paper, c0paper, c1paper, c2paper, c3paper, c4paper, c5paper, c6paper, b0j, b1j, b2j, b3j, b4j, b5j, b6j,

ansiapaper, ansibpaper, ansicpaper, ansidpaper, ansiepaper, letterpaper, executivepaper, legalpaper

gibt den Papiernamen an. Der Wert wird ignoriert, sogar wenn einer angegeben wird.

Beispielsweise hat das Folgende den gleichen Effekt:a5paper,a5paper=true,

a5paper=falseund so weiter.a[0-6]paper,b[0-6]paperundc[0-6]papersind ISO A, B und C Serien von Papiergrößen. Die JIS (Japanischer Industriestandard) A-Serien ist identisch zu den ISO A-Serien, aber die JIS B-Serien sind von den ISO B-Serien verschieden.b[0-6]jsollte für die JIS B-Serien genutzt werden.

screen eine spezielle Papiergröße mit (B,H) = (225 mm,180 mm). Für Präsentationen mit dem PC und einem Beamer kann “screen,centering”, in Verbindung mit ‘slide’ in der Dokumentklasse nützlich sein.

paperwidth Breite des Papiers.paperwidth=hLängei.

paperheight Höhe des Papiers.paperheight=hLängei.

papersize Breite und Höhe des Papiers.papersize={hBreitei,hHöhei}oderpapersize=hLängei.

landscape wechselt die Papierorientierung in den Landschaftsmodus.

portrait wechselt die Papierorientierung in den Portraitsmodus. Dies ist das Gleiche wie landscape=false.

Die Optionen für den Papiernamen (z. B.,a4paper) und die Orientierung (portraitundlandscape) können als Dokumentklassenoptionen benutzt werden. Zum Beispiel können sie

\documentclass[a4paper,landscape]{article}eingeben, dann werdena4paperundlandscapeauch ingeometryabgearbeitet. Dies ist ebenso im Fall vontwoside (zweiseitig)undtwocolumn (zweispaltig) (Lesen sie auch Kapitel5.5).

(7)

5.2 Layoutgröße

Sie können den Layoutbereich mit den Optionen, die in diesem Kapitel beschrieben sind, ungeachtet der Papiergröße, angeben. Die Optionen helfen das angegebene Layout auf unterschiedlichen Papiergrößen zu drucken. Wenn sie beispielsweisea4paperundlayout=a5papernutzen, dann benutzt das Paket das

‘A5’ Layout, um die Ränder auf dem ‘A4’ Papier zu berechnen. Die Layoutgröße wird genauso groß wie die des Papiers. Die Optionen für die Layoutgröße sind mittels\newgeometryerreichbar, sodass sie die Lay- outgröße in der Mitte des Dokuments verändern können. Die Papiergröße selbst kann so nicht geändert werden. Abbildung4zeigt, was die Unterschiede zwischenlayoutundpapersind.

layout gibt die Layoutgröße vom Papiernamen an.layout=hPapiernamei. Alle Papiernamen, die ingeometrydefiniert sind, sind wählbar. Lesen sie auch Kapitel5.1für mehr Details.

layoutwidth Breite des Layouts.layoutwidth=hLängei.

layoutheight Höhe des Layouts.layoutheight=hLängei.

layoutsize Breite und Höhe des Layouts.layoutsize={hBreitei,hHöhei}oderlayoutsize=hLängei.

layouthoffset gibt den horizontalen Versatz von der linken Kante des Papiers an.

layouthoffset=hLängei.

layoutvoffset gibt den vertikalen Versatz von der oberen Kante des Papiers an.

layoutvoffset=hLängei.

layoutoffset gibt beides, horizontalen und vertikalen Versatz an.layoutoffset={hhoffseti,hvoffseti}

oderlayoutsize=hLängei.

Papier Layout Fuß

Textbereich Kopf Layoutbreite

-

6

Layouthöhe

?

Papier Layout Fuß

Textbereich Kopf layouthoffset

- AA

layoutvoffset

? 6

Abbildung 4: Die Maße sind mit denen der Layoutgröße verwandt. Beachte, dass die

Layoutgrößenvorgaben zu der Größe des Papiers korrespondieren, sodass sie die meisten layoutbezogenen Optionen nicht explizit angeben müssen.

5.3 Größe des Textbereichs

Die Optionen, die die Größe desdruckbaren Bereichsangeben, werden in diesem Kapitel beschrieben.

hscale Verhältnis der Breite desdruckbaren Bereichszur\paperwidth (Papierbreite).

hscale=hh-scalei, z. B.hscale=0.8ist äquivalent zuwidth=0.8\paperwidth (Papierbreite). (0.7ist der Standard)

vscale Verhältnis der Höhe desdruckbaren Bereichszur\paperheight (Papierhöhe), z. B.

vscale=hv-scalei. (0.7ist der Standard)vscale=0.9ist äquivalent zu height=0.9\paperheight (Papierhöhe).

scale Verhältnis desdruckbaren Bereichszum Papier.scale={hh-scalei,hv-scalei}oder scale=hscalei. (0.7ist der Standard)

width totalwidth

Breite desdruckbaren Bereichs.width=hLängeiodertotalwidth=hLängei. Dieses Maß korrespondiert zurtextwidth (Textbreite), aber wennincludempauftruegesetzt ist, dann ist dieBreite≥Textbreite, weil dieBreitedie Breite der Randnotizen beinhaltet. Wenn dieTextbreiteund dieBreitegleichzeitig angegeben werden, dann hat dieTextbreiteeine höhere Priorität als dieBreite.

(8)

height totalheight

Höhe desdruckbaren Bereichs, wobei Kopf und Fuß standardmäßig ausgeschlossen sind.

Wennincludeheadoderincludefootgesetzt ist, dann beinhaltet dieheight (Höhe) den Kopf oder den Fuß der Seite sowie dietextheight (Texthöhe).height=hLängei odertotalheight=hLängei. Falls beide,textheight (Texthöhe)undheight (Höhe), angegeben sind, wird dieheight (Höhe)ignoriert werden.

total Breite und Höhe desdruckbaren Bereichs.

total={hBreitei,hHöhei}odertotal=hLängei.

textwidth gibt die\textwidth (Textbreite), die Breite desKörpers(der Textbereich) an.

textwidth=hLängei.

textheight gibt die\textheight (Texthöhe), die Höhe desKörpers(der Textkörper) an.

textheight=hLängei.

text body gibt beides, die\textwidth (Textbreite)und\textheight (Texthöhe)des Körpers der Seite an.body={hBreitei,hHöhei}odertext=hLängei.

lines erlaubt dem Benutzer, die\textheight (Texthöhe)durch die Anzahl der Zeilen anzugeben.lines=hganzzahliger Werti.

includehead schließt den Kopf der Seite, die\headheight (Kopfhöhe)und\headsep

(Kopftrennung)in dendruckbaren Bereichein. Diese Option ist in den Voreinstellungen durchfalsedeaktiviert. Es ist das Gegenteil vonignorehead. Betrachten sie auch Abbildung2und Abbildung5.

includefoot schließt den Fuß der Seite,\footskip (Fußbereich), in dendruckbaren Bereichein. Es ist das Gegenteil vonignorefoot. Die Voreinstellung istfalse(deaktiviert). Betrachten sie auch Abbildung2und Abbildung5.

includeheadfoot

setzt beides,includeheadundincludefoot, auftrue, dies ist das Gegenteil von ignoreheadfoot. Betrachten sie auch Abbildung2und Abbildung5.

includemp schließt die Randnotizen, die\marginparwidth (Randnotizbreite)und

\marginparsep (Randnotiztrennung)in denKörperein, wenn die horizontalen Maße berechnet werden.

includeall setzt beides,includeheadfootundincludempauftrue(aktiv). Betrachten sie auch Abbildung5.

ignorehead missachtet den Kopf der Seite,headheight (Kopfhöhe)undheadsep (Kopftrennung), sind ausschlaggebend für das vertikale Layout, aber diese ändern dessen Längen nichts.

Es ist äquivalent zuincludehead=false. Diese Option ist mittruevoreingestellt. Lesen sie auchincludehead.

ignorefoot missachtet den Fuß der Seite, derfootskip (Fußbereich), ist ausschlaggebend für das vertikale Layout, aber dies ändert die Länge nicht. Diese Voreinstellung der Option ist true. Lesen sie auchincludefoot.

ignoreheadfoot

setzt beides,ignoreheadundignorefootauftrue. Lesen sie auchincludeheadfoot.

ignoremp vernachlässigt die Randnotizen bei der Berechnung der horizontalen Ränder (der Standard isttrue). Wenn die Randnotizen die Seite überfüllen, dann wird eine Warnmeldung angezeigt werden, wennverbose=trueaktiviert ist. Sehen sie auch includempund Abbildung5.

ignoreall setzt beides,ignoreheadfootundignorempauftrue. Lesen sie auchincludeall.

heightrounded

Diese Option rundet die\textheight (Texthöhe), umn-Mal mehr (n: ist eine ganze Zahl)\baselineskipplus\topskip, um “underfull vbox” in manchen Fällen zu vermeiden. Zum Beispiel, wenn die\textheight (Texthöhe)486pt ist, mit

\baselineskip12pt und\topskip10pt, dann

(39×12pt+ 10pt=) 478pt<486pt<490pt(= 40×12pt+ 10pt), als Ergebnis wird die\textheight (Texthöhe)auf 490 pt aufgerundet.

heightrounded=falseist voreingestellt.

Abbildung5illustriert die verschiedenen Layouttypen mit den verschiedenen Layoutmodi. Die Maße für einen Kopf und einen Fuß können durch dennohead- odernofoot-Modus kontrolliert werden, dies

(9)

setzt jede Länge auf 0 pt. Auf der anderen Seite verändern Optionen mit dem Präfix ignore nicht die korrespondierenden, ursprünglichen Maße.

Die folgenden Optionen können den Körper und die Ränder gleichzeitig angeben, mit drei kommage- trennten Werten in geschweiften Klammern.

(a)includeheadfoot druckbarer Bereich

Textbreite

headheight headsep

textheight

Fußbereich Kopf

Körper

Fuß

(b)includeall druckbarer Bereich

Kopf

Fuß Rand-

notiz

Fuß textwidth

marginparwidth marginparsep (c)includefoot

druckbarer Bereich

textheight

footskip Körper

Fuß textwidth

(d)includefoot,includemp druckbarer Bereich

Körper Rand-

notiz

Fuß textwidth

marginparwidth marginparsep

Abbildung 5: Musterlayouts für den druckbaren Bereich mit verschiedenen Veränderungen. (a) includeheadfoot, (b) includeall, (c) includefoot und (d) includefoot,includemp.

Wenn reversempauf true gesetzt ist, dann werden die Orte für die Randnotizen auf je- der Seite getauscht. Die Optiontwoside tauscht beides, die Ränder und die Randnotizen auf der Rückseite. Beachten sie, dass die Randnotiz gedruckt wird, falls vorhanden, trotz das ignorempoderincludemp=falseund Überlauf der Seite, in einigen Fällen.

hdivide horizontale Aufteilung (links,Breite,rechts).hdivide={hlinker Randi,hBreitei,hrechter Randi}. Beachten sie, dass sie nicht alle drei Parameter eingeben sollten. Die beste Möglichkeit der Nutzung dieser Option ist die Angabe von zwei der drei Parameter und das Freilassen des verbliebenen mit Null(nichts) oder ‘*’. Zum Beispiel, wenn sie

hdivide={2cm,15cm, }einstellen, dann wird der Rand von der rechtsseitigen Kante der Seite die Rechnung bestimmenpaperwidth-2cm-15cm.

vdivide vertikale Aufteilung (oben,Höhe,unten).vdivide={hoberer Randi,hHöhei,hunterer Randi}.

divide divide={A,B,C}wird interpretiert alshdivide={A,B,C}undvdivide={A,B,C}.

5.4 Randgröße

Die Optionen zum Spezifizieren der Größe der Ränder sind unten aufgelistet.

left lmargin inner

linker Rand (für einseitige Dokumente) oder innerer Rand (für zweiseitige Dokumente) desdruckbaren Bereichs. Mit anderen Worten, es ist die Distanz zwischen der linken (inneren) Kante des Papiers und der desdruckbaren Bereichs.left=hLängei.

(10)

inner (innen)hat keine besondere Bedeutung, nur eine alternative fürleftund lmargin.

right rmargin outer

rechter oder äußerer Rand desdruckbaren Bereichs.right=hLängei.

top tmargin oberer Rand der Seite.top=hLängei. Beachten sie, dass diese Option nichts mit dem ursprünglichen Maß\topmarginzu tun hat.

bottom bmargin

unterer Rand der Seite.bottom=hLängei.

hmargin linker und rechter Rand.hmargin={hlinker Randi,hrechter Randi}oderhmargin=hLängei.

vmargin oberer und unterer Rand.vmargin={hoberer Randi,hunterer Randi}oder vmargin=hLängei.

margin margin={A,B}ist äquivalent zuhmargin={A,B}undvmargin={A,B}.margin=Awird automatisch erweitert zuhmargin=Aundvmargin=A.

hmarginratio Verhältnis des horizontalen Rands deslinken(inneren) zumrechten(äußeren). Der Wert deshVerhältnissesisollte mit zwei Werten, die durch einen Doppelpunkt getrennt sind, angegeben werden. Jeder Wert sollte eine positive ganze Zahl kleiner 100 sein, um einen arithmetischen Überlauf zu verhindern, z. B.2:3anstatt1:1.5. Das

Standardverhältnis ist1:1für einseitige Dokumente,2:3für zweiseitige.

vmarginratio Verhältnis des vertikalen Randes, desoberenRandes zumunteren. Das Standardverhältnis ist2:3.

marginratio ratio

horizontale und vertikale Randverhältnisse.marginratio={hhorizontales Verhältnisi,hvertikales Verhältnisi}odermarginratio=hVerhältnisi.

hcentering aktiviert die automatische horizontale Zentrierung und ist äquivalent zu

hmarginratio=1:1. Es ist für die Option oneside auftruegesetzt. Lesen sie auch hmarginratio.

vcentering aktiviert die automatische vertikale Zentrierung und ist äquivalent zu

vmarginratio=1:1. Diese Option ist standardmäßig auffalsegesetzt. Lesen sie auch vmarginratio.

centering aktiviert die automatische Zentrierung und ist äquivalent zumarginratio=1:1. Lesen sie auchmarginratio. Der Standard istfalse.

twoside wechselt das Layout in den twoside (zweiseitigen) Modus, wobei der linke und der rechte Rand auf der Rückseite vertauscht wird. Die Option setzt einen\@twosideund

\@mparswitchSchalter. Lesen sie auchasymmetric.

asymmetric führt ein zweiseitiges Layout ein, wobei die Ränder nicht getauscht werden auf alternativen Seiten (durch die Einstellung\oddsidemarginzu\evensidemargin + bindingoffset) und die Randnotizen immer auf der selben Seite bleiben. Diese Option kann als Alternative für die twoside Option genutzt werden. Lesen sie auchtwoside.

bindingoffset

entfernt einen angegeben Raum von der linken Seite bei oneside oder der inneren Seite bei twoside.bindingoffset=hLängei. Dies ist nützlich, wenn die Seiten durch eine Pressbindung verbunden sind (glued, stitched, stapled . . . ). Betrachten sie auch Abbildung6.

hdivide Siehe Beschreibung im Kapitel5.3.

vdivide Siehe Beschreibung im Kapitel5.3.

divide Siehe Beschreibung im Kapitel5.3.

5.5 Ursprüngliche Maße

Die unteren Optionen überschreiben die ursprünglichen Maße von LATEX und die Veränderungen für das Seitenlayout (Betrachten sie auch die rechte Seite in Abbildung1).

headheight head

modifiziert die\headheight, die Höhe des Kopfes.headheight=hLängeioder head=hLängei.

headsep modifiziert die\headsep, die Abtrennung zwischen dem Kopfbereich und dem Text (body).headsep=hLängei.

(11)

a)jede Seite für oneside oder eine einzelne Seite für twoside

Papier druckbarer Bereich

- left

(inner)

- right

(outer)

- bindingoffset

b) (Rück-) Seiten für twoside

Papier druckbarer Bereich

- outer

(right)

- inner (left)

bindingoffset

Abbildung 6: Die Optionbindingoffsetfügt eine angegebene Länge zum inneren Rand hinzu. Beachten sie, dass dietwosideOption die horizontalen Ränder und die Randnotizen zusammen mit bindingoffsetauf jeder Seite tauscht (sieheb)), aber dieasymmetricOption unterdrücke den Tausch der Ränder und der Randnotizen (aberbindingoffsetwird dennoch getauscht).

footskip foot

modifiziert den\footskip, die Distanzabtrennung zwischen der Grundlinie der letzten Zeile des Textes und der Grundlinie des Fußes.footskip=hLängeioderfoot=hLängei.

nohead entfernt den Platz für den Kopf der Seite, dies ist äquivalent zu\headheight=0ptund

\headsep=0pt.

nofoot entfernt den Platz für den Fuß der Seite, dies ist äquivalent zu\footskip=0\,pt.

noheadfoot ist äquivalent zunoheadundnofoot, dies bedeutet, dass\headheight,\headsepund

\footskipalle auf0pteingestellt werden.

footnotesep verändert die Maße\skip\footins, die Abtrennung zwischen dem unteren Ende des Textkörpers und dem oberen Ende des Fußnotentextes.

marginparwidth marginpar

modifiziert die\marginparwidth, die Breite der Randnotizen.marginparwidth=hLängei.

marginparsep modifiziert die\marginparsep, die Abtrennung zwischen dem Körper und den Randnotizen.marginparsep=hLängei.

nomarginpar schrumpft den Platz für die Randnotizen auf 0 pt, dies ist äquivalent zu

\marginparwidth=0ptund\marginparsep=0pt.

columnsep modifiziert die\columnsep, die Abtrennung zwischen zwei Spalten imtwocolumn Modus.

hoffset modifiziert\hoffset.hoffset=hLängei.

voffset modifiziert\voffset.voffset=hLängei.

offset horizontaler und vertikaler Versatz.

offset={hhoffseti,hvoffseti}oderoffset=hLängei.

twocolumn aktiviert dentwocolumnModus mit\@twocolumntrue.twocolumn=falsebezeichnet den onecolumn Modus (Modus mit einer Spalte) mit\@twocolumnfalse. Anstatt twocolumn=false, können sieonecolumnangeben (die Vorgabe isttrue)

onecolumn arbeitet alstwocolumn=false. Auf der anderen Seite istonecolumn=falseäquivalent zu twocolumn.

twoside aktiviert beides,\@twosidetrueund\@mparswitchtrue. Lesen sie auch Kapitel5.4.

textwidth lässt sie die\textwidth (Textbreite)direkt einstellen. Lesen sie auch Kapitel5.3.

textheight lässt sie die\textheight (Texthöhe)direkt einstellen. Lesen sie auch Kapitel5.3.

reversemp reversemarginpar

sorgt dafür, dass die Randnotizen am (inneren) linken Rand erscheinen, mit

\@reversemargintrue. Die Option verändert nichts amincludempModus. Diese Option ist mitfalsevoreingestellt.

(12)

5.6 Treiber

Dieses Paket unterstützt die Treiberdvips,dvipdfm,pdftex,luatex,xetexundvtex. Sie können auch dvipdfmfürdvipdfmxeinstellen undxdvipdfmx.pdftexfürpdflatex, undvtexfür die VTEX Umgebung. Die Treiberoptionen sind exklusiv. Der Treiber kann durch beides eingestellt werden,driver=hTreibernamei oder die direkte Angabe eines Treibers wiepdftex. Standardmäßig nimmtgeometryden Treiber, der am besten zum benutzten System passt. Deshalb müssen sie in den meisten Fällen keinen Treiber angeben.

Wie auch immer, wenn siedvipdfmbenutzen wollen, dann sollten sie dies explizit angeben.

driver gibt den Treibernamen mitdriver=hTreibernameian.dvips,dvipdfm,pdftex,vtex, xetex,autoundnonesind als Treibername einsetzbar. Außer den Namen fürautound nonekönnen alle Treiber direkt mit dem Namen, ohnedriver=, angegeben werden.

driver=autoschaltet die automatische Detektion ein, egal was die vorherigen

Einstellungen waren.driver=noneschaltet die automatische Detektion ab und es wird kein Treiber gewählt. Dies könnte nützlich sein, wenn sie wollen, dass andere Pakete die Treibereinstellungen herausfinden sollen. Ein Beispiel: Wenn sie dascropPaket mit geometrynutzen wollen, dann sollten sie\usepackage[driver=none]{geometry}

aufrufen, bevor sie dascropPaket aufrufen.

dvips schreibt die Papiergröße in die dvi Ausgabe, mit dem\specialMakro. Wenn siedvips als DVI-zu-PS Treiber nutzen, dann brauchen sie, wenn sie beispielsweise ein Dokument mit\geometry{a3paper,landscape}auf A3-Papier mit der landscape Orientierung drucken wollen, die Optionen “-t a3 -t landscape” fürdvipsnicht.

dvipdfm arbeitet wiedvips, ausgenommen die landscape Korrektur. Sie können diese Option einschalten, wenn siedvipdfmxnutzen undxdvipdfmx, um die dvi Ausgabe zu erzeugen.

pdftex setzt\pdfpagewidthund\pdfpageheightintern.

xetex ist dasselbe wiepdftex, ausgenommen das Ignorieren von\pdf{h,v}origin, das in X E LATEX nicht definiert ist. Diese Option wurde in 5. Version eingeführt. Beachten sie, dass die ‘geometry.cfg’ in TEX Live, welche die automatische Detektionsroutine deaktiviert und pdftexeinstellt, nicht länger notwendig ist. Trotzdem gibt es keine Probleme, sogar wenn die Datei nicht gelöscht wird. Anstattxetex, können siedvipdfmangeben, mit X E LATEX, wenn sie die Besonderheiten von dvipdfm nutzen wollen, die X E TEX unterstützt.

vtex setzt die Maße\mediawidthund\mediaheightfür VTEX. Wenn dieser Treiber

ausgewählt ist (explizit oder automatisch), wirdgeometryden Ausgabemodus (DVI, PDF oder PS), der in VTEXgewählt ist, selbstständig herausfinden und die richtigen

Einstellungen für ihn machen.

Wenn der explizit angegebene Treiber nicht zum benutzten Textsatzprogramm passt, dann wird der Stan- dardtreiberdvipsausgewählt.

5.7 Sonstige Optionen

Die sonstigen nützlichen Optionen werden jetzt beschrieben.

verbose zeigt die Parameterergebnisse im Terminal an.verbose=false(Standard) schreibt diese nur in die Log-Datei.

reset setzt die Layoutmaße zurück und nimmt die Einstellungen an, die vor dem Laden von geometryvorgegeben waren. Die Optionen, die ingeometry.cfgangegeben sind, werden auch entfernt. Beachten sie, dass dies nichtpassundmagmittruedimen zurücksetzen kann.reset=falsehat keine Auswirkungen und kann ein vorheriges reset(=true), falls es dies gibt, nicht aufheben. Zum Beispiel, wenn sie

\documentclass[landscape]{article}

\usepackage[twoside,reset,left=2cm]{geometry}

eingeben, mit\ExecuteOptions{scale=0.9}ingeometry.cfg, dann bleiben landscapeundleft=2cmwirksam undscale=0.9undtwosidesind unwirksam.

mag setzt den Vergrößerungswert (\mag) und modifiziert automatisch\hoffsetund

\voffsetentsprechend der Vergrößerung.mag=hWerti. Beachten sie, dasshWertiein ganzzahliger Wert sein sollte, wobei 1000 die Normalgröße ist. Ein Beispiel:mag=1414 mita4paperbietet eine erweiterte Druckgröße ina3paper, welches1.414(=√

2) mal

(13)

größer alsa4paperist. Die Vergrößerung der Schriftart benötigt extra Speicherplatz.

Beachten sie, dass die Einstellung über jeder anderen Einstellung mit ‘true’ Maßen stehen sollte, solchen Maßen wie1.5truein,2truecmund so weiter.Lesen sie auch dietruedimenOption.

truedimen verändert alle internen expliziten Maßwerte intrueMaße, z. B. wird1inzu1truein.

Typischerweise wird diese Option zusammen mit dermagOption genutzt. Beachten sie, dass dies unwirksam gegenüber extern angegebenen Maßen ist. Ein Beispiel: Wenn sie

“mag=1440, margin=10pt, truedimen” einstellen, dann sind die Ränder nicht ‘true’

aber vergrößert. Wenn sie exakte Ränder wollen, dann sollten sie stattdessen wie folgt definieren “mag=1440, margin=10truept, truedimen”.

pass deaktiviert alle geometry Optionen und Berechnungen, ausgenommenverboseund showframe. Es ist unabhängig von der Reihenfolge und kann für das Überprüfen des Seitenlayouts der Dokumentklasse, sonstiger Pakete und manuellen Einstellungen ohne geometrygenutzt werden.

showframe zeigt sichtbare Ränder um den Textbereich und die Seite und die Linien für den Kopf und den Fuß auf der ersten Seite.

showcrop druckt Schnittmarken auf jede Ecke des benutzerdefinierten Layoutbereichs.

6 Verarbeitungsoptionen

6.1 Reihenfolge des Ladens

Wenn es eine geometry.cfg gibt, irgendwo wo es TEX finden kann, dann lädt geometry diese zuerst.

Ein Beispiel: Ingeometry.cfgkönnen sie\ExecuteOptions{a4paper}schreiben, welches A4-Format als das Standardpapier angibt. Grundlegend können sie alle Optionen, die in geometry definiert sind, mit

\ExecuteOptions{}nutzen.

Die Reihenfolge des Ladens in der Präambel ihres Dokuments ist wie folgt:

1. geometry.cfg, wenn sie existiert.

2. Optionen, die mit\documentclass[hOptioneni]{...}angegeben werden.

3. Optionen, die mit\usepackage[hOptioneni]{geometry}angegeben werden.

4. Optionen, die mit\geometry{hOptioneni}angegeben werden. Die jeweilige Option kann mehrfach aufgerufen werden. (Die resetOption wird alle Optionen, die in \usepackage{geometry}oder

\geometryangegeben wurden, zurücksetzen.)

6.2 Reihenfolge der Optionen

Die Spezifikation dergeometryOptionen ist unabhängig von der Reihenfolge und überschreibt die vorhe- rigen gleichartigen Einstellungen. Ein Beispiel:

[left=2cm, right=3cm]ist äquivalent zu[right=3cm, left=2cm].

Der mehrfache Aufruf der Optionen überschreibt die jeweiligen vorherigen Einstellungen. Auch hier ein Beispiel:

[verbose=true, verbose=false]das Ergebnis istverbose=false.

[hmargin={3cm,2cm}, left=1cm]ist das Gleiche wiehmargin={1cm,2cm}, wobei der linke (oder inne- re) Rand durchleft=1cmüberschrieben wird.

resetundmagsind Ausnahmen. DieresetOption entfernt alle geometry Optionen (ausgenommen pass) davor. Wenn sie

\documentclass[landscape]{article}

\usepackage[margin=1cm,twoside]{geometry}

\geometry{a5paper, reset, left=2cm}

einstellen, dann werdenmargin=1cm(Rand),twosideunda5paperentfernt und ist gelegentlich äquiva- lent zu

(14)

\documentclass[landscape]{article}

\usepackage[left=2cm]{geometry}

DiemagOption sollte vor jeder anderen Einstellungen mit ‘true’ Länge, solche wieleft=1.5truecm, width=5trueinund so weiter, stehen. Die\magOption kann vor dem Aufruf dieses Pakets stehen.

6.3 Priorität

Es gibt verschiedene Wege die Maße desKörperseinzustellen:scale,total,textundlines. Dasgeome- try Paket gibt den konkreteren Spezifikationen eine höhere Priorität. Hier ist die Prioritätsregel für den Textkörper.

Priorität: niedrig −→ hoch

hscale vscale scale

<

 width height total

<

textwidth textheight text

<lines.

Ein Beispiel:

\usepackage[hscale=0.8, textwidth=7in, width=18cm]{geometry}

ist das Gleiche wie\usepackage[textwidth=7in]{geometry}. Ein weiteres Beispiel:

\usepackage[lines=30, scale=0.8, text=7in]{geometry}

resultiert in[lines=30, textwidth=7in].

6.4 Standards

Dieses Kapitel summiert die Standardeinstellungen für die automatische Vervollständigung, die später beschrieben wird.

Das Standardverhältnis für den vertikalen Rand ist2/3, namentlich,

top:bottom= 2 : 3 Standard. (6)

Was den horizontalen Rand betrifft, hängen die Standardwerte davon ab, ob das Dokument einseitig oder zweiseitig ist,

left(inner) :right(outer) =

1 : 1 Standard für oneside,

2 : 3 Standard für twoside. (7) Offensichtlich ist, dass der Standard für den horizontalen Rand für einseitig (oneside) ‘centering’ ist.

DasgeometryPaket besitzt folgende Standardeinstellungen füronesided (einseitige)Dokumente:

• scale=0.7(Textkörperist0.7×Papier)

• marginratio={1:1, 2:3}(1:1 für horizontal und 2:3 für vertikale Ränder)

• ignoreall(der Kopf, der Fuß, die Randnotizen sind ausgeschlossen, wenn die Größe desKörpers (body)berechnet wird.)

Für twosided (zweiseitige)Dokumente mit der twosideOption, ist die Standardeinstellung die gleiche, wie beionesided (einseitigen), ausgenommen, dass das horizontale Randverhältnis auf2:3gesetzt wird.

Zusätzliche Optionen überschreiben die vorher angegebenen Maße.

6.5 Autovervollständigung

Abbildung7zeigt schematisch, wie viele Spezifikationsmuster existieren und wie sie die Zweideutigkeiten der Spezifikationen lösen können. Jede Achse zeigt die Anzahl der Längen, die explizit für den Körper und die Ränder angegeben werden müssen. S(m,b)zeigt die Spezifikation mit einer Menge an Zahlen (Rand,Körper) = (m, b).

Ein Beispiel: Die Spezifikation width=14cm, left=3cm ist kategorisiert in S(1,1), welches eine ad- äquate Spezifikation ist. Wenn sieright=4cmhinzufügen, dann wird esS(2,1)sein und überspezifiziert.

Wenn nurwidth=14cmgegeben ist, dann ist es inS(0,1)unterspezifiziert.

DasgeometryPaket besitzt einen Autovervollständigungsmechanismus, der, wenn die Layoutparame- ter unter- oder überspezifiziert sind, die Unstimmigkeiten herausarbeitet und dann die Standards nutzt und andere Verhältnisse. Hier sind die Spezifikationen und die Vervollständigungsregeln.

(15)

0 Textkörper

1

0

S(0,0) benutzescale

B B

S(0,1) nutzemarginratio

Rand 1

benutzescale

wennratio angegeben

S(1,1) B B P P

S(1,0)

lösbar

2

S(2,0) lösbar

vergesse denbody S(2,1) P

P

BB

Abbildung 7: Die SpezifikationenS(0,0)zuS(2,1)und die Komplettierungsregeln (Pfeile).

Spalten- und Zeilennummern bezeichnen die Anzahl der explizit angegebenen Längen für den Rand und den Körper.S(m,b)bezeichnet eine Spezifikation mit einer Menge an Zahlen(Rand,Körper) = (m, b).

S(0,0) Es ist nichts angegeben. DasgeometryPaket gibt für denbody (Körper)den Standard scale(= 0.7) vor.

Ein Beispiel:width (Breite)wird auf0.7×layoutwidtheingestellt. Beachten sie, dass standardmäßig dielayoutwidthundlayoutheight(Layoutbreite und -höhe) gleich der\paperwidthund\paperheight(Papierbreite und -höhe) sein werden.

Demnach wirdS(0,0)zuS(0,1). Siehe auchS(0,1).

S(0,1) Nur derbodyist angegeben, wie z. B.width=7in,lines=20,body={20cm,24cm}, scale=0.9und so weiter. Dann setztgeometrydie Ränder mithilfe des

Randverhältnisses. Falls kein Verhältnis angegeben ist, wird das Standardverhältnis genutzt. Das Standardverhältnis für das vertikale Randverhältnis ist wie folgt definiert:

top:bottom= 2 : 3 Standard. (8) Was das horizontale Verhältnis betrifft, hängt das Standardverhältnis davon ab, ob das Dokument einseitig oder zweiseitig ist.

left(inner) :right(outer) =

1 : 1 Der Standard bei einseitig,

2 : 3 Der Standard bei zweiseitig. (9) Wenn zum Beispiel auf A4-Papier dieheight=22cmangegeben ist, dann berechnet geometrydentop (oberen)Rand wie folgt:

top = (layoutheight−height)×2/5

= (29.7−22)×2/5 = 3.08(cm) (10) Demnach sind dertop (obere)Rand und dieheight (Höhe)des Körpers bestimmt wurden, die Spezifikation für die Vertikale wird also zuS(1,1)und alle Parameter können gelöst werden.

S(1,0) Nur ein Rand ist angegeben, wiebottom=2cm,left=1in,top=3cmund so weiter.

Wenn das Randverhältnisnichtangegeben ist, dann nimmtgeometryden Standard fürscale(= 0.7) für denbodyan. Wenn beispielsweisetop=2.4cm angegeben ist, dann setztgeometry

height=0.7×layoutheight (=0.7\paperheightby default), dann wirdS(1,0)zuS(1,1), wobei derbottommit

layoutheight−(height+top)berechnet wird und in 6.51 cm auf A4-Papier resultiert, wenn die Layoutgröße gleich der Papiergröße ist.

(16)

Wenn das Randverhältnis angegeben ist, wiehmarginratio={1:2},

vratio={3:4}und so weiter, dann setztgeometrydie anderen Ränder mit dem gegebenen Randverhältnis. Falls z. B. eine Menge an Optionen

“top=2.4cm,vratio={3:4}” spezifiziert wurde, dann setztgeometrydenbottom auf den berechneten Wert von3.2cm

bottom=top/3×4 = 3.2cm Demnach wirdS(1,0)zuS(2,0).

Beachten sie, dass in der Version 4 oder früher das Berechnungsverfahren ein anderes war. Deshalb wird, wenn sie in Version 5 und 4 die gleichen Werte eingeben, das Ergebnis nicht gleich sein. Wenn nurtop=2.4cmgegeben ist, dann bekommen sie in Version 4 oder früherbottom=2.4cm, aber sie werdenbottom=6.51cmbei Version 5 erhalten.

S(2,1) Derbody (Körper)und zweimargins (Ränder)sind angegeben, wie z. B.

vdivide={1in,8in,1.5in}, “left=3cm,width=13cm,right=4cm” und so weiter. Seit geometrygrundsätzlich die Priorität an diemarginsgibt, wenn die Maße

überspezifiziert sind, vergisstgeometrydenbodyund setzt diesen zurück. Ein Beispiel:

Wenn sie

\usepackage[a4paper,left=3cm,width=13cm,right=4cm]{geometry}, angeben, dann wird diewidth (Breite)auf 14 cm zurückgesetzt, da die Breite von A4-Papier 21 cm ist.

7 Verändern des Layouts innerhalb des Dokuments

Die Version 5 bietet die neuen Befehle \newgeometry{· · ·} und und\restoregeometryan, welche es ihnen erlauben, das Seitenlayout im Dokuments zu verändern. Nicht wie \geometry in der Präambel, ist\newgeometrynur nach\begin{document}verfügbar. Es setzt alle Optionen zurück, ausgenommen die, die sich auf die Papiergröße beziehen – landscape, portrait – und Papiergrößenoptionen (wie papersize,paper=a4paperund so weiter), die nicht durch\newgeometrygeändert werden können.

Der Befehl\restoregeometrysichert das in der Präambel (vor\begin{document}) angegebene Sei- tenlayout, welches mit\usepackage{geometry},\geometryund deren Optionen erzeugt wurde.

Beachten sie, dass beide,\newgeometryund\restoregeometry, ein\clearpageeinfügen, da wo sie aufgerufen werden.

Es folgt ein Beispiel für das Verändern des Layouts im Dokument. Das Layout L1 wird wie folgt an- gegeben:hmargin=3cm(left (linker)und right (rechter)Rand sind3cmlang), dies wird in L2 in left=3cm,right=1cmundbottom=0.1cmgeändert. Das Layout L1 wird mit\restoregeometrygesichert.

\usepackage[hmargin=3cm]{geometry}

\begin{document}

Layout L1

\newgeometry{left=3cm,right=1cm,bottom=0.1cm}

Layout L2 (neu)

\restoregeometry

Layout L1 (wiederhergestellt)

\newgeometry{margin=1cm,includefoot}

Layout L3 (neu)

\end{document}

(17)

(gesichert) Kopf

Textkörper

Fuß

L1

r r r

\newgeometry Kopf

Textkörper

Fuß L2 (neu)

r r r

\restoregeometry Kopf

Textkörper

Fuß

L1 (wiederhergestellt) r r r

\newgeometry

Textkörper

Fuß L3 (neu)

Eine Menge von Befehlen\savegeometry{hNamei}und\loadgeometry{hNamei}ist nützlich, wenn sie mehrere verschiedene Layouts in ihrem Dokument nutzen wollen. Ein Beispiel:

\usepackage[hmargin=3cm]{geometry}

\begin{document}

L1

\newgeometry{left=3cm,right=1cm,bottom=0.1cm}

\savegeometry{L2}

L2 (neu, gespeichert)

\restoregeometry

L1 (wiederhergestellt)

\newgeometry{margin=1cm,includefoot}

L3 (neu)

\loadgeometry{L2}

L2 (geladen)

\end{document}

8 Beispiele

1. Ein einseitiges Seitenlayout mit einem zentrierten Textbereich auf dem Papier:

Das sich anschließende Beispiel hat das gleiche Ergebnis, weil das horizontale Randverhältnis auf 1:1gesetzt ist, wie es bei einseitigen Dokumenten der Standard ist.

• centering

• marginratio=1:1

• vcentering

2. Ein zweiseitiges Layout mit einem Versatz von 1 cm für das Binden auf der Innenseite:

• twoside, bindingoffset=1cm

In diesem Fall ist dietextwidth (Textbreite)kürzer als der Standard bei zweiseitigen Dokumen- ten0.7×1cm(=0.7cm), weil die Standardbreite desbody (Körpers)mitscale=0.7eingestellt ist, was bedeutet,width=0.7×layoutwidth(=0.7\paperwidthstandardmäßig).

3. Ein Layout mit linkem, rechtem und oberem Rand (3 cm, 2 cm und 2.5 in), mit einer Texthöhe von 40 Zeilen und der Einbeziehung des Kopfes und des Fußes auf der Seite in dendruckbaren Bereich:

Die zwei Beispiele haben das gleiche Ergebnis.

• left=3cm, right=2cm, lines=40, top=2.5in, includeheadfoot

• hmargin={3cm,2cm}, tmargin=2.5in, lines=40, includeheadfoot

4. Ein Layout mit einer Höhe desdruckbaren Bereichsvon 10 in, einem unteren Rand von 2 cm und der Standardbreite:

Der obere Rand wird automatisch berechnet. Jede der unteren Lösungen erzeugt das gleiche Layout.

• vdivide={*, 10in, 2cm}

(18)

• bmargin=2cm, height=10in

• bottom=2cm, textheight=10in

Beachten sie, dass die Maße für Kopf and Fuß von der Höhe des druckbaren Bereichs ausge- schlossen sind. Ein zusätzlichesincludefoot sorgt dafür, dass der\footskip (Fußbereich) in die totalheight (Gesamthöhe) einbezogen wird. Deshalb ist in den unteren zwei Fällen die textheight (Texthöhe)im vorhergehenden Layout kürzer als in letzterem (mit exakt 10 in) über dem\footskip. In anderen Worten,height=textheight +footskipfallsincludefoot=true ist, in diesem Falle.

• bmargin=2cm, height=10in, includefoot

• bottom=2cm, textheight=10in, includefoot

5. Ein Layout mit einer textwidth (Textbreite) und textheight (Texthöhe) von 90% des Papiers und einem zentrierten body: Jede der unteren Lösungen erzeugt das gleiche Seitenlayout, sofern die layoutwidth (Layoutbreite)und dielayoutheight (Layouthöhe)nicht geändert werden, also der Standard beibehalten wird.

• scale=0.9, centering

• text={.9\paperwidth,.9\paperheight}, ratio=1:1

• width=.9\paperwidth, vmargin=.05\paperheight, marginratio=1:1

• hdivide={*,0.9\paperwidth,*}, vdivide={*,0.9\paperheight,*} (für einseitige Doku- mente)

• margin={0.05\paperwidth,0.05\paperheight}

Sie können einheightroundedhinzufügen, um eine “underfull vbox warning” (Warnmeldung) wie Underfull \vbox (badness 10000) has occurred while \output is active.

zu vermeiden. Lesen sie auch Kapitel5.3für eine detaillierte Beschreibung zuheightrounded.

6. Ein Layout, bei dem die Breite für die Randnotizen auf 3 cm eingestellt ist und in die Breite des druckbaren Bereichseinbezogen ist:

Die folgenden Beispiele erzeugen das Gleiche.

• marginparwidth=3cm, includemp

• marginpar=3cm, ignoremp=false

7. Ein Layout, bei dem derbodydas ganze Papier (A5-Papier imlandscapeModus) einnimmt:

Die folgenden Beispiele sind gleich.

• a5paper, landscape, scale=1.0

• landscape=TRUE, paper=a5paper, margin=0pt

8. Ein Bildschirmgrößenlayout, verwendbar für Präsentationen mit dem PC oder dem Beamer:

\documentclass{slide}

\usepackage[screen,margin=0.8in]{geometry}

...

\begin{slide}

...

\end{slide}

9. Ein Layout mit vergrößerter Schrift und Zwischenräumen, von A4 auf A3:

Im unteren Fall ist die sich ergebende Papiergröße A3.

• a4paper, mag=1414.

Wenn sie ein Layout mit doppelt so großer Schriftgröße, aber ohne das Verändern der Papiergröße wollen, dann tippen sie

• letterpaper, mag=2000, truedimen.

(19)

Sie können diedvipsOption hinzufügen, das ist nützlich, um eine Vorschau der eigenen Papiergrö- ße zu betrachten, die durchdvioutoderxdvierzeugt wird.

10. Verändern des Layouts auf der ersten Seite und Beibehalten der anderen Einstellungen vor dem Laden vongeometry:

Benutzen sie diepassOption,\newgeometryund\restoregeometry.

\documentclass{book}

\usepackage[pass]{geometry}

% ’pass’ vernachlässigt das Paketlayout,

% so wird das originale ’book’ Layout gespeichert.

\begin{document}

\newgeometry{margin=1cm}% Verändert die Maße der ersten Seite.

Seite 1

\restoregeometry % stellt das ’book’ Layout wieder her.

Seite 2 und folgende

\end{document}

11. Ein komplexes Seitenlayout:

\usepackage[a5paper, landscape, twocolumn, twoside,

left=2cm, hmarginratio=2:1, includemp, marginparwidth=43pt,

bottom=1cm, foot=.7cm, includefoot, textheight=11cm, heightrounded, columnsep=1cm, dvips, verbose]{geometry}

Probieren sie das Layoutsetzen selbst und überprüfen sie, wie das Ergebnis ist.:-)

9 Bekannte Probleme

• Mitmag6= 1000undtruedimen,paperwidth undpaperheightist die Anzeige im verbose-Modus verschieden von der wirklichen Größe der resultierenden PDF. Die PDF ist aber korrekt.

• Mitmag6= 1000,notruedimenundhyperrefsolltehyperrefvorgeometrygeladen werden. Andern- falls wird die PDF-Größe fehlerhaft.

• Mit demcropPaket undmag6= 1000arbeitet diecenter-Option voncropnicht gut.

10 Danksagungen

Der Autor würdigt hiermit die hilfreichen Vorschläge und Kommentare Vieler (in alphabetischer Rei- henfolge ihrer Familennamen): Jean-Bernard Addor, Frank Bennett, Alexis Dimitriadis, Friedrich Flen- der, Adrian Heathcote, Stephan Hennig, Morten Høgholm, Jonathan Kew, James Kilfiger, Yusuke Kuroki, Jean-Marc Lasgouttes, Wlodzimierz Macewicz, Frank Mittelbach, Eckhard Neber, Rolf Niepraschk, Hans Fr. Nordhaug, Heiko Oberdiek, Keith Reckdahl, Peter Riocreux, Will Robertson, Pablo Rodriguez, Nico Schlöemer, Perry C. Stearns, Frank Stengel, Plamen Tanovski, Petr Uher, Piet van Oostrum, Vladimir Vo- lovich, Michael Vulis.

(20)

11 Implementierung

1h∗packagei

This package requires the following packages:keyval,ifvtex.

2\RequirePackage{keyval}%

3\RequirePackage{ifvtex}%

Internal switches are declared here.

4\newif\ifGm@verbose

5\newif\ifGm@landscape

6\newif\ifGm@swap@papersize

7\newif\ifGm@includehead

8\newif\ifGm@includefoot

9\newif\ifGm@includemp

10\newif\ifGm@hbody

11\newif\ifGm@vbody

12\newif\ifGm@heightrounded

13\newif\ifGm@showframe

14\newif\ifGm@showcrop

15\newif\ifGm@pass

16\newif\ifGm@resetpaper

17\newif\ifGm@layout

18\newif\ifGm@newgm

\Gm@cnth

\Gm@cntv

The counters for horizontal and vertical partitioning patterns.

19\newcount\Gm@cnth

20\newcount\Gm@cntv

\c@Gm@tempcnt The counter is used to set number withcalc.

21\newcount\c@Gm@tempcnt

\Gm@bindingoffset The binding offset for the inner margin.

22\newdimen\Gm@bindingoffset

\Gm@wd@mp

\Gm@odd@mp

\Gm@even@mp

Correction lengths for\textwidth,\oddsidemarginand\evensidemargininincludempmode.

23\newdimen\Gm@wd@mp

24\newdimen\Gm@odd@mp

25\newdimen\Gm@even@mp

\Gm@layoutwidth

\Gm@layoutheight

\Gm@layouthoffset

\Gm@layoutvoffset

The dimensions for the layout area.

26\newdimen\Gm@layoutwidth

27\newdimen\Gm@layoutheight

28\newdimen\Gm@layouthoffset

29\newdimen\Gm@layoutvoffset

\Gm@dimlist The token in which LATEX native dimensions can be stored.

30\newtoks\Gm@dimlist

\Gm@warning The macro to print warning messages.

31\def\Gm@warning#1{\PackageWarningNoLine{geometry}{#1}}%

\ifGm@preamble The macro executes the option given as an argument only if it’s specified in the preamble, as the options of\usepackageand/or the argument of\geometry. Otherwise, the macro would print the warning message and ignores the option setting.

32\def\ifGm@preamble#1{%

33 \ifGm@newgm

34 \Gm@warning{‘#1’: not available in ‘\string\newgeometry’; skipped}%

35 \else

36 \expandafter\@firstofone

37 \fi}%

\Gm@Dhratio

\Gm@Dhratiotwo

\Gm@Dvratio

The default values for the horizontal and verticalmarginalratio are defined.\Gm@Dhratiotwode- notes the default value of horizontalmarginratiofor twoside page layout with left and right marg- ins swapped on verso pages, which is set bytwoside.

(21)

38\def\Gm@Dhratio{1:1}% = left:right default for oneside

39\def\Gm@Dhratiotwo{2:3}% = inner:outer default for twoside.

40\def\Gm@Dvratio{2:3}% = top:bottom default

\Gm@Dhscale

\Gm@Dvscale

The default values for the horizontal and verticalscale are defined with0.7.

41\def\Gm@Dhscale{0.7}%

42\def\Gm@Dvscale{0.7}%

\Gm@dvips

\Gm@dvipdfm

\Gm@pdftex

\Gm@luatex

\Gm@xetex

\Gm@vtex

The driver names.

43\def\Gm@dvips{dvips}%

44\def\Gm@dvipdfm{dvipdfm}%

45\def\Gm@pdftex{pdftex}%

46\def\Gm@luatex{luatex}%

47\def\Gm@xetex{xetex}%

48\def\Gm@vtex{vtex}%

\Gm@true

\Gm@false

The macros fortrueandfalse.

49\def\Gm@true{true}%

50\def\Gm@false{false}%

\Gm@orgpw

\Gm@orgph

These macros keep original paper (media) size intact.

51\edef\Gm@orgpw{\the\paperwidth}%

52\edef\Gm@orgph{\the\paperheight}%

\Gm@savelength The macro saves the specified length to\Gm@restore.

53\def\Gm@savelength#1{%

54 \g@addto@macro\Gm@restore{\expandafter\noexpand\expandafter\csname

55 #1\endcsname\expandafter=\expandafter\the\csname #1\endcsname\relax}}%

\Gm@saveboolean The macro saves the specified boolean to\Gm@restore.

56\def\Gm@saveboolean#1{%

57 \csname if#1\endcsname

58 \g@addto@macro\Gm@restore{\expandafter\noexpand\csname #1true\endcsname}%

59 \else

60 \g@addto@macro\Gm@restore{\expandafter\noexpand\csname #1false\endcsname}%

61 \fi}%

\Gm@restore The initialization for\Gm@restore.

62\def\Gm@restore{}%

\Gm@save The definition of the macro saving the real lengths LATEX options.

63\def\Gm@save{%

64 \Gm@savelength{paperwidth}%

65 \Gm@savelength{paperheight}%

66 \Gm@savelength{textwidth}%

67 \Gm@savelength{textheight}%

68 \Gm@savelength{evensidemargin}%

69 \Gm@savelength{oddsidemargin}%

70 \Gm@savelength{topmargin}%

71 \Gm@savelength{headheight}%

72 \Gm@savelength{headsep}%

73 \Gm@savelength{topskip}%

74 \Gm@savelength{footskip}%

75 \Gm@savelength{baselineskip}%

76 \Gm@savelength{marginparwidth}%

77 \Gm@savelength{marginparsep}%

78 \Gm@savelength{columnsep}%

79 \Gm@savelength{hoffset}%

80 \Gm@savelength{voffset}

81 \Gm@savelength{Gm@layoutwidth}%

82 \Gm@savelength{Gm@layoutheight}%

83 \Gm@savelength{Gm@layouthoffset}%

84 \Gm@savelength{Gm@layoutvoffset}%

85 \Gm@saveboolean{@twocolumn}%

(22)

86 \Gm@saveboolean{@twoside}%

87 \Gm@saveboolean{@mparswitch}%

88 \Gm@saveboolean{@reversemargin}}%

\Gm@initnewgm The macro initializes the parameters for layout in\newgeometry.

89\def\Gm@initnewgm{%

90 \Gm@passfalse

91 \Gm@swap@papersizefalse

92 \Gm@dimlist={}

93 \Gm@hbodyfalse

94 \Gm@vbodyfalse

95 \Gm@heightroundedfalse

96 \Gm@includeheadfalse

97 \Gm@includefootfalse

98 \Gm@includempfalse

99 \let\Gm@width\@undefined

100 \let\Gm@height\@undefined

101 \let\Gm@textwidth\@undefined

102 \let\Gm@textheight\@undefined

103 \let\Gm@lines\@undefined

104 \let\Gm@hscale\@undefined

105 \let\Gm@vscale\@undefined

106 \let\Gm@hmarginratio\@undefined

107 \let\Gm@vmarginratio\@undefined

108 \let\Gm@lmargin\@undefined

109 \let\Gm@rmargin\@undefined

110 \let\Gm@tmargin\@undefined

111 \let\Gm@bmargin\@undefined

112 \Gm@layoutfalse

113 \Gm@layouthoffset\z@

114 \Gm@layoutvoffset\z@

115 \Gm@bindingoffset\z@}%

\Gm@initall This initialization is called as soon as the package is load It’s also called as soon asresetoption is specified.

116\def\Gm@initall{%

117 \let\Gm@driver\@empty

118 \let\Gm@truedimen\@empty

119 \let\Gm@paper\@undefined

120 \Gm@resetpaperfalse

121 \Gm@landscapefalse

122 \Gm@verbosefalse

123 \Gm@showframefalse

124 \Gm@showcropfalse

125 \Gm@newgmfalse

126 \Gm@initnewgm}%

\Gm@setdriver The macro sets the specified driver.

127\def\Gm@setdriver#1{%

128 \expandafter\let\expandafter\Gm@driver\csname Gm@#1\endcsname}%

\Gm@unsetdriver The macro unsets the specified driver if it has been set.

129\def\Gm@unsetdriver#1{%

130 \expandafter\ifx\csname Gm@#1\endcsname\Gm@driver\let\Gm@driver\@empty\fi}%

\Gm@setbool

\Gm@setboolrev

The macros for boolean option processing.

131\def\Gm@setbool{\@dblarg\Gm@@setbool}%

132\def\Gm@setboolrev{\@dblarg\Gm@@setboolrev}%

133\def\Gm@@setbool[#1]#2#3{\Gm@doif{#1}{#3}{\csname Gm@#2\Gm@bool\endcsname}}%

134\def\Gm@@setboolrev[#1]#2#3{\Gm@doifelse{#1}{#3}%

135 {\csname Gm@#2\Gm@false\endcsname}{\csname Gm@#2\Gm@true\endcsname}}%

\Gm@doif

\Gm@doifelse

\Gm@doifexcutes the third argument#3using a boolean value#2of a option#1.\Gm@doifelse executes the third argument#3if a boolean option #1with its value #2 true, and executes the fourth argument#4iffalse.

(23)

136\def\Gm@doif#1#2#3{%

137 \lowercase{\def\Gm@bool{#2}}%

138 \ifx\Gm@bool\@empty

139 \let\Gm@bool\Gm@true

140 \fi

141 \ifx\Gm@bool\Gm@true

142 \else

143 \ifx\Gm@bool\Gm@false

144 \else

145 \let\Gm@bool\relax

146 \fi

147 \fi

148 \ifx\Gm@bool\relax

149 \Gm@warning{‘#1’ should be set to ‘true’ or ‘false’}%

150 \else

151 #3

152 \fi}%

153\def\Gm@doifelse#1#2#3#4{%

154 \Gm@doif{#1}{#2}{\ifx\Gm@bool\Gm@true #3\else #4\fi}}%

\Gm@reverse The macro reverses a bool value.

155\def\Gm@reverse#1{%

156 \csname ifGm@#1\endcsname

157 \csname Gm@#1false\endcsname\else\csname Gm@#1true\endcsname\fi}%

\Gm@defbylen

\Gm@defbycnt

Macros\Gm@defbylenand\Gm@defbycntcan be used to define\Gm@xxxxvariables by length and counter respectively withcalcpackage.

158\def\Gm@defbylen#1#2{%

159 \begingroup\setlength\@tempdima{#2}%

160 \expandafter\xdef\csname Gm@#1\endcsname{\the\@tempdima}\endgroup}%

161\def\Gm@defbycnt#1#2{%

162 \begingroup\setcounter{Gm@tempcnt}{#2}%

163 \expandafter\xdef\csname Gm@#1\endcsname{\the\value{Gm@tempcnt}}\endgroup}%

\Gm@set@ratio The macro parses the value of options specifying marginal ratios, which is used in\Gm@setbyratio macro.

164\def\Gm@sep@ratio#1:#2{\@tempcnta=#1\@tempcntb=#2}%

\Gm@setbyratio The macro determines the dimension specified by#4calculating#3×a/b, whereaandbare given by\Gm@mratiowitha:bvalue. If#1in brackets isb,aandbare swapped. The second argument withhorvdenoting horizontal or vertical is not used in this macro.

165\def\Gm@setbyratio[#1]#2#3#4{% determine #4 by ratio

166 \expandafter\Gm@sep@ratio\Gm@mratio\relax

167 \if#1b

168 \edef\@@tempa{\the\@tempcnta}%

169 \@tempcnta=\@tempcntb

170 \@tempcntb=\@@tempa\relax

171 \fi

172 \expandafter\setlength\expandafter\@tempdimb\expandafter

173 {\csname Gm@#3\endcsname}%

174 \ifnum\@tempcntb>\z@

175 \multiply\@tempdimb\@tempcnta

176 \divide\@tempdimb\@tempcntb

177 \fi

178 \expandafter\edef\csname Gm@#4\endcsname{\the\@tempdimb}}%

\Gm@detiv This macro determines the fourth length(#4) from#1(layoutwidthorlayoutheight),#2and#3. It is used in\Gm@detallmacro.

179\def\Gm@detiv#1#2#3#4{% determine #4.

180 \expandafter\setlength\expandafter\@tempdima\expandafter

181 {\csname Gm@layout#1\endcsname}%

182 \expandafter\setlength\expandafter\@tempdimb\expandafter

183 {\csname Gm@#2\endcsname}%

184 \addtolength\@tempdima{-\@tempdimb}%

References

Related documents

Wie bereits gesagt, sind die Enden von Absätzen nicht wirklich zuverlässig erkennbar, so dass häufig erst bei dem Beginn einer neuen Struktur auf ein Ende geschlossen werden kann.

Der Deskjet kann die letzten 14 mm des Blattes nicht bedrucken, daher wurde das ganze Layout um 4 mm verschoben, diese m¨ ussen an der kurzen Kante abgeschnitten werden. Bei

adrconv.bst Erzeugt eine Adressdatei, die sowohl mit der KOMA - Script Brief- klasse zum Einfügen von Adressen in Briefe als auch mit dem Programm adrdir.tex zur Erzeugung

Außerdem gibt es eine Klasse zum Setzen einer Tabelle mit den aktuellen Bewerbungsversuchen, die der Agentur für Arbeit vor- gelegt werden kann.. Die Daten der Bewerbungsversuche

Eine hwdi (default \cmidrulewidth) Linie mit \aboverulesep Abstand darüber (außer sie folgt einer anderen \cmidrule, in welchem Fall sie der gleichen verti- kalen Anordnung folgt.

Ohne andere Definition gilt, dass der Text durchgestrichen wird oder je nach Option markup bzw.

• Die Option ‘color=farbe’ ändert die Farbe der Nummern, mit denen die Aufgaben und Lösungen durchnummeriert werden, der Linien, die die beispiel-Umgebung einrahmen, und

Wird außerhalb einer jeden Tabelle, zu Beginn einer Zeile oder als &gt; Definition innerhalb einer Tabellenpräambel in der Tabellenmitte eine Regel eingefügt, gilt diese nur für

(Ein solches Vorkommen kann nur dann sein, wenn die Haupt-Datei mit \input{...} geladen wurde, anstatt einfach so den Namen auf der Kommandozeile anzugeben, oder wenn die

Der Befehl \setaddressllcorner{hL¨ angenangabei}{hL¨ angenangabei} legt mit seinen beiden Argumenten die Position der linken unteren Ecke des Fensters be- zogen auf die linke obere

If you want some text typeset with the duerer fonts for a short text you can use one of the commands. \

Wird für die Option hbracesi hroundi verwendet, so wird \exercises@braces so definiert, dass runde Klammern ausgegeben werden.

Der Pfeil selbst nimmt dann eine ausreichend hohe Länge an, um an beiden Seiten etwas über die Formel hin- auszuragen.. 1.2 Die

Hinzugekommen ist lediglich das fünfte Argument. Es ist nur in \Namedoc von Bedeutung: In der Dokumentation wird das Argument an den Befehl angehängt. In der Beschreibung

A layout with the left, right, and top margin 3cm, 2cm and 2.5in respectively, with textheight of 40 lines, and with the head and foot of the page included in total body. A layout

Falls die Option headline gesetzt wurde, wird auch die Option headline für geometry gesetzt. Möchte man den Satzspiegel ändern, so sollte man hierfür die Befehle \setpgfront{

Finally, the \printindex command is used in your L A TEX document to indicate where the file foo.idx should be inserted, i.e., where the index should appear in your document.. The

Als Erstes sollte der Titel des Papiers in der Sprache des Papiers ( title ) und in Alternativsprache ( titlealt ) angegeben werden:.. \title{Die \LaTeX-Vorlage

\maketitle bekommt ein neues Layout. Der Name des Autors / der Autoren er- scheint linksb¨ undig am oberen Rand. Daf¨ ur wird im we- sentlichen die Standardumgebung description

b) Das sagt z.B. einer meiner verehrten Kollegen... Beispiel: Wenn ein Satz mit einer Abkürzung endet, die einen Punkt enthält, muss der Befehl \abbhKennungi&gt; verwendet werden,

Le lieu et le titre sont mis en premier dans la seconde colonne, chacun dans la bonne fonte, et en les faisant suivre d’un point. Ensuite, on ajoute, si elle existe,

M AGNETICS formats present a difficulty in that compsoc and transmag journal (but not compsoc conference) papers place the abstract and index terms sections in single column format

The package consists of a preprocessor that converts an indented list tree format into L A TEX input (plain TEX doesn’t seem to work), and some macro files which lay out the trees