NAME
Quiq::LaTeX::Document - Erzeuge LaTeX Dokument
BASE CLASS
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
-
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.222
AUTHOR
Frank Seitz, http://fseitz.de/
COPYRIGHT
Copyright (C) 2024 Frank Seitz
LICENSE
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.