Description-Umgebung mit Zeilenumbruch

Schriftbild, Absätze und Auflistungen einstellen


MarSchl
Forum-Anfänger
Forum-Anfänger
Beiträge: 12
Registriert: Mo 18. Jul 2022, 18:48

Description-Umgebung mit Zeilenumbruch

Beitrag von MarSchl »

Liebe Leute,

ich brauche Hilfe. Es geht um die Description-Umgebung und das Trennen von Urls und neuen Worten.
Zwar wird der Beschreibungstext hinter dem ITEM-Wert umgebrochen und einen neuen 'Absatz' kann ich per \ \\ erzeugen, wenn nötig, aber:

Die Umgebung scheint die Trennungseinstellungen für neue Worte und für Urls nicht zu übernehmen. Beispiel:

Steht das Wort Tri-chor-do-Bou-zou-ki am Rand, wird es nur am Bindestrich (Trichordo-Bouzouki) umgebrochen. Die zuvor global festgelegte Trennnung an den anderen Stellen wird nicht übernommen und das Wort ragt in den Rand hinein.

Gleiches Problem gilt für die Urls. Ich benutze schon \usepackage[hyphenbreaks]{breakurl}, überall anders außerhalb der Description-Umgebung wirds es auch so gemacht, aber innerhalb der Umgebung nicht.

Wie kann ich machen, dass es trotzdem geht?

PS: Die Sache mit der Worttrennung ist in diesem MWE für mich nicht reproduzierbar...
\documentclass[
pagesize=auto,
paper=a4,
BCOR=1.25cm,
DIV=11,
fontsize=12,
]{scrreprt}

\usepackage{showframe}

\usepackage{blindtext}

\usepackage[
colorlinks=true, linkcolor=black, urlcolor=black,
]{hyperref}
\urlstyle{sf}

\usepackage[hyphenbreaks]{breakurl}

\begin{document}

\hyphenation{Tri-chor-do}

\begin{description}

