Kolumnentitel zweiseitig

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


TinTin82
Forum-Anfänger
Forum-Anfänger
Beiträge: 25
Registriert: Mo 21. Mai 2018, 10:49

Kolumnentitel zweiseitig

Beitrag von TinTin82 »

Hi,

ich habe eine eigene Latexklasse geschrieben, welche lebende Kolumnentitel hat.
\renewcommand\@oddhead{\vbox{      \makebox[\textwidth][s]{ \rightmark \hfill \thepage}
                 \vskip 1.5 mm
                 \hbox{ \noindent\rule{\textwidth}{0.5pt}}}}

\renewcommand\@evenhead{ \vbox{  \makebox[\textwidth][s]{ \thepage \hfill \leftmark}
                 \vskip 1.5 mm
                 \hbox{ \noindent\rule{\textwidth}{0.5pt}}}}

Jetzt ist es aber leider so, dass auf jeder geraden Seite
der Unterstrich circa 1 mm nach links rutscht, und auf der
ungeraden wieder 1 mm nach rechts. Beim blättern
im PDF fällt das schon auf.

Auch die Beschriftung springt etwas in der Höhe je nach gerader oder ungerader Seite...

Wie bekomme ich denn das so hin, dass die Kolumnentitel immer den selben Platz haben ??

Grüße TinTin

markusv
Forum-Meister
Forum-Meister
Beiträge: 947
Registriert: Do 3. Sep 2015, 17:20
Wohnort: Leipzig

Beitrag von markusv »

Moin.

Ich übergehe mal die Frage, warum du eine eigene LaTeX-Klasse schreibst, anstatt bspw. die schier unendlichen Anpassungsmöglichkeiten des [d]KOMA-Scripts[/d] zu nutzen ... aber zum Thema:

Ohne Minimalbeispiel, was bei deiner eigenen Dokumentenklasse tatsächlich schwieriger zu erstellen sein mag, lässt sich hier wohl nur vermuten. Ich schreibe "wohl", da ich aus dem Schnipsel nicht genug Information ziehen kann, um das Problem zu erkennen.

Noch ein Hinweis:
Dass Zeilenumbrüche in Kommandos und Befehlen u.U. unerwünschte Leerzeichen verursachen, weißt du als Klassen-Entwickler ja sicherlich?!? Diese sollten immer durch Auskommentieren mittels % am Ende einer Zeile verhindert werden. Evtl. liegts ja sogar daran, vermutlich eher nicht.
Wäre Microsoft Word für das Schreiben von Büchern entwickelt worden,
würde es Microsoft Book heißen.

Unkomplizierte und schnelle LaTeX-Hilfe, bspw. Erstellung von Vorlagen und Bewerbungen:
Help-LaTeX@web.de

Gast

Beitrag von Gast »

Ein Minimalbeispiel wäre sogar recht einfach:
\documentclass[twoside]{article}
\usepackage{color}
\usepackage{showframe}% Um die Grenzen der Bereich der Seite zu sehen.
\makeatletter
\renewcommand\@oddhead{\vbox{      \makebox[\textwidth][s]{ \rightmark \hfill \thepage}
                 \vskip 1.5 mm
                 \hbox{ \noindent\color{red}\rule{\textwidth}{0.5pt}}}}% Farbe von mir zwecks besser Verdeutlichung.

\renewcommand\@evenhead{ \vbox{  \makebox[\textwidth][s]{ \thepage \hfill \leftmark}
                 \vskip 1.5 mm
                 \hbox{ \noindent\color{red}\rule{\textwidth}{0.5pt}}}}% Farbe von mir zwecks besser Verdeutlichung.
\makeatother
\begin{document}
Test\clearpage Test
\end{document}
Mit Option draft wird dann auch noch sehr deutlich auf das Problem hingewiesen und auch die overfull \hbox Meldung in der log-Datei spricht eine deutliche Sprache!

