Projekt

Allgemein

Profil

Herunterladen (10,1 KB) Statistiken
| Zweig: | Markierung: | Revision:
bc610405 Marei Peischl
# Bemerkungen zum Vorlagensatz
83486edb Marei Peischl
### © 2020–2021 by Marei Peischl (peiTeX TeXnical Solutions)
4987cdc7 Jan Büren
0ea3d7bd Marei Peischl
## Quickstart (wo kann was angepasst werden?):

bc610405 Marei Peischl
* insettings.tex : Pfad zu Angaben über Mandanten (default: firma)
0ea3d7bd Marei Peischl
Logo/Briefpapier
Layout der Kopf/Fußzeile
83486edb Marei Peischl
innerhalb dieser Datei werden auch die folgenden Dateien geladen:
firma/ident.tex : Angaben über Mandanten
firma/<währungskürzel>_account.tex
bc610405 Marei Peischl
* Es muß mindestens eine Sprache angelegt werden!
- deutsch.tex : Textschnipsel für Deutsch
83486edb Marei Peischl
Dafür eine Sprache mit Vorlagenkürzel DE anlegen
bc610405 Marei Peischl
- english.tex : Textschnipsel für Englisch
83486edb Marei Peischl
Dafür eine Sprache mit Vorlagenkürzel EN anlegen
0ea3d7bd Marei Peischl


4987cdc7 Jan Büren
## Aufbau:
Die Grundstruktur besteht je Dokumententyp aus einer Basisdatei und verschiedenen Setup-Dateien.

Die Basis wurde so überarbeitet, dass Dokumente nun generell auf der Dokumentenklasse *scrartcl.cls* basieren und das Paket *kiviletter.sty* benutzen.

