Titelkopf mit anderem Layout als restlicher Satzspiegel

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


mrpiggi
Forum-Anfänger
Forum-Anfänger
Beiträge: 18
Registriert: Mi 3. Apr 2013, 17:42

Titelkopf mit anderem Layout als restlicher Satzspiegel

Beitrag von mrpiggi »

Hallo zusammen,
ich würde gerne einen Titelkopf (keine Titelseite) mit einem anderen Layout als den restlichen Text setzen. Dabei soll das Paket geometry zum Einsatz kommen. Der Hintergrund ist, dass ich in einer eigenen Klasse für den Titelkopf gerne ein Logo in der Kopfzeile setzen möchte, welches relativ hoch ist und im weiteren Dokument nicht mehr in der Kopfzeile auftauchen soll. Eine Verwendung von \titlehead möchte ich ausschließen, damit dieser Befehl dem Anwender weiterhin zur freien Gestaltung zur Verfügung steht.

So ähnlich war das bereits hier schon mal Thema, blieb allerdings ungelöst.

Grüße
Falk
\documentclass{scrartcl}
\usepackage[T1]{fontenc}
\usepackage{selinput}
\SelectInputMappings{adieresis={ä},germandbls={ß},Euro={€}}
\usepackage[automark]{scrpage2}
\usepackage{blindtext}
\usepackage{showframe}
\usepackage{geometry}
\newgeometry{left=3cm,right=3cm,top=5cm,head=4cm,bottom=3cm}
\savegeometry{title}
\newgeometry{left=3cm,right=3cm,top=2cm,head=1cm,bottom=3cm}
\savegeometry{text}
\usepackage{afterpage}
\begin{document}
\title{Title}
\renewcommand{\titlepagestyle}{scrheadings}
\lohead{\rule{5cm}{3cm}}
\loadgeometry{title}
\maketitle
\afterpage{\clearpage\restoregeometry}
\Blindtext[4][2]
\end{document}

Noch so einer

Beitrag von Noch so einer »

\afterpage-Code wird in min. einer Gruppe ausgeführt. Globale Änderungen sind damit also nicht sauber möglich.