Und natürlich spielen Leerzeichen am Anfang einer \hbox oder \makebox eine Rolle. Außerdem packt LaTeX \@oddhead und \@evenhead selbst noch in eine \hbox, bevor es diese ausgibt. Wem das nicht klar ist, der sollte besser keine Low-Level-Befehle verwenden und sich beim Schreiben seiner Klasse (falls er sich dazu hinreißen lässt) besser auf etablierte Klassen und Pakete stützen und lediglich eine Wrapper-Klasse darum herum bauen. Auf keinen Fall, sollte jemand, der das nicht weiß, seine Klasse auf andere los lassen!

Mindestkorrektur der gezeigten Definition wäre daher:
\renewcommand\@oddhead{\vbox{      \makebox[\textwidth][s]{\rightmark \hfill \thepage}
                 \vskip 1.5 mm
                 \hbox{\noindent\rule{\textwidth}{0.5pt}}}}

\renewcommand\@evenhead{\vbox{  \makebox[\textwidth][s]{\thepage \hfill \leftmark}
                 \vskip 1.5 mm
                 \hbox{\noindent\rule{\textwidth}{0.5pt}}}}
Allerdings ist das so auch noch nicht wirklich sinnvoll. Die \noindent sind überflüssig, Option s bei \makebox eher fragwürdig. Einige Leerzeichenhäufungen entfernt man besser auch noch, auch wenn sie derzeit für das Ergebnis unerheblich sind.

Gast

Off-Topic: Dringende Empfehlung

Beitrag von Gast »

Das ist jetzt min. die dritte Frage von dir, die deutlich zeigt, dass du eigentlich noch nicht so weit bist, eine Klasse komplett neu aufzubauen. Daher mein dringender Rat: Fang besser mit einer Klasse an, die intern eine Standardklasse oder eine KOMA-Script-Klasse lädt. Lade in der Klasse dann zusätzlich Pakete wie geometry oder scrlayer-scrpage und nimm so viele Einstellungen wie möglich über diese Pakete vor. Das bewahrt sich zwar nicht vor allen Fehlern, aber zumindest musst du das Rad nicht zum hundertsten Mal neu erfinden. Einige Fehler wird es auch tatsächlich vermeiden helfen, weil du eben beispielsweise für den Kopf die Linie einfach einschalten und Kolumnentitel und Paginierung über einfache Befehle positionieren kannst.

Arbeite auch mindestens eine ausführliche Einführung in LaTeX komplett durch. Auch schon als Autor einer Wrapper-Klasse solltest du außerdem den [d]clsguide[/d] verstanden haben. Außerdem empfehle ich dringend, dich mit weiterführender Literatur wie dem LaTeX Begleiter und auch bereits mit TeX by Topic (letzteres ist frei und beispielsweise in TeX Live ebenfalls enthalten) beschäftigen. Mit dem Begleiter empfiehlt sich eine intensive Beschäftigung bezüglich der Grundlagen. In TeX by Topic sollte man sich nebenbei zunächst einen groben Überblick über die Themen verschaffen, um dann bei Problemen gezielt nachlesen zu können.

Wem das alles zuviel ist. Der sollte in der Tat keine Klasse schreiben, die er anderen irgendwie zur Verfügung stellen will. Am Ende haben nämlich sonst andere (und ich meine nicht nur die Anwender der Klasse) die Probleme damit.

TinTin82
Forum-Anfänger
Forum-Anfänger
Beiträge: 25
Registriert: Mo 21. Mai 2018, 10:49

Beitrag von TinTin82 »

Hi Zusammen,

zunächst vielen dank für eure Hilfe.
Die Klasse dient mir selbst zum erlernen von Latex, nicht zum veröffentlichen. Man lernt viel dabei wie ich finde. Also gibt es keinen Grund sich darüber aufzuregen. Aber Danke für die Tipps und Hinweise.

TinTin82
Forum-Anfänger
Forum-Anfänger
Beiträge: 25
Registriert: Mo 21. Mai 2018, 10:49

Beitrag von TinTin82 »

So tut =)

Antworten