000908d7 Jan Büren
Mandantenspezifische Konfiguration findet sich in der Datei *insettings.tex* und dem Ordner eines spezifischen Mandanten (default=*firma/*).
4987cdc7 Jan Büren

### Struktur der Basisdatei (je Dokumententyp eine)
0ea3d7bd Marei Peischl
bc610405 Marei Peischl
1. Dokumentenklasse
2. *kiviletter.sty*
3. Einstellungen, die über Variablen gesetzt werden: Mandant, Währung, Sprache
4. `\input{insettings.tex}` Anteil der spezifischen Anpassungen, die von den Variablen unter 2. abhängig sind. Geladen werden darin die Dateien:
- Sprache: lädt die entsprechende Sprachdatei, falls DE -> *deutsch.tex*, falls EN *englisch.tex* und setzt die babel Optionen. Die Datei enthält Übersetzungen von Einzelbegriffen und Textbausteinen.
- Lädt die Konfigurationsdatei, ohne spezielle Mandanten ist der Suchpfad zur Konfiguration der Unterordner *firma/*
- Lädt die Datei *ident.tex*, sowie die Abbildung Briefkopf.
83486edb Marei Peischl
0ea3d7bd Marei Peischl
#### Mandanten / Firma:

bc610405 Marei Peischl
Um gleiche Vorlagen für verschiedene Firmen verwenden zu können, wird je
nach dem Wert der Kivitendo-Variablen `<%kivicompany%>` ein
Firmenverzeichnis ausgewählt (siehe *insettings.tex'), in dem Briefkopf,
Identitäten und Währungs-/Kontoeinstellungen hinterlegt sind.
`<%kivicompany%>` enthält den Namen des verwendeten Mandantendaten.
Ist kein Firmenname eingetragen, so wird das
generische Unterverzeichnis *firma* verwendet.
0ea3d7bd Marei Peischl
#### Identitäten:
4987cdc7 Jan Büren
bc610405 Marei Peischl
In jedem Firmen-Unterverzeichnis soll eine Datei *ident.tex*
vorhanden sein, die mit `\newcommand` Werte für \telefon, `\fax`,
`\firma`, `\strasse`, `\ort`, `\ustid`, `\email` und `\homepage` definiert.
4987cdc7 Jan Büren
0ea3d7bd Marei Peischl
#### Währungen / Konten:
bc610405 Marei Peischl
Für jede Währung (siehe *insettings.tex*) soll eine Datei vorhanden
sein, die das Währungssymbol (`\currency`) und folgende Angaben für
ein Konto in dieser Währung enthält `\kontonummer`, `\bank`,
`\bankleitzahl`, `\bic` und `\iban`.
So kann in den Dokumenten je nach Währung ein anderes Konto
angegeben werden.
Nach demselben Schema können auch weitere, alternative Bankverbindungen
angelegt werden, die dann in *insettings.tex* als Variable in der Fußzeile eingefügt werden.
000908d7 Jan Büren
Als Fallback (falls kivitendo keine Währung an das Druckvorlagen-System übergibt)
118367b9 Marei Peischl
ist Euro eingestellt. Dies lässt sich in der *insettings.tex* über das optionale Argument
25f80188 Marei Peischl
von `\setupCurrencyConfig` anpassen, z.B.

```
\setupCurrencyConfig[chf]{\identpath}{\lxcurrency}
```
für Schweizer Franken als Standardwährung.
000908d7 Jan Büren
0ea3d7bd Marei Peischl
#### Briefbogen/Logos:
bc610405 Marei Peischl
Eine Hintergrundgrafik oder ein Logo kann in Abhängigkeit vom
Medium (z.B. nur beim Verschicken mit E-Mail) eingebunden
werden.

Desweiteren sind (auskommentierte) Beispiele enthalten für eine
Grafik als Briefkopf, nur ein Logo, oder ein komplettes DinA4-PDF
als Briefpapier.
83486edb Marei Peischl
Absolute Positionierung innerhalb des Brief-Layouts ist über die entsprechende Dokumentation des scrlayer-Paketes möglich.
Da die Voreinstellungen bereits einige Sonderfälle automatisch berücksichtigen ist mit den Anpassungen Vorsicht geboten.
Sämtliche Einstellungen sollten jedoch außerhalb der *.sty-Dateien vorgenommen werden.
Anpassungen der insettings.tex betreffen hierbei alle Mandanten. Mandantenspezifische Einstellung sind über die zugehörige Konfigurationsdatei möglich.
In diesem Fall kann zum Ende der insettings eine weitere Konfigurationsdatei über die Verwendung von \identpath geladen werden. Ein Beispiel ist in der insettings.tex enthalten.
000908d7 Jan Büren
83486edb Marei Peischl
#### Fußzeile:
bc610405 Marei Peischl
Die Tabelle im Fuß verwendet die Angaben aus *firma/ident.tex* und
*firma/*_account.tex*. Ihre Struktur wird in der *insettings.tex* definiert.
a154db8e Marei Peischl
0ea3d7bd Marei Peischl
#### Seitenstil/Basislayout:
bc610405 Marei Peischl
Das Seitenlayout wird über scrlayer-scrpage bestimmt. Es existieren in der Datei *insettings.tex* einige Hinweise zu den Anpassungen. Die Basiskonfiguration ist ebenfalls dort eingetragen.
a154db8e Marei Peischl
bc610405 Marei Peischl
Die Kopfzeile unterscheidet sich von Dokumententyp zu Dokumententyp leicht, da diese über Datenbankvariablen befüllt wird. Hierfür wird das Makro `\ourhead` definiert. Diese Definition kann ebenfalls über die *insettings.tex* geändert werden.
000908d7 Jan Büren
0ea3d7bd Marei Peischl
### Tabellen:
4987cdc7 Jan Büren
a154db8e Marei Peischl
Die Tabellenstruktur wurde komplett überarbeitet. Der Vorlagensatz verfügt über Tabellen, die automatisch die Breite der Textbreite anpassen und zusätzlich Seitenumbrüche erlauben.

0ea3d7bd Marei Peischl
#### SimpleTabular
a154db8e Marei Peischl
Der einfache Tabellentyp ist die Umgebung `SimpleTabular`. die ist eine Tabelle basieren auf dem xltabular-Paket, die die sich der Textbreite anpasst. Sie wird in den Dateien *zahlungserinnerung_invoice.tex*, *zahlungserinnerung.tex* und *statement.tex* verwendet.

Sie verfügt über ein optionales Argument um die Spaltenkonfiguration und die Kopfzeile anzupassen. Die Voreinstellung (also ohne optionales Argument) entspricht der, der folgenden Angabe:

```
\begin{SimpleTabular}[colspec=rrX,headline={\bfseries\position & \bfseries\menge & \bfseries\bezeichnung}]

```

0ea3d7bd Marei Peischl
##### Tabellenkopfzeile
a154db8e Marei Peischl
Die Kopfzeile wird über den Optionsschlüssel headline angepasst. Entsprechend dem LaTeX-Standard werden Tabellen Spalten mit `&` getrennt. `\bfseries` setzt den Tabellenkopf zusätzlich in Fettschrift.

0ea3d7bd Marei Peischl
##### Spaltenkonfiguration (fortgeschrittene Nutzer)
a154db8e Marei Peischl
Die voreingestellte Spaltenkonfiguration entspricht `rrX`, also zwei rechtsbündigen Spalten und einer Blocksatzspalte, die die restliche Breite einnimmt. Soll von dieser Spaltenkonfiguration abgewichen werden, steht der Optionsschlüssel `colspec` zur Verfügung. Das folgende Beispiel tauscht die beiden rechtsbündigen Spalten in linksbündige:

```
\begin{SimpleTabular}[colspec=llX]

```
Als Spaltentypen sind Konfigurationen aus den folgenden Einträgen am sinnvollsten:
* `l`, `r`, `c`: Linksbündig, rechtsbündig, zentriert. Spaltenbreite passt sich dem Inhalt an.
* `X`: Blocksatz, Spaltenbreite füllt den übrigen Platz auf. Bei mehreren `X`-Spalten wird gleichmäßig aufgeteilt

Zusätzlich ist es möglich die Währung automatisch in der Spalte zu ergänzen.
Der Mechanismus ist so kontruiert, dass diese nicht in der Kopfzeile sondern lediglich in den Inhaltszeilen eingefügt wird.
In diesem Fall wird die Spaltenspezifikation durch `<{\tabcurrency}` ergänzt.
Eine rechtsbündige Spalte mit Währungsangabe wird somit durch `r<{\tabcurrency}` erzeugt.


#### PricingTabular

`PricingTabular` wurde entwickelt um Tabellen für Rechnungen vereinfacht erstellen zu können.
Die Voreinstellung verfügt über die Spalten `pos`, `id`, `desc`, `amount`, `price`, `pricetotal'.
Alle Spalten, außer der Spalte `desc` haben eine Feste Breite.

Die Einstellungen können Entweder als Optionales Argument zu `\begin{PricingTabular}[<Optionen>]` vorgenommen werden oder über das Makro `\SetupPricingTabular{<Optionen>}` für alle folgenden Umgebungen gesetzt werden.


0ea3d7bd Marei Peischl
###### Spaltenbreiten
a154db8e Marei Peischl
Die Spaltenbreiten werden angepasst indem der Spaltenname verwendet wird.
Um die Positionsspalte zu ändern ist somit die Option `pos=<Breite>` notwendig.
Hier können alle Längenangaben verwendet werden, die LaTeX versteht. (cm, mm, em, ex, …)

Die Spaltenbreite der Spalte `desc` für die Artikelbeschreibung nimmt dabei jeweils den übrigen Platz ein.

0ea3d7bd Marei Peischl
##### Kopfzeileneinträge
a154db8e Marei Peischl
Die Kopfzeileneinträge werden über die Option `<Spaltenname>/header=<Neue Beschriftung>` angepasst.
000908d7 Jan Büren
Vorbelegt ist die Konfiguration:
a154db8e Marei Peischl
```
\SetupPricingTabular{
83486edb Marei Peischl
pos/header=\position,
id/header=\artikelnummer,
desc/header=\bezeichnung,
amount/header=\menge,
price/header=\einzelpreis,
pricetotal/header=\gesamtpreis
a154db8e Marei Peischl
}
```

83486edb Marei Peischl
##### Farbige Tabellen
Versionen ab Juli 2021 enthalten die Möglichkeit farbige Tabellen zu nutzen.
Die Optionen für die `PricingTabular` Umgebung können wie folgt konfiguriert werden:
```
color-rows=<true/false>,% false
rowcolor-odd=<Farbname>,% black!10
rowcolor-even=<Farbname>,% leer, also keine Farbbox wird erzeugt
rowcolor-header=<Farbname>,% black!35
rowcolor-total=<Farbname>,% black!35
```
Die Angabe hinter dem Kommentarzeichen entspricht der Voreinstellung.

526ed9a1 Marei Peischl
#### Trennlinien zwischen den Einträgen
Die Umgebung `PricingTabular` hat die möglichkeit horizontale Linien zwischen den Einträgen der `\FakeTable` einzuziehen.
Die einfachste Möglichkeit hierfür ist die Option hrule, sie setzt automatisch eine Linie der Dicke `\lightrulewidth`.
Da diese Linie formal nicht innerhalb der Tabelle platziert wird, können Linienmakros für Tabellen heir nicht verwendet werden.
Falls dennoch eine manuelle Anpassung der Maße notwendig ist, kann direkt der Code zur Erzeugung der Linie übergeben werden.
Die Option `hrule` entspricht der Angabe
```
rowsep={
\vskip\aboverulesep
\hrule\@height\lightrulewidth
\vskip\belowrulesep
}
```
Es wird somit auch der Abstand davor und danach mit eingefügt. In Kombination mit Farbigen Tabellen ist hier vorsicht geboten, da der Abstand nicht mit zur farbigen Box gerechnet wird.

83486edb Marei Peischl
0ea3d7bd Marei Peischl
##### Reihenfolge/Anzahl der Spalten ändern
a154db8e Marei Peischl
Die Reihenfolge wurde über die Option `columns` festgelegt.
Soll daher eine Tabelle mit nur drei Spalten und lediglich bestehend aus Produktnummer, Beschreibung und Menge genutzt werden, ist dies mit der Option `columns={id,desc,amount}` möglich.

Einzelne Spalten können auch über `<Spaltenname>=false` abgeschaltet werden. Dies ist z.B. dann hilfreich, wenn die Angabe einer Produktnummer aus platzgründen nicht sinnvoll ist (`id=false`).