+ <sect2 id="Vorlagen-RB">
+ <title>Der Druckvorlagensatz RB</title>
+
+ <para>Hierbei handelt es sich um einen vollständigen LaTeX
+ Dokumentensatz mit alternativem Design. Die odt oder html-Varianten
+ sind nicht gepflegt.</para>
+
+ <para>Die konzeptionelle Idee der Vorlagen wird <ulink
+ url="http://www.kivitendo-support.de/vortraege/Lx-Office%20Anwendertreffen%20LaTeX-Druckvorlagen-Teil3-finale.pdf">hier</ulink>
+ auf Folie 5 bis 10 vorgestellt. Informationen zur Anpassung an die
+ eigenen Firmendaten finden sich in der Datei Readme.tex im
+ Vorlagenverzeichnis.</para>
+
+ <para>Eine kurze Übersicht der Features:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Mehrsprachenfähig, mit Deutscher und Englischer
+ Übersetzung</para>
+ </listitem>
+
+ <listitem>
+ <para>Zentrale Konfigurationsdateien, die für alle Belege benutzt
+ werden, z.B. für Kopf- und Fußzeilen, und Infos wie
+ Bankdaten</para>
+ </listitem>
+
+ <listitem>
+ <para>mehrere vordefinierte Varianten für
+ Logos/Hintergrundbilder</para>
+ </listitem>
+
+ <listitem>
+ <para>Berücksichtigung für Steuerzonen "EU mit USt-ID Nummer" oder
+ "Außerhalb EU"</para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2 id="f-tex">
+ <title>f-tex</title>
+
+ <para>Ein Vorlagensatz, der in wenigen Minuten alle Dokumente zur
+ Verfügung stellt.</para>
+
+ <sect3 id="f-tex-Feature-Übersicht">
+ <title>Feature-Übersicht</title>
+
+ <itemizedlist>
+ <listitem>
+ <para>Keine Redundanz. Es wird ein- und dieselbe LaTeX-Vorlage
+ für alle briefartigen Dokumente verwendet. Also Angebot,
+ Rechnung, Proformarechnung, Lieferschein, aber eben nicht für
+ Paketaufkleber etc.</para>
+ </listitem>
+
+ <listitem>
+ <para>Leichte Anpassung an das Firmen-Layout durch Verwendung
+ eines Hintergrund-PDFs. Dieses kann leicht mit dem eigenen
+ Lieblingsprogramm erstellt werden (Openoffice, Inkscape, Gimp,
+ Adobe*)</para>
+ </listitem>
+
+ <listitem>
+ <para>Hintergrund-PDF umschaltbar auf "nur erste Seite"
+ (Standard) oder "alle Seiten" (Option
+ "<option>bgPdfFirstPageOnly</option>" in Datei
+ <filename>letter.lco</filename>)</para>
+ </listitem>
+
+ <listitem>
+ <para>Hintergrund-PDF für Ausdruck auf bereits bedrucktem
+ Briefpapier abschaltbar. Es wird dann nur bei per E-Mail
+ versendeten Dokumenten eingebunden (Option
+ "<option>bgPdfEmailOnly</option>" in Datei
+ <filename>letter.lco</filename>).</para>
+ </listitem>
+
+ <listitem>
+ <para>Nutzung der Layout-Funktionen von LaTeX für Seitenumbruch,
+ Wiederholung von Kopfzeilen, Zwischensummen etc. (danke an
+ Kai-Martin Knaak für die Vorarbeit)</para>
+ </listitem>
+
+ <listitem>
+ <para>Anzeige des Empfängerlandes im Adressfeld nur, wenn es vom
+ Land des eigenen Unternehmens abweicht (also die Rechnung das
+ Land verlässt).</para>
+ </listitem>
+
+ <listitem>
+ <para>Multisprachfähig leicht um weitere Sprachen zu erweitern,
+ alle Übersetzungen in der Datei
+ <filename>translatinos.tex</filename>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Auflistung von Bruttopreisen für Endverbraucher.</para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ <sect3 id="f-tex-Installation">
+ <title>Die Installation</title>
+
+ <itemizedlist>
+ <listitem>
+ <para>Vorlagenverzeichnis mit Option f-tex anlegen, siehe: <xref
+ linkend="Vorlagenverzeichnis-anlegen"/>. Das Vorlagensystem
+ funktioniert jetzt schon, hat allerdings noch einen
+ Beispiel-Briefkopf.</para>
+ </listitem>
+
+ <listitem>
+ <para>Erstelle eine pdf-Hintergrund Datei und verlinke sie nach
+ <filename>./letter_head.pdf</filename>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Editiere den Bereich "<option>settings</option>" in der
+ datei <filename>letter.lco</filename>.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>oder etwas detaillierter:</para>
+
+ <para>Es wird eine Datei <filename>sample.lco</filename> erstellt
+ und diese nach <filename>letter.lco</filename> verlinkt. Eigentlich
+ ist dies die Datei die für die firmenspezifischen Anpassungen
+ gedacht ist. Da die Einstiegshürde in LaTeX nicht ganz niedrig ist,
+ wird in dieser Datei auf ein Hintergrund-PDF verwiesen. Ich empfehle
+ über dieses PDF die persönlichen Layoutanpassungen vorzunehmen und
+ <filename>sample.lco</filename> unverändert zu lassen. Die Anpassung
+ über eine <filename>*.lco</filename>-Datei, die letztlich auf
+ <filename>letter.lco</filename> verlinkt ist ist aber auch
+ möglich.</para>
+
+ <para>Es wird eine Datei <filename>sample_head.pdf</filename> mit
+ ausgeliefert, diese wird nach <filename>letter_head.pdf</filename>
+ verlinkt. Damit gibt es schon mal eine funktionsfähige Vorlage.
+ Schau Dir nach Abschluss der Installation die Datei
+ <filename>sample_head.pdf</filename> an und erstelle ein
+ entsprechendes PDF passend zum Briefkopf Deiner Firma, diese dann im
+ Template Verzeichniss ablegen und statt
+ <filename>sample_head.pdf</filename> nach
+ <filename>letter_head.pdf</filename> verlinken.</para>
+
+ <para>Letzlich muss <filename>letter_head.pdf</filename> auf das
+ passende Hintergrund-PDF verweisen, welches gewünschten Briefkopf
+ enthält.</para>
+
+ <para>Es wird eine Datei <filename>mydata.tex.example</filename>
+ ausgeliefert, die nach <filename>mytdata.tex</filename> verlinkt
+ ist. Bei verwendetem Hintergrund-PDF wird nur der Eintrag für das
+ Land verwendet. Die Datei muss also nicht angefasst werden. Die
+ anderen Werte sind für das Modul 'lp' (Label Print in erp - zur Zeit
+ nicht im öffentlichen Zweig).</para>
+
+ <para>Alle Anpassungen zum Briefkopf, Fusszeilen, Firmenlogos, etc.
+ sollten über die Hintergrund-PDF-Datei oder die
+ <filename>*.lco</filename>-Datei erfolgen.</para>
+ </sect3>
+
+ <sect3 id="f-tex-Funktionsübersicht">
+ <title>f-tex Funktionsübersicht</title>
+
+ <para>Das Konzept von kivitendo sieht vor, für jedes Dokument
+ (Auftragsbestätigung, Lieferschein, Rechnung, etc.) eine
+ LaTeX-Vorlage vorzuhalten, dies ist sehr wartungsunfreundlich. Auch
+ das Einlesen einer einheitlichen Quelle für den Briefkopf bringt nur
+ bedingte Vorteile, da hier leicht die Pflege der Artikel-Tabellen
+ aus dem Ruder läuft. Bei dem vorliegenden Ansatz wird für alle
+ briefartigen Dokumente mit Artikel-Tabellen eine einheitliche
+ LaTeX-Vorlage verwendet, welche über Codeweichen die Besonderheiten
+ der jeweiligen Dokumente berücksichtigt:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Tabellen mit oder ohne Preis</para>
+ </listitem>
+
+ <listitem>
+ <para>Sprache der Tabellenüberschriften etc.</para>
+ </listitem>
+
+ <listitem>
+ <para>Anpassung der Bezugs-Zeile (z.B. Rechnungsnummer versus
+ Angebotsnummer)</para>
+ </listitem>
+
+ <listitem>
+ <para>Darstellung von Brutto oder Netto-Preisen in der
+ Auflistung (Endverbraucher versus gewerblicher Kunde)</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Nachteil:</para>
+
+ <para>LaTeX hat ohnehin eine sehr steile Lehrnkurve. Die Datei
+ <filename>letter.tex</filename> ist sehr komplex und verstärkt damit
+ diesen Effekt noch einmal erheblich. Wer LaTeX-Erfahrung hat, oder
+ geübt ist Scriptsparachen nachzuvollziehen kann natürlich auch
+ innerhalb der Tabellendarstellung gut persönliche Anpassungen
+ vornehmen. Aber man kann sich hier bei Veränderungen sehr schnell
+ heftig in den Fuss schiessen.</para>
+
+ <para>Wer nicht so tief in die Materie einsteigen will oder leicht
+ zu frustrieren ist, sollte sein Hintergrund-PDF auf Basis der
+ mitglieferten Datei <filename>sample_head.pdf</filename> erstellen,
+ und sich an der Form der dargestellten Tabellen, wie sie
+ ausgeliefert werden, erfreuen.</para>
+
+ <para>Kleiner Tipp: Nicht zu viel auf einmal wollen, lieber kleine,
+ kontinuierliche Schritte gehen.</para>
+ </sect3>
+
+ <sect3 id="f-tex-Bruttopreise">
+ <title>Bruttopreise für Endverbraucher</title>
+
+ <para>Der auszuweisende Bruttopreis wird innerhalb der
+ LaTeX-Umgebung berechnet. Es gibt zwar ein Feld, um bei Aufträgen
+ "alle Preise Brutto" auszuwählen, aber:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>hierfür müssen die Preise auch in Brutto in der Datenbank
+ stehen (ja - das lässt sich über die Preisgruppen und die
+ Zuordung einer Default-Preisgruppe handhaben)</para>
+ </listitem>
+
+ <listitem>
+ <para>man darf beim Anlegen des Vorgangs nicht vergessen, dieses
+ Häkchen zu setzen. (Das ist in der Praxis, wenn man sowohl
+ Endverbraucher als auch Gewerbekunden beliefert, der eigentliche
+ Knackpunkt)</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Es gibt mit f-tex eine weitere Alternative. Die Information ob
+ Brutto oder Nettorechnung wird mit den Zahlarten verknüpft.
+ Zahlarten bei denen Rechnungen, Angebote, etc, in Brutto ausgegeben
+ werden sollen, enden mit "_E" (für Endverbraucher). Falls identische
+ Zahlarten für Gewerbekunden und Endverbraucher vorhanden sind, legt
+ man diese einfach doppelt an (einmal mit der Namensendung "_E").
+ Gewinn:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Die Entscheidung, ob Nettopreise ausgewiesen werden, ist
+ nicht mehr fix mit einer Preisliste verbunden.</para>
+ </listitem>
+
+ <listitem>
+ <para>Die Default-Zahlart kann im Kundendatensatz hinterlegt
+ werden, und man muss nicht mehr daran denken, "alle Preise
+ Netto" auszuwählen.</para>
+ </listitem>
+
+ <listitem>
+ <para>Die Entscheidung, ob Netto- oder Bruttopreise ausgewiesen
+ werden, kann direkt beim Drucken revidiert werden, ohne dass
+ sich der Auftragswert ändert.</para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ <sect3 id="f-tex-lieferadressen">
+ <title>Lieferadressen</title>
+
+ <para>In Lieferscheinen kommen <varname>shipto*</varname>-Variablen
+ im Adressfeld zum Einsatz. Wenn die
+ <varname>shipto*</varname>-Variable leer ist, wird die entsprechende
+ Adressvariable eingesetzt. Wenn also die Lieferadresse in Straße,
+ Hausnummer und Ort abweicht, müssen auch nur diese Felder in der
+ Lieferadresse ausgefüllt werden. Für den Firmenname wird der Wert
+ der Hauptadresse angezeigt.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="Vorlagen-rev-odt">
+ <title>Der Druckvorlagensatz rev-odt</title>
+
+ <para>Hierbei handelt es sich um einen Dokumentensatz der mit
+ odt-Vorlagen erstellt wurde. Es gibt in dem Verzeichnis eine
+ Readme-Datei, die eventuell aktueller als die Dokumentation hier ist.
+ Die odt-Vorlagen in diesem Verzeichnis "rev-odt" wurden von revamp-it,
+ Zürich erstellt und werden laufend aktualisiert. Ein paar der
+ Formulierungen in den Druckvorlagen entsprechen dem Schweizer
+ Sprachgebrauch, z.B. "Offerte" oder "allfällig".</para>
+
+ <para>Hinweis zum Einsatz des Feldes "Land" bei den Stammdaten für
+ KundInnen und LieferantInnen, sowie bei Lieferadressen: Die in diesem
+ Vorlagensatz vorhandenen Vorlagen erwarten für "Land" das
+ entsprechende Kürzel, das in Adressen vor die Postleitzahl gesetzt
+ wird. Das Feld kann auch komplett leer bleiben. Wer dies anders
+ handhaben möchte, muss die Vorlagen entsprechend anpassen.</para>
+
+ <para>odt-Vorlagen können mit LibreOffice oder OpenOffice editiert und
+ den eigenen Bedürfnissen angepasst werden. Wichtig beim Editieren von
+ if-Blöcken ist, dass immer der gesamte Block überschrieben werden muss
+ und nicht nur Teile davon, da dies sonst oft zu einer odt-Datei führt,
+ die vom Parser nicht korrekt gelesen werden kann.</para>
+
+ <para>Zur Zeit gibt es in kivitendo noch keine Möglichkeit,
+ odt-Vorlagen bei Mahnungen, Briefen und Pflichtenheften einzusetzen.
+ Entsprechende Vorlagen sind deshalb nicht vorhanden.</para>
+
+ <para>Fehlermeldungen, Anregungen und Wünsche bitte senden an:
+ empfang@revamp-it.ch</para>
+ </sect2>
+
+ <sect2 id="allgemeine-hinweise-zu-latex">
+ <title>Allgemeine Hinweise zu LaTeX Vorlagen</title>
+
+ <para>In den allermeisten Installationen sollte das Drucken jetzt
+ schon funktionieren. Sollte ein Fehler auftreten, wirft TeX sehr lange
+ Fehlerbeschreibungen, der eigentliche Fehler ist immer die erste
+ Zeile, die mit einem Ausrufezeichen anfängt. Häufig auftretende Fehler
+ sind zum Beispiel:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>! LaTeX Error: File `eurosym.sty' not found. Die
+ entsprechende LaTeX-Bibliothek wurde nicht gefunden. Das tritt vor
+ allem bei Vorlagen aus der Community auf. Installieren Sie die
+ entsprechenden Pakete.</para>
+ </listitem>
+
+ <listitem>
+ <para>! Package inputenc Error: Unicode char \u8:... set up for
+ use with LaTeX. Dieser Fehler tritt auf, wenn sie versuchen mit
+ einer Standardinstallation exotische utf8 Zeichen zu drucken.
+ TeXLive unterstützt von Haus nur romanische Schriften und muss mit
+ diversen Tricks dazu gebracht werden andere Zeichen zu
+ akzeptieren. Adere TeX Systeme wie XeTeX schaffen hier
+ Abhilfe.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Wird gar kein Fehler angezeigt, sondern nur der Name des
+ Templates, heißt das normalerweise, dass das LaTeX Binary nicht
+ gefunden wurde. Prüfen Sie den Namen in der Konfiguration (Standard:
+ <literal>pdflatex</literal>), und stellen Sie sicher, dass pdflatex
+ (oder das von Ihnen verwendete System) vom Webserver ausgeführt werden
+ darf.</para>
+
+ <para>Wenn sich das Problem nicht auf Grund der Ausgabe im Webbrowser
+ verifizieren lässt:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>editiere [kivitendo-home]/config/kivitendo.conf und ändere
+ "keep_temp_files" auf 1</para>
+
+ <para><programlisting>keep_temp_files = 1;</programlisting></para>
+ </listitem>
+
+ <listitem>
+ <para>bei fastcgi oder mod_perl den Webserver neu Starten</para>
+ </listitem>
+
+ <listitem>
+ <para>Nochmal einen Druckversuch im Webfrontend auslösen</para>
+ </listitem>
+
+ <listitem>
+ <para>wechsel in das users Verzeichnis von kivitendo</para>
+
+ <para><programlisting>cd [kivitendo-home]/users</programlisting></para>
+ </listitem>
+
+ <listitem>
+ <para>LaTeX Suchpfad anpassen:</para>
+
+ <para><programlisting>export TEXINPUTS=".:[kivitendo-home]/templates/[aktuelles_template_verzeichniss]:"</programlisting></para>
+ </listitem>
+
+ <listitem>
+ <para>Finde heraus, welche Datei kivitendo beim letzten Durchlauf
+ erstellt hat</para>
+
+ <para><programlisting>ls -lahtr ./1*.tex</programlisting></para>
+
+ <para>Es sollte die letzte Datei ganz unten sein</para>
+ </listitem>
+
+ <listitem>
+ <para>für besseren Hinweis auf Fehler texdatei nochmals
+ übersetzen</para>
+
+ <para><programlisting>pdflatex ./1*.tex</programlisting></para>
+
+ <para>in der *.tex datei nach dem Fehler suchen.</para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+ </sect1>
+
+ <sect1 id="OpenDocument-Vorlagen">
+ <title>OpenDocument-Vorlagen</title>
+
+ <para>kivitendo unterstützt die Verwendung von Vorlagen im
+ OpenDocument-Format, wie es LibreOffice oder OpenOffice (ab Version 2) erzeugen.
+ kivitendo kann dabei sowohl neue OpenDocument-Dokumente als auch aus
+ diesen direkt PDF-Dateien erzeugen. Um die Unterstützung von
+ OpenDocument-Vorlagen zu aktivieren muss in der Datei
+ <filename>config/kivitendo.conf</filename> die Variable
+ <literal>opendocument</literal> im Abschnitt
+ <literal>print_templates</literal> auf ‘<literal>1</literal>’ stehen.
+ Dieses ist die Standardeinstellung.</para>
+
+ <para>Während die Erzeugung von reinen OpenDocument-Dateien keinerlei
+ weitere Software benötigt, wird zur Umwandlung dieser Dateien in PDF
+ LibreOffice oder OpenOffice benötigt. Soll dieses Feature genutzt werden, so muss
+ neben LibreOffice oder OpenOffice auch der “X virtual frame buffer”
+ (xvfb) installiert werden. Bei Debian ist er im Paket “xvfb” enthalten.
+ Andere Distributionen enthalten ihn in anderen Paketen.</para>
+
+ <para>Nach der Installation müssen in der Datei
+ <filename>config/kivitendo.conf</filename> im Abschnitt
+ <literal>applications</literal> zwei weitere Variablen
+ angepasst werden:</para>
+ <para><literal>openofficeorg_writer</literal> muss den
+ vollständigen Pfad zu LibreOffice oder OpenOffice enthalten.
+ Dabei dürfen keine Anführungszeichen eingesetzt werden.</para>
+ <para>Beispiel für Debian oder Ubuntu:</para>
+ <programlisting>openofficeorg_writer = /usr/bin/libreoffice</programlisting>
+ <para><literal>xvfb</literal> muss den Pfad zum “X virtual frame buffer”
+ enthalten.</para>
+
+ <para>Zusätzlich gibt es zwei verschiedene Arten, wie kivitendo mit
+ LibreOffice bzw. OpenOffice kommuniziert. Die erste Variante, die benutzt
+ wird, wenn die Variable <literal>$openofficeorg_daemon</literal> gesetzt
+ ist, startet ein LibreOffice oder OpenOffice, das auch nach der Umwandlung
+ des Dokumentes gestartet bleibt. Bei weiteren Umwandlungen wird dann diese
+ laufende Instanz benutzt. Der Vorteil ist, dass die Zeit zur Umwandlung
+ deutlich reduziert wird, weil nicht für jedes Dokument ein LibreOffice bzw.
+ OpenOffice gestartet werden muss. Der Nachteil ist, dass diese Methode
+ Python und die Python-UNO-Bindings benötigt, die Bestandteil von LibreOffice
+ bzw. OpenOffice sind.</para>
+
+ <note>
+ <para>Für die Verbindung zu LibreOffice bzw. OpenOffice wird
+ normalerweise der Python-Interpreter
+ <filename>/usr/bin/python</filename> benutzt.
+ Sollte dies nicht der richtige sein, so kann man mit zwei
+ Konfigurationsvariablen entscheiden, welcher Python-Interpreter
+ genutzt wird. Mit der Option <literal>python_uno</literal> aus dem
+ Abschnitt <literal>applications</literal> wird der Interpreter selber
+ festgelegt; sie steht standardmäßig auf dem eben erwähnten Wert
+ <literal>/usr/bin/python</literal>.</para>
+
+ <para>Zusätzlich ist es möglich, Pfade anzugeben, in denen Python
+ neben seinen normalen Suchpfaden ebenfalls nach Modulen gesucht wird,
+ z.B. falls sich diese in einem gesonderten LibreOffice- bzw.
+ OpenOffice-Verzeichnis befinden. Diese zweite Variable heißt
+ <literal>python_uno_path</literal> und befindet sich im Abschnitt
+ <literal>environment</literal>. Sie ist standardmäßig leer. Werden
+ hier mehrere Pfade angegeben, so müssen diese durch Doppelpunkte
+ voneinander getrennt werden. Der Inhalt wird an den Python-Interpreter
+ über die Umgebungsvariable <literal>PYTHONPATH</literal>
+ übergeben.</para>
+ </note>
+
+ <para>Ist <literal>$openofficeorg_daemon</literal> nicht gesetzt, so
+ wird für jedes Dokument LibreOffice bzw. OpenOffice neu gestartet
+ und die Konvertierung mit Hilfe eines Makros durchgeführt. Dieses
+ Makro muss in der Dokumentenvorlage enthalten sein und
+ “Standard.Conversion.ConvertSelfToPDF()” heißen. Die Beispielvorlage
+ ‘<literal>templates/print/rev-odt/invoice.odt</literal>’
+ enthält ein solches Makro, das in jeder anderen Dokumentenvorlage
+ ebenfalls enthalten sein muss.</para>
+
+ <para>Als letztes muss herausgefunden werden, welchen Namen
+ OpenOffice bzw. LibreOffice dem Verzeichnis mit den Benutzereinstellungen
+ gibt. Unter Debian ist dies momentan
+ <literal>~/.config/libreoffice</literal>. kivitendo verwendet das
+ Verzeichnis <literal>users/.openoffice.org2</literal>.
+ Eventuell muss dieses Verzeichnis umbenannt werden.</para>
+
+ <para>Dieses Verzeichnis, wie auch das komplette
+ <literal>users</literal>-Verzeichnis, muss vom Webserver beschreibbar
+ sein. Dieses wurde bereits erledigt (siehe <xref
+ linkend="Manuelle-Installation-des-Programmpaketes"/>), kann aber
+ erneut überprüft werden, wenn die Konvertierung nach PDF