Ich entwerfe ein Dokumentlayout (von immer gleichem Seitenaufbau und Querformat) und möchte, bis auf einen drucktechnisch bedingten Seitenrand (margin=2.75cm, Beispielwert) möglichst die gesamte Blattgröße nutzen.

Ich brauche einen (mehrzeiligen) Kopf. Den Abstand zum Kopf habe ich schonmal beseitigt (headsep=0mm). Ich brauche keinen Fuß.

Wie erreiche ich, das der Textkörper inklusive Kopf oben auch den eingestellten margin Rand hat, im Beispiel 2.75cm. Also der rote Maßpfeil müsste wie die anderen grünen sein, was der blaue andeuten soll.

alt text

Öffne in Overleaf
\documentclass[landscape,ngerman]{scrartcl}
\def\Margin{2.75cm}
\usepackage[margin=\Margin,
include head, 
headsep=0mm,%
showframe=true]{geometry}

\usepackage{lmodern}
\renewcommand*{\familydefault}{\sfdefault}

\usepackage{scrlayer-scrpage}
%\pagestyle{scrheadings} % Default
\setkomafont{pagehead}{\normalfont}
\ihead{Head \\ head \\ head}
\ifoot{}
\cfoot{}% keine Seitenzahl oder Foot anzeigen!

\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[
shift={(current page.south west)}, overlay, remember picture,
green!50!black, <->, ultra thick,]
% \node[red]{XXX};
\draw[] (current page.south) -- ([yshift=\Margin]current page.south) node[midway, right]{margin};
\draw[] (current page.west) -- ([xshift=\Margin]current page.west) node[midway, above]{margin};
\draw[] (current page.east) -- ([xshift=-\Margin]current page.east) node[midway, above]{margin};

\draw[red] (current page.north) -- ([yshift=-\Margin]current page.north) node[midway, right]{margin IST};

\draw[blue] ([xshift=-5cm]current page.north) -- ([xshift=-5cm, yshift=-\Margin+2.115em]current page.north) node[midway, right]{margin SOLL};
\end{tikzpicture}

\end{document}

gefragt 26 Nov, 14:45

cis's gravatar image

cis
8.5k16172275
Akzeptiert: 68%

bearbeitet 06 Dez, 09:48

\usepackage[nofoot,...]{geometry}?

(26 Nov, 15:47) Henri

@Henri: Öhm, aha. Hat aber leider nur einen Effekt, wenn scrlayer-scrpage.sty nicht verwendet wird. Ich brauche aber einen head.

(26 Nov, 16:49) cis

Ich habe ein paar Verständnisprobleme. Derzeit werden sowohl die Kopfzeile als auch die Fußzeile als auch die Spalte für die Randnotizen innerhalb des 2,75cm großen Randes ausgegeben. Wenn Du keine Randnotizen und keine Einträge in der Fußzeile verwendest, dann hast Du also 2,75 cm Abstand zwischen Papierkante und Textkörper.

(27 Nov, 03:16) esdd

Allerdings gehört Deine Kopfzeile derzeit zum Rand. Der Abstand von der Oberkante der Kopfzeile zur Papierkante ist also kleiner als 2,75 cm. In Deiner Frage hört es sich jedoch so an, als sollten die 2,75 cm der Abstand zwischen Papierkante und Kopfzeile sein? Falls dem so ist, musst Du noch includehead und einen passenden Wert für headheight (siehe die Warnung von scrlayer-scrpage) als Optionen von geometry angeben.

(27 Nov, 03:20) esdd

Ach so, ich habe mir das mal angeschaut: Der mit margin=... eingestellte Wert ist der Abstand von der Seitenkante zum Textkörper; und der foot und der head geistern in diesem Abstand rum. Dann kann man den foot einfach leer lassen und das einzige Problem ist, dass der Abstand von der Seitenoberkannte zum head auch den eingestellten margin-Wert haben soll, bei ggf. variablem, mehrzeiligem head-Inhalt.

Dazu überarbeite ich mein MWE...

(27 Nov, 08:55) cis
1

Wenn der Seitenkopf dreizeilig mit normaler Schriftgröße ist, dann headheight=3\baselineskip als geometry Option?

(27 Nov, 10:21) esdd

Achso. Oje, ne eigentlich kann der head-Inhalt variabel sein, mit allen möglichen Inhalten.

(27 Nov, 10:45) cis

Es müsste irgendwie so gehen:
\begin{document} \newlength\Headheight \def\Head{Head \\ head \\ head \\ head} \settoheight\Headheight{\Head} % \newgeometry{headheight=\Headheight} % \restoregeometry \setlength\headheight{\Headheight} \ihead{\Head} Wert: \the\Headheight

Passt aber nicht...

(27 Nov, 12:44) cis
Ergebnis 5 von 8 Alle anzeigen

Gibt man für die Berechnung des Randes durch geometry nicht explizit eine Höhe für den Kopf an, so verwendet das Paket den derzeit eingestellten Wert der Länge \headheight. Bei scrartcl bzw. dem davon verwendeten typearea ist das in der Voreinstellung laut Doku 1.25\baselineskip. Genau für diesen Wert berechnet geometry dann die Randeinstellungen. Ist der Kopf in Wirklichkeit höher, so wächst er in den Rand hinein. Außerdem gibt das hier verwendete scrlayer-scrpage dann eine Warnung aus und korrigiert ggf. einige Längen.

