Selbst definierte Section führen zu "dead cycles" Thema ist als GELÖST markiert

Inhalt, Abbildungen, Tabellen, Quellcodes und andere Verzeichnisse


Permutation
Forum-Anfänger
Forum-Anfänger
Beiträge: 24
Registriert: Mi 12. Jan 2022, 19:01

Selbst definierte Section führen zu "dead cycles"

Beitrag von Permutation »

Hallo zusammen,

ich erstelle mit einem Programm eine TeX-Datei. Dabei bin ich nun über folgenden Fehler gestolpert:
! Output loop---100 consecutive dead cycles.
Soweit ich ihn verstehe, hat LaTeX eine Problem, den Inhalt innerhalb 100 Versuche zu positionieren. Dieser Fehler tritt auf, wenn ich in selbst definierten "Sections" Inhalt hinzufüge. Wenn ich den selben Inhalt in die "Standard" Sections packe, kommt der Fehler nicht, wobei die PDF auch komisch aussieht.

Um das Problem zu reproduzieren habe ich drei Dateien erzeugt.

In
EigeneSections.tex
(18.21 KiB) 83-mal heruntergeladen
tritt der Fehler auf.

In
StandardSection.tex
(14.07 KiB) 49-mal heruntergeladen
wurde der Inhalt in \subsubsection geschrieben. Diese Datei läuft durch, wobei die Bilder auch "komisch" positioniert wurden.

In
EigeneSectionsOhneFehler.tex
(11.27 KiB) 47-mal heruntergeladen
wurde nur weniger Inhalt hinzugefügt. Dadurch läuft auch diese durch wobei der Inhalt nicht sauber ist (z.B. Seite 14).

Es muss also bei der Definition der neuen "Sections" noch was fehlen oder falsch sein. Doch leider finde ich den Fehler nicht.

Hat jemand eventuell einen Hinweis was ich machen muss damit es ordentlich aussieht und ohne Fehler läuft (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023) (format=lualatex 2023.9.16))?

Schöne Grüße und vielen Dank
Permutation

Permutation
Forum-Anfänger
Forum-Anfänger
Beiträge: 24
Registriert: Mi 12. Jan 2022, 19:01

Re: Selbst definierte Section führen zu "dead cycles"

Beitrag von Permutation »

Ich hab das Problem gefunden und lösen können. Das Problem war die figure-Umgebung. Wenn ich diese z.B. durch
\begin{center}
  \includegraphics{foo}
  \captionof{figure}{A non floating figure}
  \label{fig:test}
\end{center}
ersetze läuft es durch und sieht so aus wie gewünscht. Dachte immer das figures in der "Section" platziert werden, in der sie definiert wurden.

Viele Grüße
Permutation

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2534
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Re: Selbst definierte Section führen zu "dead cycles"

Beitrag von Stefan Kottwitz »

Hallo,

schön, dass Du eine Lösung gefunden hast! Und super, dass Du es auch hier mitteilst.

Ja, es liegt an den vielen Abbildungen. figure ist eine Gleitumgebung, womit LaTeX die Bilder für optimale Seitenumbrüche sowie gutes Text-zu-Abbildungen-Verhältnis "gleitend" platziert und dem Autor damit die Sorgen abnimmt, wo man einen Seitenumbruch platziert wenn ein Bild nicht mehr ganz auf die Seite passt. Oder wenn man den Text etwas verändert und plötzlich passt ein Bild nicht mehr an die Stelle.

In Deinem Fall brauchst Du es vllt. nicht. Falls doch, schauen wir hier mal drauf. LaTeX merkt sich ja Abbildungen bis es sie ausgeben kann, und mit vielen aufgestauten Abbildungen kann es Schwierigkeiten beim Seitenumbruch-Berechnen haben.

Jedenfalls kannst Du mit dem morefloats-Paket erstmal mehr Abbildungen erleichtern, etwa:
\usepackage[maxfloats=100]{morefloats}
Dann kannst Du auch die Zyklen hochsetzen:
\maxdeadcycles=1000
Damit ist Dein Dokument auch schon übersetzbar. Höhere Werte gehen natürlich auch.
Permutation hat geschrieben:
Mi 27. Sep 2023, 18:23
Dachte immer das figures in der "Section" platziert werden, in der sie definiert wurden.
Für Kapitel ist das richtig, für Abschnitte gilt es nicht. Man kann das auch ermöglichen mit dem placeins-Paket:
\usepackage[section]{placeins}
Viele Grüße,

Stefan

Permutation
Forum-Anfänger
Forum-Anfänger
Beiträge: 24
Registriert: Mi 12. Jan 2022, 19:01

Re: Selbst definierte Section führen zu "dead cycles"

Beitrag von Permutation »

Vielen Dank für deine Hinweise und deine Erklärung.

Damals wurde "figure" mit der Option "H" verwendet, da man die Bilder an einer bestimmten Position haben wollte.
Dies ist leider immer noch gefordert... daher habe ich somit beides auf einmal erschlagen :D (bin dabei sehr alten Code zu überarbeiten)

Antworten