Hallo Markus,
ich melde mich mal wieder mit einem neuen Problem. Ich möchte einen Seitenstil kreieren, der aufgrund der Verwendung eines Logos eine wesentlich höhere Kopfzeile benötigt, als die normalen Seitenstile. Dieser soll allerdings nicht für das komplette Dokument genutzt werden, sondern lediglich für Titel, Teile- und Kapitelseiten.
Außerdem soll auch der Anwender diesen im Dokument nutzen können. Das Problem dabei ist, dass bei einer Vergrößerung des Kopfes die Höhe für den Textbereich entsprechend verkleinert werden muss, damit die Fußzeilen alle auf der selben Höhe sind. Prinzipiell habe ich eine funktionierende Lösung gefunden, allerdings hat sich mittlerweile herausgestellt, dass diese alles andere als einfach und praktikabel nutzbar ist. Daher meine Frage, ob du mir zumindest einen Tipp geben könntest, wie sich mein Problem (besser) lösen lassen würde. Im Idealfall wäre es wünschenswert, wenn man mit \pagestyle
bzw. \thispagestyle
einfach zwischen den Seitenstile wechseln könnte und die Änderungen am Satzspiegel automatisch vollzogen würden. Als Minimalbeispiel eine (vereinfachte) Version meiner Lösung.
Grüße
Falk
\documentclass{scrreprt} \usepackage[T1]{fontenc} \usepackage{selinput} \SelectInputMappings{adieresis={ä},germandbls={ß},Euro={€}} \usepackage{blindtext} \usepackage{showframe} \makeatletter \newlength{\headdiff} \setlength{\headdiff}{-1in}% \addtolength{\headdiff}{40mm}% \addtolength{\headdiff}{12mm}% \addtolength{\headdiff}{-\topmargin}% \addtolength{\headdiff}{-\headheight}% \addtolength{\headdiff}{-\headsep}% \newcommand*\ps@tudpage{% \setlength{\topmargin}{-1in}% \setlength{\headheight}{40mm}% \setlength{\headsep}{12mm}% \ifdim\headdiff<0pt\relax% \addtolength{\headsep}{-\headdiff}% \fi% \addtolength{\textheight}{-\headdiff} \renewcommand*\@oddhead{% \def\tud@head@hl{% \rule{\textwidth}{0.5pt}\newline% }% \vbox{% \hspace*{-18mm} \rule{50mm}{20mm}% \vspace*{5mm}\newline% \tud@head@hl% Fakultät, Institut, Professur\newline% \tud@head@hl% }% }% \let\@evenhead\@oddhead% } \makeatother \begin{document} \blindtext[4] % normaler Seitenstil \clearpage % Umschalten auf neuen Seitenstil \begingroup \pagestyle{tudpage} \activateareas \blindtext[8] \clearpage % und zurück auf den normalen Seitenstil \endgroup \pagestyle{plain} \activateareas \blindtext[4] \end{document}
Würde ich eher über eine Umgebung lösen
Ich würde das nicht am Seitenstil festmachen. Das ist mir persönlich eine zu unsaubere Lösung. Stattdessen würde ich eine Umgebung dafür definieren:
Problematisch könne dabei allenfalls sein, wenn man Teile-Überschriften in diese Umgebung packen will. Dann sollte es eventuell eine Umgebung ohne Gruppe sein:
Dafür wäre es allerdings besser, wenn man tatsächlich einen echten zweiten Seitenstil hätte, was wiederum mit scrlayer-scrpage deutlich einfacher wird als derzeit mit scrpage2 und
\defpagestyle
.Wobei das bei
\part
tatsächlich weniger wichtig sein dürfte als beispielsweise bei\chapter
(da wird es aber normalerweise auch nur kritisch, wenn nicht das gesamte Kapitel, sondern nur die Überschrift alleine in einer Gruppe steht).Auf die Idee mit der Umgebung bin ich auch schon gekommen...
...habe es in meiner Klasse allerdings bei weitem nicht so elegant umgesetzt wie du. Ich werde mir das in einer ruhigen Minute mal genauer anschauen und meine Klasse entsprechend anpassen. Etwas problematisch dabei könnte noch die Kopfzeile werden, da diese ggf. um eine zweite Zeile erweitert wird, welche unterhalb der zweiten Linie liegen muss.
Der eigentliche Grund, warum ich nachgefragt habe war, dass ich gestern auch Titelköpfe in meiner Klasse mit dem entsprechenden Layout implementieren wollte. Also habe ich für diesen Fall nach dem
\maketitle
Befehl einfach noch mit\thispagestyle
meinen eigenen Seitenstil eingefügt und wollte mit\enlargethispage
den entsprechenden Versatz ausgleichen. Das ging natürlich nicht so einfach wie erhofft. Mit ein bisschen trial and error habe ich es dann doch irgendwie mit\activateareas
hinbekommen, allerdings nur für den einspaltigen Satz. Bei zweispaltigem bin ich dann ausgestiegen. Wenn du weiterhin Muße hast mir bei meinem Problem zu helfen, würde ich mal aus meinen Klassen den Seitenstil und die Umgebung vollständig extrahieren und ein etwas umfangreicheres Beispiel bereitstellen. Ich möchte dir aber bestimmt keine Umstände bereiten. Falls du dir mal ein Bild vom umzusetzenden Layout machen möchtest, das findest du hier.Ich werde mich demnächst deswegen auch einmal in scrlayer einarbeiten, allerdings kann ich aufgrund des Beta-Status nicht schon jetzt eine damit arbeitende Lösung für den Endanwender anbieten. Mir stellt sich halt die Frage, ob es sinnvoll ist, die Klassen jetzt noch umzustricken oder ich doch besser noch auf scrlayer zu warten, um dann eine saubere Lösung final anzubieten.
Grüße
Falk
die liebe Zeit
Ich bin eigentlich im Augenblick mit scrlayer komplett ausgelastet. Vor allem die Anleitung lässt mir kaum Zeit für die Dinge, die ich eigentlich machen will. Ich bin also nicht böse, wenn Du ohne meine Hilfe auskommst …
Zweiter Blick
Auf den zweiten Blick stellt sich die Lösung dann doch nicht als das raus, wie ich es brauche. Die Anforderungen an das Layout sind vom CD der Uni -- wieder typisch -- ohne jeglichen typographischen Anspruch, dafür aber durchaus rigide. Unter anderem sind sowohl Seitenränder als auch die Position des Logos exakt festgelegt. Dafür nutze ich das Paket geometry. Allerdings lasse ich dem Anwender noch ein Hintertürchen offen. Per Option kann explizit geometry deaktiviert werden und typearea übernimmt die Gestaltung des Satzspiegels. Allerdings muss ich bezüglich des Logos einen Kompromiss machen. Dieses muss zumindest in der Höhe auf der exakt gleichen Position bleiben und auch die horizontale Position ist abhängig vom linken Rand des Satzspiegels. Alle Interessenten können sich gerne die Vorgaben sowie die daraus resultierende Umsetzung in LaTeX ansehen.
Falls dich die Muße irgendwann doch noch einmal packen sollte würde ich mich über Anregungen freuen. Sobald scrlayer fertig sein sollte und veröffentlicht ist, werde ich auf alle Fälle eine neue und hoffentlich auch elegantere Lösung in Angriff nehmen. Leider kann ich -- wie üblich -- jedoch nicht davon ausgehen, dass jeder Anwender mit der dann aktuellen KOMA-Script-Version arbeitet, was mich dazu zwingen wird, aus Kompatibilitätsgründen auch die alte Version durch meine Klassen zu unterstützen.
geometry sollte auch gehen
Zum einen kann man auch mit geometry innerhalb des Dokuments das Layout ändern. Nur das Seitenformat ist davon ausgenommen. AFAIR kennt geomtry sogar ebenfalls eine Anweisung, um ein Layout zu speichern und wieder zu reaktivieren. Das musst Du dann eben entsprechend im meinem Beispiel anpassen.
Für die absolute Platzierung des Logos würde ich derzeit eso-pic oder textpos empfehlen. Zukünftig sollte das mit scrlayer ebenfalls einfach zu bewerkstelligen sein. Derzeit fehlt aber noch eine Endanwenderschnittstelle dafür, so dass man die Low-Level-Befehle von scrlayer selbst verwenden müsste.
Da es inzwischen bei allen gängigen TeX-Distributionen ein Kinderspiel ist, Updates einzuspielen, würde ich übrigens auf veraltete Pakete wenig Rücksicht nehmen. Sonst musst Du am Ende noch auf den uralten Standardklassen aufbauend alles selbst machen. Wozu machen sich Leute (wie ich) die Mühe, die Entwicklung weiter zu treiben, wenn andere nicht darauf zurückgreifen dürfen. Der Zwang zum Update kann manchmal auch ein Segen sein! So muss ich mich beispielsweise bei den Leuten dann schon nicht mehr mit Fragen zu KOMA-Script 2.9t herumschlagen (ja, kam erst kürzlich wieder ein – bei mir allerdings an die ganz falsche Adresse …).
Die leidigen Updates
Mit
geometry
ist das tatsächlich kein großes Problem. Allerdings sträube ich mich davor, das Paket tatsächlich zu nutzen. Ich habe von Typographie keine große Ahnung. Allerdings würde ich mir genau deswegen nicht anmaßen, irgendwelche beliebig gewählten Satzspiegel vorzugeben -- oder zwangsweise umzusetzen -- sondern auf die Erfahrungen guter Typographen zurückgreifen. Deswegen auch der Wunsch,typearea
auf alle Fälle nutzen zu können.Da kommt mir gerade in den Sinn: Wäre es theoretisch möglich, den Satzspiegel durch
typearea
berechnen zu lassen und anschließend angeometry
weiterzureichen, alsotypearea
indirekt zu nutzen? Das müsste doch gehen, oder? Könnte man dafür eventuell\AfterCalculatingTypearea
bzw.\AfterSettingArea
verwenden?Was die Updates anbelangt ist es so, dass einige der Anwender PCs an verschiedenen Lehrstühlen der Universität nutzen, welche mit Ubuntu 12.04 laufen. Für dieses OS ist lediglich die TeX Live 2009 Distribution erhältlich, was schon zu einigen Problemen geführt hat. Ich habe mich jetzt dazu entschieden, die neue Version meiner aktuellen Klassen fertigzustellen und dahin die Kompatibilität bis KOMA-Script 3.11 zu gewährleisten. Mit KOMA-Script 3.12 werde ich zeitnah auf
scrlayer
umsteigen und die momentan aktuelle Version zwar weiterhin bereitstellen, jedoch alsdeprecated
deklarieren und auch nur noch beschränkt Support liefern.