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
rowCallback
undtitleCallback
übergeben werden. -
Unterschrift zur Tabelle.
- indent => $length
-
Einrückung der Tabelle vom linken Rand. Die Option
align
darf 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
\makecell
auf 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 Packagemakecell
geladen 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
%s
wird 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.140
AUTHOR
Frank Seitz, http://fseitz.de/
COPYRIGHT
Copyright (C) 2019 Frank Seitz
LICENSE
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.