Abstand Kopf-/Fußzeile zum Blattrand, ohne Seitenrand ändern

Layout von Seiten, Rändern, Fusszeilen, usw, modifizieren


MoonKid
Forum-Meister
Forum-Meister
Beiträge: 690
Registriert: Sa 30. Jun 2012, 11:56

Abstand Kopf-/Fußzeile zum Blattrand, ohne Seitenrand ändern

Beitrag von MoonKid »

Wenn jemandem ein kürzer und sinnvollerer Titel einfällt, bitte her damit. ;)

So, neue Uni und neue Vorgaben. Beim zweiten Mal tut es aber schon nicht mehr so weh.

Die "Seitenränder" sind fest vorgegeben (siehe Minibeispiel). Gleichzeitig wird auch der Abstand der Kopf- und Fußzeilen zum Blattrand fest vorgegeben. Da weiß ich nun nicht weiter.

Beispielsweise soll der oberer Seitenrand 2,5cm sein und die Kopfzeile einen Abstand zum Blattrand von 1,5cm haben.
%% border.tex
\documentclass[oneside,a4paper]{scrartcl}
\usepackage{xltxtra}
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}

\usepackage[a4paper,
            left=35mm,right=25mm,top=25mm,bottom=20mm,
            includehead=false, % Kopfzeile außerhalb des Textkörper, also im Rand
            includefoot=false,
            showframe,
            bindingoffset=0mm]{geometry}
% Kopfzeile 1,5 cm Abstand zum Blattrand
% Fußzeile 1,25 cm Abstand zum Blattrand
\usepackage{lipsum}

%% Document %%
\begin{document}
\lipsum
\end{document}
Geht das direkt, oder muss man hier von hinten durchs Auge? Vielleicht den Kopfzeilen-Inhalt auf eine feste Höhe (hier 1cm) einstellen?
XeLaTeX, TeX Live, vim-latexsuite

Benutzeravatar
iTob
Forum-Meister
Forum-Meister
Beiträge: 1221
Registriert: Mo 19. Apr 2010, 22:19
Kontaktdaten:

Beitrag von iTob »

Soweit ich weiß geht das nicht direkt, du musst vom Satzspiegel ausgehend zurückrechnen. Das Rechen kannst du allerdings TeX für dich machen lassen:
% !TeX program = xelatex
% border.tex
\documentclass[oneside,a4paper]{scrartcl}
\usepackage{xltxtra}
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}

\makeatletter
\usepackage{geometry}
\geometry{a4paper,
          left=35mm,right=25mm,top=25mm,bottom=20mm,
          includehead=false, % Kopfzeile außerhalb des Textkörper, also im Rand
          includefoot=false,
          headheight = \baselineskip,
          headsep = \dimexpr\Gm@tmargin-\headheight-15mm,
          footskip = \dimexpr\Gm@bmargin-12.5mm,
          showframe,
          bindingoffset=0mm}
% Kopfzeile 1,5 cm Abstand zum Blattrand
% Fußzeile 1,25 cm Abstand zum Blattrand
\makeatother


\usepackage{lipsum}

%% Document %%
\begin{document}
\lipsum
\end{document}
Beachte bitte, dass ich von Paketoptionen auf \geometry{…} umgestellt habe; andernfalls kann man nicht auf \Gm@xmargin zugreifen.
Ich biete Hilfe, Beratung und Schulung für alle Fragen rund um TeX, Buchgestaltung und Textsatz, sowie Grafik- und Kommunikationsdesign.
Mehr Infos und Kontakt unter tobiw.de.

Hier schreibe ich über TeX: Mein Blog „TeX-Beispiel des Monats“ (Deutsch) und TeX.tips (Englisch).

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

Als ich die Frage las, achte ich es würde den horizontalen Abstand zum äußeren Rand betreffen. Das wäre einfacher zu realisieren.
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

Besserwisser

Beitrag von Besserwisser »

Bei Verwendung von scrlayer-scrpage ist es übrigens recht einfach, die Position von Kopf oder Fuß zu verschieben, ohne den Rand zu ändern. Man muss dazu nur die Positionen der für Kopf und Fuß verwendeten Ebenen ändern.

MoonKid
Forum-Meister
Forum-Meister
Beiträge: 690
Registriert: Sa 30. Jun 2012, 11:56

Beitrag von MoonKid »

Besserwisser hat geschrieben:Bei Verwendung von scrlayer-scrpage ist es übrigens recht einfach, die Position von Kopf oder Fuß zu verschieben, ohne den Rand zu ändern. Man muss dazu nur die Positionen der für Kopf und Fuß verwendeten Ebenen ändern.
"Ebenen"? Mhm... Hast du kurz n Tipp, wo in der Doku ich was dazu finden kann?