\item[Abb. XXX:] Trichordo-Bouzouki des Herstellers \ \\ Bla Blubbablubb; Vorderansicht \dotfill Seitenangabe \ \\ Beschreibungstext über Mehrere Zeilen. \blindtext \ \\ Quellenangabe mit Url: \burl{https://www.zaranikas.gr/en/other/folk-strings/bouzouki/bouzouki-handcrafted-6stringed-em63-detail}; letzter Zugriff am XX.XX.XXXX.

\item[Abb. XXX+1] Und so weiter..

%[Das] % 'Das' ist eigentlich bei mir ein Querverweis aus Hyperref.

\end{description}

\end{document}


ich meine ja nur

Re: Description-Umgebung mit Zeilenumbruch

Beitrag von ich meine ja nur »

Oh, da läuft aber IMHO einiges verquer.

Zunächst einmal ist \\ kein Absatz, sondern ein harter Zeilenumbruch. Das ist ein gravierender Unterschied, weil es u. a. zu einer Meldung wegen einer einer underfull \hbox führen kann, TeXs Sonderbehandlung von letzten und ersten Zeilen eines Absatzes nicht anspringt u. v. m. Absätze macht man auch innerhalb von Listen mit \par bzw. mit Leerzeile. Ein erzwungenes Leerzeichen vor \\ wäre dann der Gipfel des Unsinns, wenn ich das einmal so deutlich sagen darf.

Dann hast du die Sprache überhaupt nicht deklariert. Dazu verwendet man i. d. R. das Paket babel. Es ist zweckmäßig die Hauptsprache des Dokuments bereits bei \documentclass anzugeben, damit auch andere Pakete ggf. etwas davon mitbekommen. Optionen dort sind nämlich nicht nur Optionen für die Klasse, sondern globale Optionen. Bei einem einsprachigen Dokument, genügt die Spracheangabe dort. Dein Dokument scheint auf Deutsch zu sein, also ngerman.

Dann wirken sich Trennregeln für URLs natürlich nicht auf den restlichen Test aus. Da bei dir Trichordo gar nicht in einer URL vorkommt, nehme ich jetzt einfach einmal an, dass die Frage dazu eigentlich eine eigene Frage ist? Um die Verwirrung zu vermeiden, hättest du sie dann besser als eigene Frage mit einem passenden Minimalbeispiel gestellt. Es sei darauf hingewiesen, dass TeX aus typografischen und stilistischen Gründen Wörtern mit Bindestrich nur am Bindestrich trennt. Wenn man das ausnahmsweise anders haben will, dann bietet babel-ngerman dafür ein sog. shorthand (siehe verlinkte Doku). Ich setze das einmal im Beispiel ein, obwohl es dort nicht benötigt wird und dann auch nicht verwendet werden sollte. Potentielle typografische Verschlechterungen sollte man nur dort einsetzen, wo man sich damit trotzdem eine deutliche Verbesserung einhandelt.

Dann verwendest du das Paket breakurl. Laut (der verlinkten) Doku wirkt sich das Paket nur aus, wenn man den Weg LaTeX → dvips → pstopdf/ps2pdf geht. Das macht man heutzutage nur noch sehr selten. Bei Verwendung von PDFLaTeX, LuaLaTeX oder XeLaTeX, können Links (nicht nur URLs) direkt umbrochen werden. Um nun Umbrüche an - zu erlauben, kann man das Paket url mit Option hyphens bereits vor hyperref laden. Das ist einer der wenigen Fälle, in denen das explizite Laden von url sinnvoll ist. Warum man diesen Umbruch üblicherweise nicht haben will, findet sich in der (verlinkten) Anleitung bei der Erklärung der Option.

Aber auch mit dieser zusätzlichen Umbruchmöglichkeit, hält sich TeX natürlich an die Umbruchvorgaben. Im Beispiel wäre ein Umbruch am Strich weder sinnvoll noch gut. (Trotzdem zeige ich im Beispiel, wie er ermöglicht würde.) TeX führt ihn daher auch nicht aus. Es gibt IMHO zwei Wege, den Umbruch der URL zu erzwingen und die overfull \hbox zu vermeiden. Entweder erlaubt man TeX unter Erkaufung typografisch unerwünschter horizontaler Abstände sehr viel mehr Freiheit beim Umbruch oder man setzt den Teil des Textes linksbündig im Flattersatz. Hier im Beispiel zeige ich den ersten Weg. Für den zweiten ersetzt man die sloppypar-Umgebung (die man wirklich nur auf einzelne Absätze anwenden sollte, weil sie allgemein zu schlechterem Satz führen kann), beispielsweise durch eine flushleft-Umgebung.

BTW: Ich würde mir überlegen, solche Quellenangaben mit biblatex zu machen. In dem Fall sollte man sich auch die Umbruchoptionen in der biblatex-Anleitung anschauen.
\documentclass[
pagesize=auto,% Die Option ist Voreinstellung und kann daher weg.
paper=a4,% Die Option ist Voreinstellung und kann daher weg.
BCOR=1.25cm,
DIV=11,
fontsize=12,
ngerman% Sprachoption zwar nicht für scrreprt aber für babel und eventuell weitere Pakete.
]{scrreprt}

\usepackage{babel}

\usepackage{showframe}

\usepackage{blindtext}

\usepackage[hyphens]{url}% Erlaube URL-Umbrüche an Trennzeichen.
\usepackage[
colorlinks=true, linkcolor=black, urlcolor=black,
]{hyperref}
\urlstyle{sf}

\begin{document}

\hyphenation{Tri-chor-do}

\begin{description}

\item[Abb. XXX:] Trichordo"~Bouzouki des Herstellers\hfill\\ Bla Blubbablubb; Vorderansicht \dotfill Seitenangabe

Beschreibungstext über Mehrere Zeilen. \blindtext

\begin{sloppypar}
Quellenangabe mit Url: \url{https://www.zaranikas.gr/en/other/folk-strings/bouzouki/bouzouki-handcrafted-6stringed-em63-detail}; letzter Zugriff am XX.XX.XXXX.
\end{sloppypar}

\item[Abb. XXX+1] Und so weiter..

%[Das] % 'Das' ist eigentlich bei mir ein Querverweis aus Hyperref.

\end{description}

\end{document}

MarSchl
Forum-Anfänger
Forum-Anfänger
Beiträge: 12
Registriert: Mo 18. Jul 2022, 18:48

Re: Description-Umgebung mit Zeilenumbruch

Beitrag von MarSchl »

ich meine ja nur hat geschrieben:
Mo 8. Aug 2022, 09:05
Oh, da läuft aber IMHO einiges verquer.
Das will ich gar nicht Frage stellen.

Zunächst einmal ist \\ kein Absatz, sondern ein harter Zeilenumbruch. Das ist ein gravierender Unterschied, weil es u. a. zu einer Meldung wegen einer einer underfull \hbox führen kann, TeXs Sonderbehandlung von letzten und ersten Zeilen eines Absatzes nicht anspringt u. v. m. Absätze macht man auch innerhalb von Listen mit \par bzw. mit Leerzeile. Ein erzwungenes Leerzeichen vor \\ wäre dann der Gipfel des Unsinns, wenn ich das einmal so deutlich sagen darf.
Ja...das hatte ich mal als Ferkel-Lösung an anderer gesehen und übernommen. Das Problem mit Leerzeile und \par ist in diesem Zusammenhang, dass ich nicht weiß, wie ich dem Programm sagen kann, dass ein Absatz innerhalb der Beschreibung keinen Abstand zum nächsten haben soll, und der Abstand nach dem Item Wert zur Item Beschreibung kleiner sein soll, als der zwischen Ende der Beschreibung und dem nächsten Item Wert.
Dann hast du die Sprache überhaupt nicht deklariert. Dazu verwendet man i. d. R. das Paket babel. Es ist zweckmäßig die Hauptsprache des Dokuments bereits bei \documentclass anzugeben, damit auch andere Pakete ggf. etwas davon mitbekommen. Optionen dort sind nämlich nicht nur Optionen für die Klasse, sondern globale Optionen. Bei einem einsprachigen Dokument, genügt die Spracheangabe dort. Dein Dokument scheint auf Deutsch zu sein, also ngerman.
Sorry, da hab ich wohl an der falschen Stelle gespart. Ich verwende:
\usepackage{fontspec}
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new, babelshorthands=true]{german}
Und kompiliere mit LuaLatex.

MarSchl
Forum-Anfänger
Forum-Anfänger
Beiträge: 12
Registriert: Mo 18. Jul 2022, 18:48

Re: Description-Umgebung mit Zeilenumbruch

Beitrag von MarSchl »

ich meine ja nur hat geschrieben:
Mo 8. Aug 2022, 09:05
Dann wirken sich Trennregeln für URLs natürlich nicht auf den restlichen Test aus. Da bei dir Trichordo gar nicht in einer URL vorkommt, nehme ich jetzt einfach einmal an, dass die Frage dazu eigentlich eine eigene Frage ist? Um die Verwirrung zu vermeiden, hättest du sie dann besser als eigene Frage mit einem passenden Minimalbeispiel gestellt.
Sorry, ich habe da das gleiche Problem gemutmaßt. Aber:
Es sei darauf hingewiesen, dass TeX aus typografischen und stilistischen Gründen Wörtern mit Bindestrich nur am Bindestrich trennt. Wenn man das ausnahmsweise anders haben will, dann bietet babel-ngerman dafür ein sog. shorthand (siehe verlinkte Doku). Ich setze das einmal im Beispiel ein, obwohl es dort nicht benötigt wird und dann auch nicht verwendet werden sollte. Potentielle typografische Verschlechterungen sollte man nur dort einsetzen, wo man sich damit trotzdem eine deutliche Verbesserung einhandelt.
Das ist es ja sogesehen auch.
Dann verwendest du das Paket breakurl. Laut (der verlinkten) Doku wirkt sich das Paket nur aus, wenn man den Weg LaTeX → dvips → pstopdf/ps2pdf geht. Das macht man heutzutage nur noch sehr selten. Bei Verwendung von PDFLaTeX, LuaLaTeX oder XeLaTeX, können Links (nicht nur URLs) direkt umbrochen werden. Um nun Umbrüche an - zu erlauben, kann man das Paket url mit Option hyphens bereits vor hyperref laden. Das ist einer der wenigen Fälle, in denen das explizite Laden von url sinnvoll ist. Warum man diesen Umbruch üblicherweise nicht haben will, findet sich in der (verlinkten) Anleitung bei der Erklärung der Option.
Okay...dann also auf zum zweiten Anlauf mit url...
Aber auch mit dieser zusätzlichen Umbruchmöglichkeit, hält sich TeX natürlich an die Umbruchvorgaben. Im Beispiel wäre ein Umbruch am Strich weder sinnvoll noch gut. (Trotzdem zeige ich im Beispiel, wie er ermöglicht würde.) TeX führt ihn daher auch nicht aus.
Den Teil hab ich in der Doku nicht verstanden...
Es gibt IMHO zwei Wege, den Umbruch der URL zu erzwingen und die overfull \hbox zu vermeiden. Entweder erlaubt man TeX unter Erkaufung typografisch unerwünschter horizontaler Abstände sehr viel mehr Freiheit beim Umbruch oder man setzt den Teil des Textes linksbündig im Flattersatz. Hier im Beispiel zeige ich den ersten Weg. Für den zweiten ersetzt man die sloppypar-Umgebung (die man wirklich nur auf einzelne Absätze anwenden sollte, weil sie allgemein zu schlechterem Satz führen kann), beispielsweise durch eine flushleft-Umgebung.
Danke sehr!
BTW: Ich würde mir überlegen, solche Quellenangaben mit biblatex zu machen. In dem Fall sollte man sich auch die Umbruchoptionen in der biblatex-Anleitung anschauen.
Hab ich schon überlegt, aber immer aufgeschoben. Die Strukurierung von Quellen und Literatur schien mir manuell unkomplizierter zu sein.

Gute*r Gȧst*in

Re: Description-Umgebung mit Zeilenumbruch

Beitrag von Gute*r Gȧst*in »

MarSchl hat geschrieben:
Mo 8. Aug 2022, 16:24
Ja...das hatte ich mal als Ferkel-Lösung an anderer gesehen und übernommen.
Das war leider eine schlechte Idee. Das solltest du dir umgehend wieder abgewöhnen.
MarSchl hat geschrieben:
Mo 8. Aug 2022, 16:24
Das Problem mit Leerzeile und \par ist in diesem Zusammenhang, dass ich nicht weiß, wie ich dem Programm sagen kann, dass ein Absatz innerhalb der Beschreibung keinen Abstand zum nächsten haben soll, und der Abstand nach dem Item Wert zur Item Beschreibung kleiner sein soll, als der zwischen Ende der Beschreibung und dem nächsten Item Wert.
Tipp: Wenn du so etwas nicht weißt, dann schau entweder in die Anleitung oder frag. Dieses Mal lies beispielsweise in einer KOMA-Script-Anleitung \KOMAoptions und Option parskip nach. Das funktioniert nämlich auch im Dokument und auch in Listen. Weitgehendere Konfigurationsmöglichkeit von Listen findest du in enumitem. Das ist inzwischen quasi das Standardpaket, wenn die vorgefertigten Listen der Klassen nicht genügen.
MarSchl hat geschrieben:
Mo 8. Aug 2022, 16:24
Sorry, da hab ich wohl an der falschen Stelle gespart. Ich verwende:
\usepackage{fontspec}
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new, babelshorthands=true]{german}
Und kompiliere mit LuaLatex.
Ich empfehle auch bei LuaLaTeX (und auch bei XeLaTeX) babel. Das war vor ein paar Jahren einmal anders. Aber die Entwicklung hat sich eher umgekehrt. Inzwischen ist babel in meinen Augen das mächtigere und intensiver entwickelte Werkzeug. Für westliche Sprachen mit lateinischen Schriften war es ohnehin min. nahezu immer ebenbürtig. Jedenfalls solltest du auch bei Verwendung von polyglossia darauf achten, ob du irgendwelche Pakete verwendest, die ebenfalls auf Sprachoptionen reagieren. Spätestens dann ist es sinnvoll, die Haupt-Sprache (bei Verwendung von polyglossia dann zusätzlich) als Option von \documentclass anzugeben.