Für ein korrektes Layout ist es daher erforderlich, dass man auch die Höhe des Kopfes korrekt angibt, beispielsweise:

Öffne in Overleaf
\documentclass[landscape,ngerman,headlines=3]{scrartcl}
\def\Margin{2.75cm}
\usepackage[margin=\Margin,
includehead, 
headsep=0mm,%
showframe=true]{geometry}

\usepackage{lmodern}
\renewcommand*{\familydefault}{\sfdefault}

\usepackage{scrlayer-scrpage}
%\pagestyle{scrheadings} % Default
\setkomafont{pagehead}{\normalfont}
\ihead{Head \\ head \\ head}
\ifoot{}
\cfoot{}% keine Seitenzahl oder Foot anzeigen!

\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[
shift={(current page.south west)}, overlay, remember picture,
green!50!black, <->, ultra thick,]
% \node[red]{XXX};
\draw[] (current page.south) -- ([yshift=\Margin]current page.south) node[midway, right]{margin};
\draw[] (current page.west) -- ([xshift=\Margin]current page.west) node[midway, above]{margin};
\draw[] (current page.east) -- ([xshift=-\Margin]current page.east) node[midway, above]{margin};

\draw[red] (current page.north) -- ([yshift=-\Margin]current page.north) node[midway, right]{margin IST};

\draw[blue] ([xshift=-5cm]current page.north) -- ([xshift=-5cm, yshift=-\Margin+2.115em]current page.north) node[midway, right]{margin SOLL};
\end{tikzpicture}

\end{document}

wenn der rote Pfeil bis zum oberen Rand des Kopfes gehen soll oder:

Öffne in Overleaf
\documentclass[landscape,ngerman,headlines=3]{scrartcl}
\def\Margin{2.75cm}
\usepackage[margin=\Margin,
includehead, 
headsep=0mm,%
showframe=true]{geometry}

\usepackage{lmodern}
\renewcommand*{\familydefault}{\sfdefault}

\usepackage{scrlayer-scrpage}
%\pagestyle{scrheadings} % Default
\setkomafont{pagehead}{\normalfont}
\ihead{Head \\ head \\ head}
\ifoot{}
\cfoot{}% keine Seitenzahl oder Foot anzeigen!

\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[
shift={(current page.south west)}, overlay, remember picture,
green!50!black, <->, ultra thick,]
% \node[red]{XXX};
\draw[] (current page.south) -- ([yshift=\Margin]current page.south) node[midway, right]{margin};
\draw[] (current page.west) -- ([xshift=\Margin]current page.west) node[midway, above]{margin};
\draw[] (current page.east) -- ([xshift=-\Margin]current page.east) node[midway, above]{margin};

\draw[red] (current page.north) -- ([yshift=-\Margin]current page.north) node[midway, right]{margin IST};

\draw[blue] ([xshift=-5cm]current page.north) -- ([xshift=-5cm, yshift=-\Margin+2.115em]current page.north) node[midway, right]{margin SOLL};
\end{tikzpicture}

\end{document}

falls der rote Pfeil bis zum Anfang des Textbereichs gehen soll. Natürlich kann man die Kopfhöhe auch über geometry's Option headheight setzen, beispielsweise:

Öffne in Overleaf
\usepackage[margin=\Margin,
  headheight=3\baselineskip,
  headsep=0mm,%
  showframe=true]{geometry}

Noch ein Hinweis zu \settoheight, weil das in einem Kommentar vorkommt: Zum einen misst das die Höhe einer horizontalen Box aus. Daher erzeugt \\ keine neuen Zeilen sondern bleibt wirkungslos. Zum anderen misst es eben nur die Höhe und berücksichtigt nicht die Tiefe!

Permanenter link

beantwortet 28 Nov, 07:42

Ijon%20Tichy's gravatar image

Ijon Tichy
7.8k11019

Erstmal danke. Ja, das habe ich schon gemerkt, dass \settoheight\Headheight{head \\ head \\ ...} nicht funktioniert.
headheight=3\baselineskip bzw. headlines=3 geht von einer wohldefinierten Anzahl von Zeilen im head aus.

Um es konkret zu machen: ich möchte in den head nicht nur Textzeilen, sondern auch zwei TikZ-Graphiken (variabler Abmessungen) setzen, somit könnte der Weg über headheight oder headlines nur ein Näherungswert sein. Ich glaube das Problem fokussiert sich auf die Höhenmessung des konkreten head-Inhalts. Ich werde das ggf. in einer neuen Frage thematisieren.

(28 Nov, 10:38) cis

@cis: Wenn der rote Pfeil bis zum Anfang des Textbereichs gehen soll, kann man natürlich LaTeX auch erzählen, dass der Kopf nur eine bestimmte Höhe hat (Stichwort: \parbox[t][\headheight][t]{…}), obwohl das nicht stimmt. Dann ragt der Kopf automatisch bei Bedarf weiter in den oberen Rand. Wenn der rote Pfeil aber bis zum Anfang des Kopfes gehen soll, dann geht das natürlich nicht. Dann muss man die Höhe des Kopfes kennen. Anderenfalls würde der Kopf ja ggf. in den Textbereich ragen und das will man sicher nicht. Und ein hüpfender Textanfang wäre ebenfalls abzulehnen.

(28 Nov, 11:00) Ijon Tichy
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×106
×27
×13

Frage gestellt: 26 Nov, 14:45

Frage wurde angeschaut: 532 Mal

Zuletzt aktualisiert: 28 Nov, 11:01