Die einfachste Lösung wäre, das Logo mit textpos oder eso-pic an die gewünschte zu klatschen. Ggf. musst Du dann aber auch noch \maketitle manipulieren, um am Anfang genügend Abstand einzufügen. Beispielsweise:
\renewcommand{\titlehead}[1]{%
  \gdef\@titlehead{\vskip 2cm #1}}
\titlehead{}
Natürlich könntest Du bei der Umdefinierung von \titlehead auch direkt das Logo mit einbauen. Um es hoch genug zu setzen:
\renewcommand*{\titlehead}[1]{%
  \gdef\@titlehead{\vspace*{-3cm}\includegraphics{Logo}\par\vspace{1cm}#1}%
}
\titlehead{}
Der Code sei hier nur als Beispiel betrachtet.

Am Saubersten wäre natürlich, wenn Du tatsächlich \maketitle umdefinieren würdest.

Wenn Du hingegen einen ganz üblen Hack verwenden willst, der sich auf diverse LaTeX-Interna verlässt und außerdem Sicherheitsmechanismen von geometry umgeht, dann ginge:
% Bastle das in die Präambel
\newcommand*{\localrestoregeometry}{%
  \expandafter\let\expandafter\clearpage\expandafter\relax
  \expandafter\restoregeometry\expandafter\def\expandafter\clearpage\expandafter{\clearpage}
}
% Und verwende das besser niemals im Dokument
\afterpage{\aftergroup\aftergroup\aftergroup\localrestoregeometry}

mrpiggi
Forum-Anfänger
Forum-Anfänger
Beiträge: 18
Registriert: Mi 3. Apr 2013, 17:42

Beitrag von mrpiggi »

Alles klar, dann doch über die \titlehead-Variante. Dankeschön.

Epllus
Forum-Guru
Forum-Guru
Beiträge: 470
Registriert: So 23. Sep 2012, 17:31

Beitrag von Epllus »

Noch ein kleiner Zusatz zu Noch so einer:

Soweit ich es verstanden habe, ist die Änderung des Satzspiegels zwischen zwei Seiten mit automatischen Seitenumbruch nicht möglich.

Das liegt daran, dass TeX immer komplette Absätze umbricht, und beim Zerlegen über eine/mehrere Seiten den Absatzumbruch beibehält. Um den Absatz während eines Seitenumbruches umstrukturieren zu können, würden Informationen wie Trennung, Strafpunkte etc. benötigt. Das Problem ist nun, dass TeX diese Informationen scheinbar nicht benötigt und wegwirft.

Um es kurz zu machen: Automatischer Seitenumbruch und Layoutänderung nicht möglich (jedenfalls so lange nicht, bis jemand TeX entsprechend modifiziert).

Hier meine (auch nicht ganz koschere) Lösung:
\documentclass{scrartcl} 
\usepackage[T1]{fontenc} 
\usepackage{selinput} 
\SelectInputMappings{adieresis={ä},germandbls={ß},Euro={€}} 
\usepackage[automark]{scrpage2} 
\usepackage{blindtext} 
\usepackage{showframe} 
\usepackage{geometry} 
\newgeometry{left=3cm,right=3cm,top=2cm,head=1cm,bottom=3cm} 

\begin{document} 
\title{\vspace{2cm}Title} 
\renewcommand{\titlepagestyle}{scrheadings} 
\lohead{\parbox[b][4cm]{5cm}{\rule{5cm}{3cm}}} 
\maketitle 

\Blindtext[4][2] 

\end{document} 
Hoffe meine Erklärung ist richtig
Epllus

Edit: Da ich nicht genau weiß, wie der Status ist, werde ich ihn mal auf „offen“ lassen.

mrpiggi
Forum-Anfänger
Forum-Anfänger
Beiträge: 18
Registriert: Mi 3. Apr 2013, 17:42

Dann doch noch mal...

Beitrag von mrpiggi »

...zum Verständnis. Was ist an diesem Hack denn so übel, dass ich den nicht nutzen sollte? Der macht schließlich genau das, was ich will.

Besserwisser

Beitrag von Besserwisser »

\vspace gehört eigentlich nicht in das Argument von \title. Außerdem ist das nicht idiotensicher. Wenn der Anwender das \vspace weglässt, dann fehlt der Abstand. Es hängt also letztlich wieder am Anwender, also könntest Du auch gleich \titlehead dafür verwenden …

Epllus
Forum-Guru
Forum-Guru
Beiträge: 470
Registriert: So 23. Sep 2012, 17:31

Beitrag von Epllus »

Besserwisser hat geschrieben:\vspace gehört eigentlich nicht in das Argument von \title. Außerdem ist das nicht idiotensicher. Wenn der Anwender das \vspace weglässt, dann fehlt der Abstand. Es hängt also letztlich wieder am Anwender, also könntest Du auch gleich \titlehead dafür verwenden …
Stimmt, das habe ich noch gar nicht bedacht. Ich werde es mir merken; und im Endeffekt ist die Umdefinition von \titlehead sauberer.

Besserwisser

Beitrag von Besserwisser »

:lol:

Mein Hinweis war eigentlich gar nicht als Kritik an Deiner Lösung, sondern als Antwort auf mrpiggis Frage gedacht.

mrpiggi
Forum-Anfänger
Forum-Anfänger
Beiträge: 18
Registriert: Mi 3. Apr 2013, 17:42

Beitrag von mrpiggi »

Besserwisser hat geschrieben::lol:

Mein Hinweis war eigentlich gar nicht als Kritik an Deiner Lösung, sondern als Antwort auf mrpiggis Frage gedacht.
Gut zu wissen, denn eigentlich bezog sich meine Frage eher auf diesen Hack:
Noch so einer hat geschrieben: Wenn Du hingegen einen ganz üblen Hack verwenden willst, der sich auf diverse LaTeX-Interna verlässt und außerdem Sicherheitsmechanismen von geometry umgeht, dann ginge:
% Bastle das in die Präambel
\newcommand*{\localrestoregeometry}{%
  \expandafter\let\expandafter\clearpage\expandafter\relax
  \expandafter\restoregeometry\expandafter\def\expandafter\clearpage\expandafter{\clearpage}
}
% Und verwende das besser niemals im Dokument
\afterpage{\aftergroup\aftergroup\aftergroup\localrestoregeometry}
Ich würde dieses Konstrukt ja auch nicht im Dokument sondern vielmehr in der Klasse verwenden. Warum genau sollte ich dies also nicht tun?

Noch so einer

Beitrag von Noch so einer »

Das habe ich eigentlich bereits angegeben. Nochmal ausführlich:
  1. Er verlässt sich absolut auf Interna von LaTeX und von afterpage, nämlich auf den Gruppenlevel, um die Anweisung \localrestoregeometry aus den Gruppen ausbrechen zu lassen. Wenn sich diesbezüglich irgend etwas ändert (einen Gruppenlevel mehr oder weniger), funktioniert das nicht nur nicht mehr, es kann auch zu unerwünschten Effekten führen.
  2. Normalerweise sorgt geometry selbst dafür, dass \restoregeometry nicht innerhalb einer Seite ausgeführt werden kann, indem es ein \clearpage ausführt. \localrestoregeometry deaktivert nun genau dieses \clearpage. Die Randeinstellungen einfach mal eben innerhalb einer Seite zu ändern, ist aber eigentlich ein absolutes "Denke nicht einmal daran!", weil das allgemein eben nicht funktioniert. Dazu müssten bereits umbrochene Absätze nämlich ggf. erneut umbrochen werden. Sogar die bereits getroffene Entscheidung für den Seitenumbruch müsste ggf. revidiert werden. Ich garantiere beispielsweise für gar nichts, falls ein Absatz auf Seite 1 beginnt, auf Seite 2 fortgesetzt wird und frühestens auf Seite 3 endet und dabei auch noch \footnote oder Gleitumgebungen innerhalb dieses Absatzes vorkommen.
Daher sollte man das so nicht machen!

BTW: Ich habe einmal eine ähnliche Lösung für eine sehr spezielle Verlagsvorlage mit doppelspaltigem Satz gebaut, bei der nur die erste Seite um zwei Zeilen kürzer und deren Fuß um zwei Zeilen höher sein musste. Das knallte alle Nase lang (dabei wurde teilweise sogar Text verschluckt) und konnte nur deshalb verwendet werden, weil der Setzer genau wusste, was ggf. zu tun ist, um die Probleme zu lösen. Auf die Autoren wurde dieses Spezialmakro nie losgelassen.

Antworten