NAME

Prty::LaTeX::Generator - LaTeX-Generator

BASE CLASS

Prty::Hash

DESCRIPTION

Ein Objekt der Klasse repräsentiert einen LaTeX-Generator. Mit den Methoden der Klasse kann aus einem Perl-Programm heraus LaTeX-Code erzeugt werden.

LaTeX Pakete

babel - Sprachspezifische Einstellungen vornehmen

    \usepackage[ngerman]{babel}

METHODS

Konstruktor

new() - Instantiiere LaTeX-Generator

Synopsis

    $ltx = $class->new;

Description

Instantiiere einen LaTeX-Generator und liefere eine Referenz auf dieses Objekt zurück.

Elementare Konstruktion

cmd() - Erzeuge LaTeX-Kommando

Synopsis

    $code = $ltx->cmd($name,@args);

Options

-nl => $n (Default: 1)

Füge $n Zeilenumbrüche am Ende hinzu.

-o => $options
-o => \@options

Füge eine Optionsliste [...] hinzu.

-p => $parameters
-p => \@parameters

Füge eine Parameterliste {...} hinzu.

-preNl => $n (Default: 0)

Setze $n Zeilenumbrüche an den Anfang.

Description

Erzeuge ein LaTeX-Kommando und liefere den resultierenden Code zurück.

Examples

Kommando ohne Parameter oder Optionen

    $ltx->cmd('LaTeX');

produziert

    \LaTeX

Kommando mit leerer Parameterliste

    $ltx->cmd('LaTeX',-p=>'');

produziert

    \LaTeX{}

Kommando mit Parameter

    $ltx->cmd('documentclass',
        -p => 'article',
    );

produziert

    \documentclass{article}

Kommando mit Parameter und Option

    $ltx->cmd('documentclass',
        -o => '12pt',
        -p => 'article',
    );

produziert

    \documentclass[12pt]{article}

Kommando mit Parameter und mehreren Optionen (Variante 1)

    $ltx->cmd('documentclass',
        -o => 'a4wide,12pt',
        -p => 'article',
    );

produziert

    \documentclass[a4wide,12pt]{article}

Kommando mit Parameter und mehreren Optionen (Variante 2)

    $ltx->cmd('documentclass',
        -o => ['a4wide','12pt'],
        -p => 'article',
    );

produziert

    \documentclass[a4wide,12pt]{article}

env() - Erzeuge LaTeX-Umgebung

Synopsis

    $code = $ltx->env($name,$body,@args);

Options

Siehe Methode $ltx->cmd(). Weitere Optionen:

-indent => $n (Default: 2)

Rücke den Inhalt der Umgebung für eine bessere Quelltext-Lesbarkeit um $n Leerzeichen ein. Achtung: In einer Verbatim-Umgebung hat dies Auswirkungen auf die Darstellung und sollte dort mit -indent => 0 abgeschaltet werden.

Description

Erzeuge eine LaTeX-Umgebung und liefere den resultierenden Code zurück.

Examples

Document-Umgebung mit Text

    $ltx->env('document','Dies ist ein Text.');

produziert

    \begin{document}
      Dies ist ein Text.
    \end{document}

len() - Erzeuge TeX-Längenangabe

Synopsis

    $code = $ltx->len($name,$length,@args);

Options

Siehe Methode $ltx->cmd().

Description

Erzeuge eine TeX-Längenangabe und liefere den resultierenden Code zurück.

Examples

Paragraph-Einrückung entfernen

    $ltx->len('parindent','0em');

produziert

    \parindent0em

comment() - Erzeuge LaTeX-Kommentar

Synopsis

    $code = $ltx->comment($text,@opt);

Options

-nl => $n (Default: 1)

Füge $n Zeilenumbrüche am Ende hinzu.

-preNl => $n (Default: 0)

Setze $n Zeilenumbrüche an den Anfang.

Description

Erzeuge einen LaTex-Kommentar und liefere den resultierenden Code zurück.

Examples

Kommentar erzeugen

    $ltx->comment("Dies ist\nein Kommentar");

produziert

    % Dies ist
    % ein Kommentar

protect() - Schütze Sonderzeichen

Synopsis

    $code = $ltx->protect($text);

Description

Schütze Sonderzeichen in $text und liefere den resultierenden Code zurück.

Liste/Erläuterung der LaTeX-Sonderzeichen: https://www.namsu.de/Extra/strukturen/Sonderzeichen.html

Examples

Dollarzeichen

    $ltx->protect('Der Text $text wird geschützt.');

produziert

    Der Text \$text wird geschützt.

Höhere Konstruktion

section() - Erzeuge LaTeX Section

Synopsis

    $code = $ltx->section($sectionName,$title);

Arguments

$sectionName

Name des LaTeX-Abschnitts. Mögliche Werte: 'part', 'chapter', 'section', 'subsection', 'susubsection', 'paragraph', 'subparagraph'.

Options

-label => $label

Kennzeichne Abschnitt mit Label $label.

-toc => $bool (Default: 1)

Nimm die Überschrift nicht ins Inhaltsverzeichnis auf.

Description

Erzeuge ein LaTeX Section und liefere den resultierenden Code zurück.

Examples

Ein Abschnitt der Ebene 1

    $ltx->section('subsection','Ein Abschnitt');

produziert

    \subsection{Ein Abschnitt}

VERSION

1.122

AUTHOR

Frank Seitz, http://fseitz.de/

COPYRIGHT

Copyright (C) 2018 Frank Seitz

LICENSE

This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.