KOMA-Script kontra longtable
KOMA-Script kontra longtable
Ich habe unter Verwednung des KOMA-Scripts (package scrlttr2) in einer Briefvorlage auf der ersten Seite einen abweichenden Dokumentenfuß vereinbart Er ist höher als auf den Folgeseiten, wodurch der Text auf der ersten Seite eher umbricht als auf den Folgeseiten. Verwende ich nun als Text eine Longtable, irgnoriert diese beim Umbruch auf der ersten Seite, dass der Umbruch eher erfolgen muss. Die Tabelle bricht am generellen Seitenende um. Damit ragt die Tabelle in den Fuß der ersten Seite hinein. Wie kann man das ändern?
- Johannes_B
- Moderator
- Beiträge: 5079
- Registriert: Do 1. Nov 2012, 14:55
- Kontaktdaten:
Könntest du das eventuell in Form eines vollständigen Minimalbeispiels reproduzieren?
Momentan ist dein Problem, zumindest für mich, nicht nachvollziehbar.
Momentan ist dein Problem, zumindest für mich, nicht nachvollziehbar.
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?
Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.
LaTeX-Vorlagen?
Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.
Hier das Minimalbeispiel
\documentclass[visualize, % Wird unbedinbgt für PDF/A-Erzeugung gebraucht! paper=a4, version=last,fontsize=12pt, % Format A4, generelle Schriftgröße 12pt foldmarks=true,foldmarks=bmp, % Faltmarken, nur links oben locfield=wide, % location-Feld breit numericaldate=true] % Datum voll numerisch darstellen {scrlttr2} \usepackage[ngerman]{babel} \usepackage{ltxtable} \usepackage{geometry} % Oberer Rand generell auf 24 mm gesetzt \geometry{top=24mm} % Unteren Rand generell auf 20 mm gesetzt \geometry{bottom=20mm} % Linker Rand generell auf 24.1 mm gesetzt \geometry{left=24.1mm} % Rechter Rand generell auf 15.9 mm gesetzt \geometry{right=15.9mm} % Setzen von Pseudolängen (internen Abständen) \makeatletter %************ Die folgende Pseudolänge ändert den Fuß für die erste Seite. %************ Diese Angabe scheint die Longtable zu irnorieren! % Fuß der ersten Seite nach oben ziehen \@setplength{firstfootvpos}{265mm} \makeatother %Anschriftenfeld \newkomavar{addressblock} % Variable für den Fuß vereinbaren \newkomavar{fussspaltelinks} \newkomavar{fussspaltemitte} \newkomavar{fussspalterechts} % Variable für den Briefinhalt \newkomavar{brieftext} % Variable für den Briefschluss \newkomavar{briefschluss} \begin{document} \newkomavar{kostentabelleninhalt} \newkomavar{testkostentabelle} % Variable für den Fuß setzen \setkomavar{fussspaltelinks}{% Fußspalte links 1 \\ Fußspalte links 2 \\ Fußspalte links 3 }% \setkomavar{fussspaltemitte}{% Fußspalte mitte 1 \\ Fußspalte mitte 2 \\ Fußspalte mitte 3 }% \setkomavar{fussspalterechts}{% Fußspalte rechts 1 \\ Fußspalte rechts 2 \\ Fußspalte rechts 3 }% %Anschriftenblock \setkomavar{addressblock}{% Anschrift }% % Datum rechts oberhalb der Anredefloskel leer setzen \setkomavar{date}{} % Abstand zwischen letzter Textzeile und Fußzeile \setlength{\footskip}{5mm} \setkomavar{firstfoot}{% \hrule % horizontale Linie \begin{minipage}[t]{0.33\textwidth} \usekomavar{fussspaltelinks} \end{minipage} \begin{minipage}[t]{0.33\textwidth} \usekomavar{fussspaltemitte} \end{minipage} \begin{minipage}[t]{0.33\textwidth} \usekomavar{fussspalterechts} \end{minipage} }% \setkomavar{briefschluss}{% Unterzeichner \\ Amtsbezeichnung }% \setkomavar{kostentabelleninhalt}{1&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline2&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline3&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline4&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline5&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline6&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline6&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline7&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline8&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline9&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline10&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline11&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline12&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline13&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline14&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline15&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline16&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline16&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline16&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline16&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline16&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline16&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline16&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline16&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline16&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline16&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline16&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline16&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline} \setkomavar{testkostentabelle}{% \begin{longtable}{| c | c | c | c | c | c |} \usekomavar{kostentabelleninhalt} \end{longtable} }% % Briefinhalt \setkomavar{brieftext}{% \usekomavar{testkostentabelle} }% \begin{letter}{% \usekomavar{addressblock} }% \opening{} \usekomavar{brieftext} \usekomavar{briefschluss} \end{letter} \end{document}
Die overfull \vbox, die gemeldet wird, zeigt, dass das schon beachtet wird, aber ein Umbruch an entsprechender Stelle schlicht nicht möglich ist. Das hat vermutlich etwas damit zu tun, dass Du zu wenig Absätze machst. Mir ist ehrlich gesagt auch nicht klar, warum Du das Briefende nicht mit \closing{…} und ggf. mit signature statt mit einer eigenen Variable machst und warum Du überhaupt diese Variablenorgie anstellst. Wenn man das halbwegs normal macht, wie das in der KOMA-Script-Anleitung angegeben ist, dann funktioniert es nämlich:
Übrigens ist ein \footskip-Wert von 5mm sehr wenig. Das ist nämlich der Abstand zwischen der letzten Grundlinie des Textbereichs und der ersten Grundlinie des Fußes. Die Seitenzahl liegt dann also in diesen 5mm, nicht darunter. Du siehst das, wenn Du mal auf der zweiten Seite mit Hilfe des Pakets lipsum ein \lipsum vor \closing einfügst. Auch auf der ersten Seite täte mehr Abstand Not (min. 10mm).
\documentclass[visualize, % Wird unbedinbgt für PDF/A-Erzeugung gebraucht! paper=a4, version=last,fontsize=12pt, % Format A4, generelle Schriftgröße 12pt foldmarks=true,foldmarks=bmp, % Faltmarken, nur links oben locfield=wide, % location-Feld breit refline=nodate, % Kein automatisches Datum setzen numericaldate=true] % Datum voll numerisch darstellen {scrlttr2} \usepackage[ngerman]{babel} \usepackage{ltxtable} \usepackage{geometry} \geometry{% Das macht man alles in einer geometry-Anweisung! top=24mm,% Oberer Rand generell auf 24 mm gesetzt bottom=20mm,% Unteren Rand generell auf 20 mm gesetzt left=24.1mm,% Linker Rand generell auf 24.1 mm gesetzt right=15.9mm,% Rechter Rand generell auf 15.9 mm gesetzt footskip=5mm,% Abstand zwischen Textende und Fuß-Grundlinie! } % Setzen von Pseudolängen (internen Abständen) \makeatletter %************ Die folgende Pseudolänge ändert den Fuß für die erste Seite. %************ Diese Angabe scheint die Longtable zu irnorieren! % Fuß der ersten Seite nach oben ziehen \@setplength{firstfootvpos}{264mm} \makeatother % Variable für den Fuß vereinbaren \newkomavar{fussspaltelinks} \newkomavar{fussspaltemitte} \newkomavar{fussspalterechts} \begin{document} \newkomavar{kostentabelleninhalt} \newkomavar{testkostentabelle} % Variable für den Fuß setzen \setkomavar{fussspaltelinks}{% Fußspalte links 1 \\ Fußspalte links 2 \\ Fußspalte links 3 }% \setkomavar{fussspaltemitte}{% Fußspalte mitte 1 \\ Fußspalte mitte 2 \\ Fußspalte mitte 3 }% \setkomavar{fussspalterechts}{% Fußspalte rechts 1 \\ Fußspalte rechts 2 \\ Fußspalte rechts 3 }% \setkomavar{firstfoot}{% \hrule % horizontale Linie \begin{minipage}[t]{0.33\textwidth} \usekomavar{fussspaltelinks} \end{minipage} \begin{minipage}[t]{0.33\textwidth} \usekomavar{fussspaltemitte} \end{minipage} \begin{minipage}[t]{0.33\textwidth} \usekomavar{fussspalterechts} \end{minipage} }% \setkomavar{signature}{% Unterzeichner \\ Amtsbezeichnung }% \let\raggedsignature\raggedright \begin{letter}{% Anschrift }% \opening{Hallo,} \begin{longtable}{| c | c | c | c | c | c |} 1&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 2&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 3&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 4&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 5&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 6&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 6&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 7&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 8&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 9&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 10&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 11&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 12&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 13&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 14&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 15&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 16&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 16&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 16&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 16&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 16&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 16&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 16&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 16&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 16&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 16&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 16&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 16&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline \end{longtable} \closing{Bis dann} \end{letter} \end{document}
Ich habe mal in deinem Vorschlag die Longtable durch Auskommentieren 6 Zeilen kürzer gemacht und der anfangs beschriebene Effekt des Hineinschreibens in den Fußbereich ist wieder da.
\documentclass[paper=a4, version=last,fontsize=12pt, % Format A4, generelle Schriftgröße 12pt foldmarks=true,foldmarks=bmp, % Faltmarken, nur links oben locfield=wide, % location-Feld breit refline=nodate, % Kein automatisches Datum setzen numericaldate=true] % Datum voll numerisch darstellen {scrlttr2} \usepackage[ngerman]{babel} \usepackage{ltxtable} \usepackage{geometry} \geometry{% Das macht man alles in einer geometry-Anweisung! top=24mm,% Oberer Rand generell auf 24 mm gesetzt bottom=20mm,% Unteren Rand generell auf 20 mm gesetzt left=24.1mm,% Linker Rand generell auf 24.1 mm gesetzt right=15.9mm,% Rechter Rand generell auf 15.9 mm gesetzt footskip=5mm,% Abstand zwischen Textende und Fuß-Grundlinie! } % Setzen von Pseudolängen (internen Abständen) \makeatletter %************ Die folgende Pseudolänge ändert den Fuß für die erste Seite. %************ Diese Angabe scheint die Longtable zu irnorieren! % Fuß der ersten Seite nach oben ziehen \@setplength{firstfootvpos}{264mm} \makeatother % Variable für den Fuß vereinbaren \newkomavar{fussspaltelinks} \newkomavar{fussspaltemitte} \newkomavar{fussspalterechts} \begin{document} \newkomavar{kostentabelleninhalt} \newkomavar{testkostentabelle} % Variable für den Fuß setzen \setkomavar{fussspaltelinks}{% Fußspalte links 1 \\ Fußspalte links 2 \\ Fußspalte links 3 }% \setkomavar{fussspaltemitte}{% Fußspalte mitte 1 \\ Fußspalte mitte 2 \\ Fußspalte mitte 3 }% \setkomavar{fussspalterechts}{% Fußspalte rechts 1 \\ Fußspalte rechts 2 \\ Fußspalte rechts 3 }% \setkomavar{firstfoot}{% \hrule % horizontale Linie \begin{minipage}[t]{0.33\textwidth} \usekomavar{fussspaltelinks} \end{minipage} \begin{minipage}[t]{0.33\textwidth} \usekomavar{fussspaltemitte} \end{minipage} \begin{minipage}[t]{0.33\textwidth} \usekomavar{fussspalterechts} \end{minipage} }% \setkomavar{signature}{% Unterzeichner \\ Amtsbezeichnung }% \let\raggedsignature\raggedright \begin{letter}{% Anschrift }% \opening{Hallo,} \begin{longtable}{| c | c | c | c | c | c |} 1&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 2&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 3&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 4&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 5&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 6&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 6&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 7&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 8&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 9&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 10&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 11&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 12&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 13&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 14&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 15&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 16&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 16&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 16&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 16&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 16&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline 16&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline %16&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline %16&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline %16&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline %16&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline %16&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline %16&1234.2&Gegenstand 1&20,00&10,00&5,00\\ \hline \end{longtable} \closing{Bis dann} \end{letter} \end{document}
Das erneute Auftreten der Misslichkeit lag im Verwenden von 'signature'. Dessen Inhalt wurde in den Fußbereich geschoben. Wenn ich alle drei Unterschriftenzeilen ins 'closing' lege. funktioniert der Umbruch einwandfrei. Damit ist der Fall erst mal erledigt. Nochmals vielen Dank und vielleicht bis zum nächsten Mal.
Du musst einfach lernen, dass es Situationen gibt, in denen TeX nicht genug Freiheiten hat, um eine nach den Einstellungen passable Lösung zu finden. Beispielsweise müssen Gruß und Signatur immer eine Einheit bilden. Wenn nun mitten darin ein Umbruch erfolgen müsste, dann gibt es je abhängig von den weiteren Umständen entweder einen zu frühen Umbruch oder einen zu späten. Normalerweise gibt es bei Briefen eher einen zu frühen. Bei einem Zusammentreffen mit besonderen Umgebungen wie einer longtable kann es aber auch einen zu späten Umbruch geben. Das geschieht aber nicht stillschweigend, sondern mit einer entsprechenden Meldung, wie die bereits genannte "overfull \vbox". In dem Fall sollte man dann gezielt eingreifen. Mittel dafür gibt es angefangen von einem \newpage an geeigneter Stelle bis hin zu einer Umformulierung des Textes eine ganze Menge.
Andere Fälle, in denen solche Meldungen auftreten sind beispielsweise zu große Boxen oder allgemein Boxen im Bereich des Seitenumbruchs im doppelseitigen Satz.
Übrigens gibt es auch "underfull \vbox", "overfull \hbox" und "underfull \hbox". Siehe auch »Was bedeuten \underfull/\overfull \hbox?«
Andere Fälle, in denen solche Meldungen auftreten sind beispielsweise zu große Boxen oder allgemein Boxen im Bereich des Seitenumbruchs im doppelseitigen Satz.
Übrigens gibt es auch "underfull \vbox", "overfull \hbox" und "underfull \hbox". Siehe auch »Was bedeuten \underfull/\overfull \hbox?«