Ansonsten hat ich meine ja nur natürlich recht: Bei Trennproblemen sind Beispiele ohne Sprachangabe per se fehlerhaft, weil die Trennung natürlich maßgeblich von der eingestellten Sprache beeinflusst wird.

Die Anleitung zu ngerman mit babel findet sich übrigens korrekt unter babel-german. Da du mit babelshorthands=true diese aktiviert hast, solltest du das auch bei Verwendung von polyglossia nachlesen. @ich meine ja nur hat nämlich leider das falsche shorthand verwendet. Du brauchst im Text (nicht in URLs!) ggf.: An explicit hyphen with a breakpoint, allowing for hyphenation at the other points.

Ein ganz großer Vorteil von Quellen und Literatur mit biblatex (und früher schon mit bibtex) ist, dass bei sich ändernden Anforderungen nicht sämtliche Angaben umgearbeitet werden müssen. Stattdessen muss nur die Ausgabe umkonfiguriert werden. Selbst eine Auflistung und Verlinkung aller Seiten, auf denen eine Quelle verwendet wurde, kann so automatisch erzeugt werden. Wie bei den meisten Dingen bei LaTeX lohnt es sich daher, einmal etwas Zeit zu investieren, um sich einzulesen und ggf. etwas zu experimentieren. Genauso lohnt es sich übrigens fast immer, nicht nur auf Google nach irgendwelchem (oft schlechten) Code zu suchen, sondern eine gute LaTeX-Einführung durchzuarbeiten und auch die Anleitungen der verwendeten Pakete min. quer zu lesen und bei Problemen genauer zu studieren.

Aber natürlich kann es für einige wenige Quellen oder eher komplexe Ausgaben, bei denen man eher eine Kombination aus glossaries und biblatex benötigen würde, auch durchaus hin und wieder schneller gehen, das zu Fuß zu machen – mit dem Risiko es später noch einmal komplett umändern zu müssen. Das ist also durchaus eine Abwägung.

Gute*r Gȧst*in

Re: Description-Umgebung mit Zeilenumbruch

Beitrag von Gute*r Gȧst*in »

Gute*r Gȧst*in hat geschrieben:
Di 9. Aug 2022, 09:25
MarSchl hat geschrieben:
Mo 8. Aug 2022, 16:24
Ja...das hatte ich mal als Ferkel-Lösung an anderer gesehen und übernommen.
Das war leider eine schlechte Idee. Das solltest du dir umgehend wieder abgewöhnen.
Übrigens wäre viewtopic.php?f=4&t=24611 ein sehr gutes Beispiel dafür, warum es oft keine gute Idee ist, sich solche Ferkel-Lösungen anzugewöhnen. Das hat zwar nur am Rande mit deinem Problem zu tun, aber es zeigt sehr schön, dass gerade unbedacht eingesetzte \\ höchst kritisch sein können.

Antworten