Nochmal zu meinem Grundverständnis:
"Normalerweise" (in meinem Use-Case mit festen Seitenrändern und includehead/-foot=false) ist der Abstand von Kopf-/Fußzeile zum oberen/unteren Blattrand ja variabel und wird u.a. vom Inhalt (evtl. mehrzeilig, Schriftgröße) der Kopf-/Fußzeile beeinflusst?
XeLaTeX, TeX Live, vim-latexsuite

MoonKid
Forum-Meister
Forum-Meister
Beiträge: 690
Registriert: Sa 30. Jun 2012, 11:56

Beitrag von MoonKid »

iTob hat geschrieben:Beachte bitte, dass ich von Paketoptionen auf \geometry{…} umgestellt habe
Danke für den Hinweis - das hätte ich Nase wieder übersehen. Das das TeX-Code ist, ist für Anfänger (oder Dauer-Nixblicker wie mich) auch immer ein hilfreicher Hinweis. \makeatletter geht bei mir Hintergrundrauschen unter - das nehme ich nicht war.

Im Ausdruck kann ich es leider nicht nachmessen, weil mein Druckertreiber "krank" ist. Auf dem Schirm mit 100% Zoom ist es aber annährend exakt messbar und korret. ;)

Aber nur um nochmal zu sehen, ob ich wirklich verstanden habe, was da passiert:
  • * Die Höhe (headheight) der Kopfzeile wird auf die Höhe einer Zeile (\baselineskip) gesetzt.
    * headsep ist der Abstand zwischen Textkörper und unterem Rand der Kopfzeile.
    * headsep = oberer Seitenrand (top=25mm) minus Höhe der Kopfzeile (headheight) minus gewünschter Abstand des oberen Kopfzeilenrandes zum Blattrand (15mm)
Fußzeile ist einfacher, wobei für mich interessant wäre, warum bei Kopf- und Fußzeile unterschiedliche Höhenparameter existieren. footskip ist einfach die Höhe der Fußzeile (vermutlich Text-/Zeilenhöhe plus irgendwas). Deswegen ist mein gewünschter Abstand des unteren Fußzeilenrandes zum Blattrand einfach unterer Seitenrand (bottom=20mm) minus Höhe der Kopfzeile (footskip).
XeLaTeX, TeX Live, vim-latexsuite

Benutzeravatar
iTob
Forum-Meister
Forum-Meister
Beiträge: 1221
Registriert: Mo 19. Apr 2010, 22:19
Kontaktdaten:

Beitrag von iTob »

Nabend,

jo, fast alles richtig ;-)

\makeatletter braucht man, um das @ als Teil von Befehlsnamen verfügbar zu machen. Das @ wird in Paketinternen Befehlen benutzt, die dadurch vor dem Endnutzer „geschützt“ sind. Mit \makeatother schaltet man das dann wieder ab.

Also TeX-Befehle im Sinne von plainTeX ist nur \dimexpr. Der rest ist LaTeX (ich nutze „TeX“ nur als übergeordneten Begriff …)

footskip bezeichnet den Abstand von der unteren Satzkante zur Grundlinie (!) der Fußzeile (dabei wird per se davon ausgegangen, dass der Fuß nur eine Zeile hoch ist). Mit aktiver showframe-Option, sieht du, dass der Fuß Bereich nur als eine Linie dargestellt wird, auf der dann bspw. die Seitenzahl steht.

Und um das vielleicht nochmal etwas ausführlicher zu erklären \Gm@tmargin ist ein von geometry inter definierter Befehl, der aber während der Ausführung der Paketoptionen – warum auch immer – noch nicht verfügbar ist, sondern nur/erst, wenn man die Optionen mit \geometry{} setzt.

Und \baslineskip ist der Abstand zwischen zwei Grundlinien, also im Grunde die Zeilenhöhe. Diese ist aber nicht gleich der Höhe der Großbuchstaben.

Zuletzt noch: Falls du testen willst, wie „krank“ dein treuer ist, findest du auf meiner Seite unter http://tobiw.de/downloads einen Ausrichtungstest für Drucker. Auf der gleichen Seite stelle ich seit neustem auch eine Übersicht mit allen Längeneinheiten, die man in TeX nutzen kann, zur Verfügung.

So … ich hoffe, damit habe ich alle fraglichen Stellen erwischt :-)

Gute Nacht!
Tobi

PS: Den Status der Frage hab ich mal auf „beantwortet“ gesetzt.
Ich biete Hilfe, Beratung und Schulung für alle Fragen rund um TeX, Buchgestaltung und Textsatz, sowie Grafik- und Kommunikationsdesign.
Mehr Infos und Kontakt unter tobiw.de.

Hier schreibe ich über TeX: Mein Blog „TeX-Beispiel des Monats“ (Deutsch) und TeX.tips (Englisch).

Antworten