Vertikaler Abstand innerhalb von Longtable

Tabellen und Grafiken erstellen und anordnen


oiseau
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Fr 5. Mär 2021, 17:57

Vertikaler Abstand innerhalb von Longtable

Beitrag von oiseau »

Guten Abend,

ich möchte einen Gedichtband erstellen. Wie in der Grafik dargestellt, sollen die Gedichte blockweise untereinander stehen. Am Ende einer Seite sollen angefangene Gedichte per Umbruch auf der Folgeseite weitergeführt werden. Da die Gedichtblöcke selbst horizontal (ausgehend von der längsten Zeile) über die Seite zentriert werden und auch der Gedichtumbruch automatisch erfolgen soll, arbeite ich mit longtable.

Soweit funktioniert das einwandfrei. Jedoch möchte ich, wie in meiner Grafik dargestellt, zwischen Überschrift und Gedichttext als auch zwischen Gedichttext und Datum jeweils einen kleinen vertikalen Abstand setzen. Mit Varianten wie \vspace{..} oder \\ [-1.5ex] funktioniert das leider nur bei einer normalen Tabelle, nicht aber mit longtable. Kann mir jemand dabei helfen?

%\poem{Titel}{Datum}{Index}{Gedicht}
\newcommand{\poem}[4]{
	\index{#3!#1}
	\centering
	\begin{longtable}{l}

	\multicolumn{1}{c}{\ueberschrift{#1}} \\
	
        #4
	
	\multicolumn{1}{r}{\datum{#2}}
	
 \end{longtable}
}

Bild

Dateianhänge
Latex Beispiel.jpg

Grummelgast

Re: Vertikaler Abstand innerhalb von Longtable

Beitrag von Grummelgast »

Tabelle 1 der longtable-Anleitung zeigt, dass \\ sehr wohl ein optionales Argument hat und das auch funktioniert. Ohne Minimalbeispiel (Link beachten!) kann ich daher nicht sagen, warum das bei dir anders ist.

Ich würde allerdings Gedichte nicht unbedingt als Tabelle setzen. Es gibt Pakete dafür. Würde mich wundern, wenn nichts brauchbares dabei wäre.


oiseau
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Fr 5. Mär 2021, 17:57

Re: Vertikaler Abstand innerhalb von Longtable

Beitrag von oiseau »

Ich Danke Dir für Deinen Hinweis. Ich habe es noch einmal mit \\[5pt] als Beispiel ausprobiert und es funktioniert. Mein Fehler war, dass ich zuvor noch einen Umbruch mit \\ gemacht habe. Also darf jeweils die letzte Gedichtzeile wohl kein \\ am Ende enthalten, auf das ein \\[5pt] folgt?

In meinen Tests sind Umbrüche mit Höhenangaben nur einmal hintereinander möglich. Bei mehreren (z.B. \\[5p]\\[5pt]) wird wieder ein normaler Abstand genommen.

Ich habe ein Minimalbeispiel erstellt. Dabei stellt sich mir eine weitere Frage. Wie kann ich die vertikalen Abstände zwischen den longtables verändern? Wenn ich zwei untereinandersetze, haben sie einen automatischen Abstand.

Danke auch für Deine Paketliste. Ich habe einige besondere Figurengedichte, die dort leider nicht funktionieren würden, zudem wollte ich den Kommandoaufruf möglichst kurz halten.

\documentclass[11pt,a4paper]{scrbook}
\usepackage{color}
\usepackage[T1]{fontenc}
\usepackage[cmintegrals,cmbraces]{newtxmath}
\usepackage{ebgaramond-maths}

\usepackage{longtable}

\usepackage{german} %deutsche Trennung
\usepackage[utf8]{inputenc} %deutsche Umlaute

\usepackage[paperwidth=12cm,paperheight=19cm,left=10mm,right=15mm,top=20mm,bottom=25mm]{geometry}

\usepackage[bottom]{footmisc}

\usepackage{scrlayer-scrpage}

\pagestyle{scrheadings} %scrpage2-Paket benutzen

\setlength{\parindent}{0cm} %Einrücktiefe neuer Absatz auf Null

%=====================================
% Definitionen
%=====================================

\newcommand{\setgedichtfontsize}{\fontsize{11}{13} \selectfont} %Globale Schriftgröße für Gedichte

\newcommand{\letter}[1]{{\fontsize{17}{13}\selectfont #1}}

\newcommand{\ueberschrift}[1]{{\small\scshape #1}}

\newcommand{\datum}[1]{{\footnotesize #1}}

\newcommand{\Abstand}{\vspace{10mm}}

%\poem{Titel}{Datum}{Gedicht}
\newcommand{\poem}[3]{
    \centering
    \begin{longtable}{l}

	\multicolumn{1}{c}{\ueberschrift{#1}}  \\[5pt]
	
    #3
  
     \\[5pt]
  
     \multicolumn{1}{r}{\datum{#2}} \\
	
    \end{longtable}
    %\vspace{10mm}

}



%=====================================
% Dokumentinhalt
%=====================================


\begin{document}


\setgedichtfontsize

\chead{1996-1997}


\poem{Gedichttitel 1}{November 1996}{

    \letter{I}ch bin ein sehr kurzes Gedicht \\
    und habe nur zwei Zeilen.
    
}

\Abstand


\poem{Gedichttitel 2}{Mai 1997}{

	\letter{I}ch bin etwas länger, \\
	und bestehe zumindest \\
	aus vier einfachen\\
	Zeilen.
    
}

\Abstand

\poem{Gedichttitel 3}{Juni 1997}{

	\letter{I}ch bin das längste der drei,\\
	denn meine Strophen \\
	erstrecken sich \\
	über drei an der Zahl.\\
	\\
    Damit hier nicht dasselbe steht\\
    wie in der ersten Strophe, \\
    bin ich anders \\
    als diese.\\
    \\
    In der dritten Strophe \\
	variiere ich erneut \\	
	und beende damit \\
	das Gedicht.

}

   
\end{document}

Grummelgast

Re: Vertikaler Abstand innerhalb von Longtable

Beitrag von Grummelgast »

oiseau hat geschrieben:
So 24. Okt 2021, 02:31

Ich habe ein Minimalbeispiel erstellt. Dabei stellt sich mir eine weitere Frage. Wie kann ich die vertikalen Abstände zwischen den longtables verändern? Wenn ich zwei untereinandersetze, haben sie einen automatischen Abstand.

Dein Befehl \Abstand verwendet ja auch einen festen Wert für den Abstand. Wenn du zwischen zwei Gedichten einen anderen haben willst, musst du eben einen anderen Wert bei \vspace verwenden. Wo ist das Problem?

Ich würde übrigens innerhalb einer Strophe \\* statt \\ verwenden, damit ein Seitenumbruch nur zwischen den Strophen erfolgt.

Ein Problem bei der Verwendung einer Tabelle mit einer l-Spalte sehe ich, wenn eine Zeile einmal recht lang wird. Dann findet in einer l-Spalte kein automatischer Umbruch statt. Beispielsweise mit poetry ist das hingegen kein Problem. Dort gibt es neben manuellen auch automatische Umbrüche. Außerdem unterstützt das Paket auch \listofpoems und einen index of first words, etwas, das Gedichtbandersteller früher oder später meist haben wollen. Wobei man natürlich auch einfach das Inhaltsverzeichnis der Dokumentklasse verwenden könnte. Dazu dürfte aber die Überschrift nicht zu Fuß als Teil der Tabelle zusammengemurkst werden, sondern müsste per Überschriftenbefehl gesetzt werden. Bei den leicht konfigurierbaren Überschriften der KOMA-Script-Klassen verstehe ich ohnehin nicht, warum du nicht wenigstens das machst. Vermutlich wäre dann scrartcl mit \addsec die bessere Wahl als scrbook mit \addchap.


oiseau
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Fr 5. Mär 2021, 17:57

Re: Vertikaler Abstand innerhalb von Longtable

Beitrag von oiseau »

Ich danke Dir nochmals sehr für Deine Antwort.

Das ist richtig, ich setze zwar einen manuellen Abstand zwischen den longtables, aber es gibt einen sogenanten Whitespace vor und nach jeder longtable. Ich habe herausgefunden, dass man beide Werte mit \setlength{\LTpre}{0pt} bzw. \setlength{\LTpost}{0pt} auf Null setzen kann.

Dein Tipp mit \\* ist wunderbar, das wusste ich noch nicht. :)

Ich werde mich bei Gelegenheit einmal mit dem poetry-Paket beschäftigen. Das spart mit Sicherheit eine Menge Nerven und führt mich hoffentlich zügig zum Ziel.

Einen schönen Abend noch.


gast.

Re: Vertikaler Abstand innerhalb von Longtable

Beitrag von gast. »

In der oben bereits verlinkten longtable-Anleitung sind die diversen Parameter und Einstellmöglichkeiten für die longtable-Umgebung übrigens dokumentiert. Das ist mehr oder weniger der Sinn einer Anleitung. Es lohnt sich meist, diese zu lesen. :wink:


Antworten