scrlayer-notecolumn im zweiseitigen Satz

Klassen und Pakete zur einfachen Umsetzung individueller Vorstellungen


Bianca1504

scrlayer-notecolumn im zweiseitigen Satz

Beitrag von Bianca1504 »

Ich möchte im zweiseitigen Satz mit zwei verschiedenen Notizspalten arbeiten, eine außen (auf ungeraden Seiten rechts vom Text, auf geraden links) und eine innen (auf ungeraden Seiten links vom Text, auf geraden rechts).

Es scheint (zumindest bei den default-Einstellungen) so zu sein, dass nur die Notizen, welche sich rechts vom Text befinden, korrekt positioniert werden. (D.h. auf ungeraden Seiten die äußeren, auf geraden die inneren.) Die Notizen, welche sich links vom Text befinden, werden viel zu weit vom Text entfernt gesetzt. Dadurch landen sie auf den ungeraden Seiten z.T. nicht einmal mehr auf dem Papier.
Ich habe versucht, mithilfe von \Ifthispageodd je nach Seite auf \raggedleft bzw. \raggedright umzuschalten. Seltsamerweise werden die Notizen dann auf geraden Seiten sowohl links als auch rechts vom Text korrekt positioniert, während sie jedoch auf ungeraden Seiten sowohl links als auch rechts vom Text viel zu weit entfernt stehen...

Lässt sich das auf einfache Weise lösen?
Oder ist scrlayer-notecolumn nicht mit zweiseitigem Satz kompatibel, so dass es einer aufwendigeren Lösung bedarf?

Minimalbeispiel:

Code: Alles auswählen

