NAME
Quiq::LaTeX::LongTable - Erzeuge LaTeX longtable
BASE CLASS
SYNOPSIS
Der Code
use Quiq::LaTeX::LongTable;
use Quiq::LaTeX::Code;
my $tab = Quiq::LaTeX::LongTable->new(
alignments => ['l','r','c'],
caption => 'Ein Test',
titles => ['Links','Rechts','Zentriert'],
rows => [
['A',1,'AB'],
['AB',2,'CD'],
['ABC',3,'EF'],
['ABCD',4,'GH'],
],
);
my $l = Quiq::LaTeX::Code->new;
my $code = $tab->latex($l);
produziert
\begin{longtable}{|lrc|}
\hline
Links & Rechts & Zentriert \\ \hline
\endfirsthead
\multicolumn{3}{r}{\emph{Fortsetzung}} \
\hline
Links & Rechts & Zentriert \\ \hline
\endhead
\hline
\multicolumn{3}{r}{\emph{weiter nächste Seite}} \
\endfoot
\caption{Ein Test}
\endlastfoot
A & 1 & AB \\ \hline
AB & 2 & CD \\ \hline
ABC & 3 & EF \\ \hline
ABCD & 4 & GH \\ \hline
\end{longtable}
was im LaTeX-Dokument in etwa so aussieht
+--------------------------+
| Links Rechts Zentriert |
+--------------------------+
| A 1 AB |
+--------------------------+
| AB 12 CD |
+--------------------------+
| ABC 123 EF |
+--------------------------+
| ABCD 1234 GH |
+--------------------------+
Tabelle 1: Ein Test
METHODS
Konstruktor
new() - Instantiiere LaTeX LongTable-Objekt
Synopsis
$tab = $class->new(@keyVal);
Arguments
- align => $align (Default: 'c')
-
Horizontale Ausrichtung der Tabelle auf der Seite. Mögliche Werte: 'l', 'c'.
- alignments => \@alignments (Default: [])
-
Liste der Kolumnen-Ausrichtungen. Mögliche Werte je Kolumne: 'l', 'r', 'c'.
- border => $border (Default: 'hHV' oder 'hvHV' bei multiLine)
-
Linien in und um die Tabelle. Der Wert ist eine Zeichenkette, die sich aus den Zeichen 't', 'h', 'v', 'H', 'V' zusammensetzt.
- callbackArguments => \@arr (Default: [])
-
Liste von zusätzlichen Argumenten, die an die Funktionen
rowCallbackundtitleCallbackübergeben werden. - caption => $str
-
Unterschrift zur Tabelle.
- indent => $length
-
Einrückung der Tabelle vom linken Rand. Die Option
aligndarf dann nicht gesetzt sein, auch nicht auf 'l'. - label => $str
-
Label der Tabelle, über welches sie referenziert werden kann.
- language => 'german'|'english'
-
Die Sprache des LaTeX-Dokuments.
- multiLine => $bool (Default: undef)
-
Wende
\makecellauf alle Kolumnen an. Diese Option muss aktiviert werden, wenn mehrzeilige Zellen mehrzeilig dargestellt werden sollen, denn dies kann LaTeX nicht. Wird die Option aktiviert, muss das Packagemakecellgeladen werden. - rows => \@rows (Default: [])
-
Liste der Tabellenzeilen.
- rowCallback => sub {} (Default: siehe unten)
-
Subroutine, die für jede Zeile in @rows die Zeileninformation liefert, die in den LaTeX-Code eingesetzt wird. Default:
sub { my ($self,$l,$row,$n) = @_; my @row; for my $val (@$row) { push @row,$l->protect($val); } return @row; } - titleColor => $color
-
Farbe der Titelzeile.
- titleWrapper => $code
-
Zeichenkette, die um jeden Kolumnentitel gelegt wird. Für
%swird der Titel eingesetzt. Auf diesem Weg kann ein Makro auf jeden Titel angewendet werden. Z.B. serifenlosen, fetten Font einstellen:titleWrapper => '\textsf{\textbf{%s}}' - titles => \@titles (Default: [])
-
Liste der Kolumnentitel.
- titleCallback => sub {} (Default: siehe unten)
-
Subroutine, die die Titelinformation liefert, die in den LaTeX-Code eingesetzt wird. Default:
sub { my ($self,$l,$title,$n) = @_; return $l->protect($title); }
Returns
LongTable-Objekt
Description
Instantiiere ein LaTeX LongTable-Objekt und liefere eine Referenz auf dieses Objekt zurück.
Objektmethoden
latex() - Generiere LaTeX-Code
Synopsis
$code = $tab->latex($l);
$code = $class->latex($l,@keyVal);
Description
Generiere den LaTeX-Code des Objekts und liefere diesen zurück. Als Klassenmethode gerufen, wird das Objekt intern erzeugt und mit den Attributen @keyVal instantiiert.
VERSION
1.232
AUTHOR
Frank Seitz, http://fseitz.de/
COPYRIGHT
Copyright (C) 2025 Frank Seitz
LICENSE
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.