"Mein Name ist Mr. Wolf, ich löse Probleme." (PulpFiction)

Montag, 13. August 2012

LX-Office: Monat im Datum ausgeschrieben

Standardmäßig wird das Datum in den Latex Templates von LX-Office in Zahlen dargestellt z.B. 13.08.2012. Möchte man das etwas schöner haben, also den Monat ausschreiben, kann das Paket xstring benutzt werden, und diese Funktion:

\usepackage{xstring}

\def\fulldate#1{%
\StrBefore[1]{#1}{.}[\Tag]%
\StrBehind[1]{#1}{.}[\Monat]%
\StrBefore[1]{\Monat}{.}[\Monat]%
\StrBehind[2]{#1}{.}[\Jahr]%
\IfStrEq{\Monat}{01}{\renewcommand{\Monat}{ Januar }}{%
\IfStrEq{\Monat}{02}{\renewcommand{\Monat}{ Februar }}{%
\IfStrEq{\Monat}{03}{\renewcommand{\Monat}{ März }}{%
\IfStrEq{\Monat}{04}{\renewcommand{\Monat}{ April }}{%
\IfStrEq{\Monat}{05}{\renewcommand{\Monat}{ Mai }}{%
\IfStrEq{\Monat}{06}{\renewcommand{\Monat}{ Juni }}{%
\IfStrEq{\Monat}{07}{\renewcommand{\Monat}{ Juli }}{%
\IfStrEq{\Monat}{08}{\renewcommand{\Monat}{ August }}{%
\IfStrEq{\Monat}{09}{\renewcommand{\Monat}{ September }}{%
\IfStrEq{\Monat}{10}{\renewcommand{\Monat}{ Oktober }}{%
\IfStrEq{\Monat}{11}{\renewcommand{\Monat}{ November }}{%
\IfStrEq{\Monat}{12}{\renewcommand{\Monat}{ Dezember }}{%
}}}}}}}}}}}}%
{\Tag.\Monat\Jahr}}

Ausgabe erfolgt dann mit \fulldate{<%invdate%>}

Es wird eine Funktion definiert mit einem Argument (#1). Mit StrBefore  (StrBehind) kann man der Variable \Tag  (\Jahr) den Teilstring zuweisen der vor (hinter) dem ersten (zweiten) Punkt steht.

Der Monat wird extrahiert und dann übersetzt. Die vielen geschlossenen Klammern am Ende sind die Else Blöcke. Anders habe ich es nicht geschafft das Datum  in einer Zeile auszugeben, genauso die Prozent Zeichen am Ende der Zeilen.

Infos zu xstring gibt es hier.

Keine Kommentare:

Kommentar veröffentlichen