The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Quiq::LaTeX::Document - Erzeuge LaTeX Dokument

BASE CLASS

Quiq::Hash

SYNOPSIS

Der Code

    use Quiq::LaTeX::Document;
    use Quiq::LaTeX::Code;
    
    my $l = Quiq::LaTeX::Code->new;
    
    my $doc = Quiq::LaTeX::Document->new(
        body => 'Hallo Welt',
    );
    
    my $code = $doc->latex($l);

produziert

    \documentclass[ngerman,a4paper]{scrartcl}
    \usepackage[T1]{fontenc}
    \usepackage{lmodern}
    \usepackage[utf8]{inputenc}
    \usepackage{babel}
    \usepackage{geometry}
    \usepackage{microtype}
    \geometry{height=22.5cm,bottom=3.8cm}
    \setlength{\parindent}{0em}
    \setlength{\parskip}{0.5ex}
    \begin{document}
    Hallo Welt!
    \end{document}

METHODS

Konstruktor

new() - Instantiiere LaTeX Dokument-Objekt

Synopsis

    $doc = $class->new(@keyVal);

Arguments

author => $str

Der Autor des Dokuments. Wenn gesetzt, wird eine Titelseite bzw. ein Titelabschnitt erzeugt.

body => $str | \@arr (Default: '')

Der Rumpf des Dokuments.

compactCode => $bool (Default: 1)

Erzeuge den LaTeX Code ohne zusätzliche Leerzeilen und Kommentare.

date => $str

Das Datum des Dokuments. Wenn gesetzt, wird eine Titelseite bzw. ein Titelabschnitt erzeugt. Formatelemente von strftime werden expandiert. Spezielle Werte:

today

Wird ersetzt zu \today.

now

Wird expandiert zu YYYY-MM-DD HH:MI:SS.

documentClass => $documentClass (Default: 'scrartcl')

Die Dokumentklasse.

encoding => $encoding (Default: 'utf8')

Das Input-Encoding.

fontEncoding => $font (Default: 'T1')

Das Font-Encoding.

fontSize => $fontSize (Default: undef)

Die Größe des Hauptfont. Mogliche Werte für die Standard LaTeX Dokumentklassen article etc.: '10pt', '11pt', '12pt'. Die KOMA-Script Klassen 'scrartcl' etc. erlauben weitere Fontgrößen.

geometry => $str (Default: 'height=22.5cm,bottom=3.8cm' bei a4paper)

Gegenüber der Grundeinstellung abweichende Seitenmaße.

language => $language (Default: 'ngerman')

Die Sprache, in der das Dokument verfasst ist.

options => $str | \@arr

Dukument-Optionen.

packages => \@arr (Default: [])

Liste der Packages, die zusätzlich geladen werden sollen. Die Elemente sind Schlüssel/Wert-Paare der Art:

    $package => \@options
paperSize => $paperSize (Default: 'a4paper')

Die Größe des Papiers, die die das Dokument gesetzt wird.

parIndent => $length (Default: undef)

Tiefe der Absatzeinrückung.

parSkip => $length (Default: undef)

Vertikaler Abstand zwischen Absätzen.

preamble => $str | \@arr (Default: '')

Dokumentvorspann mit Definitionen.

preComment => $str

Kommentar am Dokumentanfang. Wir mit einer Leerzeile vom folgenden Code abgesetzt.

secNumDepth => $n

Tiefe, bis zu der Abschnitte numeriert werden. Default seitens LaTeX: 3. -2 schaltet die Numerierung ab.

title => $str

Der Titel des Dokuments. Wenn gesetzt, wird eine Titelseite bzw. ein Titelabschnitt erzeugt.

titlePageStyle => $pageStyle

Seitenstil der ersten Seite. Mögliche Werte: 'empty' (Kopf- und Fußzeile leer), 'plain' (nur Fuß mit Seitennummer), 'headings' (Kopf mit Abschnittstiteln, Fuß mit Seitennummer).

tocDepth => $n

Tiefe, bis zu der Abschnitte in das Inhaltsverzeichnis aufgenommen werden. Default seitens LaTeX: 3.

Returns

Dokument-Objekt

Description

Instantiiere ein LaTeX Dokument-Objekt und liefere eine Referenz auf dieses Objekt zurück.

Objektmethoden

latex() - Generiere LaTeX-Code

Synopsis

    $code = $doc->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.142

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.