\documentclass{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{scrlayer-scrpage}
\usepackage{scrlayer-notecolumn}
\usepackage{lipsum}
\DeclareNewNoteColumn[reversemarginpar]{notetwo}
\begin{document}
\lipsum[1]
\makenote{15}
\makenote[notetwo]{32}
\newpage
\lipsum[2]
\makenote{16}
\makenote[notetwo]{33}
\end{document}

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2665
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Re: scrlayer-notecolumn im zweiseitigen Satz

Beitrag von KOMA »

Bei doppelseitigen Dokumenten ist \marginparwidth in der Regel schlicht viel zu breit für den inneren Rand. Das Problem gibt es bekanntlich auch mit \marginpar und \reversemarginpar. Ich würde also empfehlen, die Breite passend zu wählen.

Code: Alles auswählen

\documentclass{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{scrlayer-scrpage}
\usepackage{scrlayer-notecolumn}
\usepackage{lipsum}
\DeclareNewNoteColumn[reversemarginpar,width=.333\marginparwidth]{notetwo}
\begin{document}
\lipsum[1]
\makenote{15}
\makenote[notetwo]{32}
\newpage
\lipsum[2]
\makenote{16}
\makenote[notetwo]{33}
\end{document}

Bianca1504

Re: scrlayer-notecolumn im zweiseitigen Satz

Beitrag von Bianca1504 »

Okay. Schon mal vielen Dank für den Tipp.

Allerdings, wenn ich es richtig sehe, löst das mein Problem nicht wirklich. Da es um eine Seiten-Konkordanz geht, soll der Abstand der Notizen zum Text einheitlich sein (egal, ob es sich um ein-, zwei- oder dreistellige Zahlen handelt). Auch wenn ich die Breite ändere, werden die Notizen, welche sich links vom Text befinden, linksbündig gesetzt. Anders ausgedrückt: Ich benötige schlicht die Funktionalität von \marginline innerhalb von scrlayer-notecolumn. (Nämlich dass Notizen links vom Text rechtsbündig stehen, rechts vom Text linksbündig.)

Lässt sich da was machen?


Bianca1504

Re: scrlayer-notecolumn im zweiseitigen Satz

Beitrag von Bianca1504 »

Insofern war die Frage ursprünglich leider falsch formuliert. Denn es hat mit doppelseitigem Satz gar nichts zu tun. Ich war da etwas durcheinander gekommen. Bei einseitigem Satz besteht das Problem grundsätzlich ganz genauso.


Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2665
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Re: scrlayer-notecolumn im zweiseitigen Satz

Beitrag von KOMA »

Da hast Du dann das ewige Problem:

  • Der Seitenumbruch ist asynchron, da heißt bei Ausführung des Befehls ist noch nicht bekannt, auf welcher Seite etwas landet.

  • Ein Absatz wird erst vollständig umbrochen, bevor er auf die Seiten verteilt wird. Deshalb kann eine einmal getroffene Entscheidung für die horizontale Ausrichtung im Falle eines Umbruchs auf eine andere Seite nicht verändert werden.

Wenn also etwas auf die nächste Seite umbrochen wird, dann bleibt es auch in der Ausrichtung, in der der Absatz bereits zuvor umbrochen wurde. Deshalb funktioniert zwar im einfachen Beispiel:

Code: Alles auswählen

\documentclass{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{scrlayer-scrpage}
\usepackage{scrlayer-notecolumn}
\usepackage{lipsum}
\DeclareNewNoteColumn[reversemarginpar,width=.333\marginparwidth]{notetwo}
\DeclareRobustCommand*{\leftorright}[1]{%
  \Ifthispageodd{\raggedright #1}{\raggedleft #1}%
}
\DeclareRobustCommand*{\rightorleft}[1]{%
  \Ifthispageodd{\raggedleft #1}{\raggedright #1}%
}
\begin{document}
\lipsum[1]
\makenote{\leftorright{15}}
\makenote[notetwo]{\rightorleft{32}}
\newpage
\lipsum[2]
\makenote{\leftorright{16}}
\makenote[notetwo]{\rightorleft{33}}
\end{document}

Aber der Sinn von scrlayer-notecolumn ist ja gerade, dass Seitenumbrüche in den Notizen erfolgen und auch ganze Notizen auf zukünftige Seiten verschoben werden können. Und das funktioniert dann eben nur noch teilweise:

Code: Alles auswählen

documentclass{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{scrlayer-scrpage}
\usepackage{scrlayer-notecolumn}
\usepackage{lipsum}
\DeclareNewNoteColumn[reversemarginpar,width=.333\marginparwidth]{notetwo}
\DeclareRobustCommand*{\leftorright}[1]{%
  \Ifthispageodd{\raggedright #1}{\raggedleft #1}%
}
\DeclareRobustCommand*{\rightorleft}[1]{%
  \Ifthispageodd{\raggedleft #1}{\raggedright #1}%
}
\begin{document}
\lipsum[1]
\makenote{\leftorright{15}}
\makenote[notetwo]{\rightorleft{32}}
\lipsum[2-5]
\makenote{\leftorright{\protect\lipsum[1]}}
\makenote[notetwo]{\rightorleft{\protect\lipsum[1]}}
\lipsum[6-15]
\end{document}

Auf der ersten Seite ist noch alles im linken Rand schön rechtsbündig und im rechten linksbündig. Auf der zweiten Seite aber eben nicht mehr, weil die beiden Absätze bereits auf der ersten Seite fertig umbrochen wurden. Auf der dritten Seite stimmt es dann natürlich wieder, aber auf der vierten nicht mehr usw.

Und ja, im Bereich des Seitenumbruchs kann das auch am Anfang der nächsten Seite direkt falsch sein. Und nein, dagegen kann ich nichts machen. Es gibt Dinge, die gehen alleine mit TeX einfach nicht. Und außerdem ist scrlayer-scrpage nur ein Proof-of-Concept für scrlayer.

Bezüglich der Notwendigkeit von \protect (im Falle von \leftorright und \rightorleft durch Verwendung von \DeclareRobustCommand) sei auf die Anleitung verwiesen.


Bianca1504

Re: scrlayer-notecolumn im zweiseitigen Satz

Beitrag von Bianca1504 »

Hm...
Kann es evtl. sein, dass das nur Notizen betrifft, die umbrochen werden?
Bei meinem tatsächlichen Dokument, in welchem die Notizen nie umbrochen werden (da es sich ausschließlich um maximal dreistellige Zahlen plus einen Pfeil handelt), funktioniert die Lösung offensichtlich ausnahmslos einwandfrei. (Es sind bisher etwas mehr als 100 Seiten gesetzt. Das scheint mir doch einigermaßen aussagekräftig. Die Notizen befinden sich auch an mehreren Stellen direkt in der ersten Zeile der Seite... - ohne, dass dabei Probleme auftreten.)

Aber vielleicht wolltest Du ohnehin genau das mit Deinen Erklärungen ausdrücken. - Bin mir nicht ganz sicher.

Der Grund, scrlayer-notecolumn zu verwenden, war nicht die Möglichkeit des Seitenumbruchs in Notizen, sondern, dass sich \marginpar (bzw. \marginline) nicht in Fußnoten verwenden lässt, und dass man bei marginnote keine Kollisionserkennung und das Problem mit dem Zeilenabstand hat.


Antworten