Wie versprochen der (fast) gleiche Code wie oben, übersetzt in traditionelles LaTeX. Er nützt etoolbox, das ein paar nützliche Programmierbefehle bereitstellt, und pgfkeys für das Handhaben von Keyval-Optionen.
Code:
\documentclass{article}
\usepackage{etoolbox}
\usepackage{pgfkeys}
\usepackage{url}
\makeatletter
% Nachricht für fehlende Pflichteinträge:
\newrobustcmd*\shalec@absender@error[1]{%
\GenericError
{\space\space\space\@spaces\@spaces\@spaces}
{Fehler beim Befehl \string\absender}
{`#1' fehlt, muss aber angegeben werden!}
{%
Bei \string\absender\space muessen `name', `strasse' und `ort' angegeben
werden.%
}%
}
% Variablen für die Einträge:
\newcommand*\shalec@absender@name{}
\newcommand*\shalec@absender@strasse{}
\newcommand*\shalec@absender@ort{}
\newcommand*\shalec@absender@tel{}
\newcommand*\shalec@absender@mobil{}
\newcommand*\shalec@absender@email{}
\newcommand*\shalec@absender@web{}
% die keyval-Optionen:
\pgfkeys{
shalec/absender/.cd ,
name/.code = \def\shalec@absender@name{#1} ,
strasse/.code = \def\shalec@absender@strasse{#1} ,
ort/.code = \def\shalec@absender@ort{#1} ,
tel/.code = \def\shalec@absender@tel{#1} ,
mobil/.code = \def\shalec@absender@mobil{#1} ,
email/.code = \def\shalec@absender@email{#1} ,
web/.code = \def\shalec@absender@web{#1}
}
% der Befehl:
\newrobustcmd*\shalec@absender[1]{%
\begingroup
\pgfqkeys{/shalec/absender}{#1}%
\ifdefempty\shalec@absender@name
{\shalec@absender@error{name}}
{\shalec@absender@name}%
\ifdefempty\shalec@absender@strasse
{\shalec@absender@error{strasse}}
{\\ \shalec@absender@strasse}%
\ifdefempty\shalec@absender@ort
{\shalec@absender@error{ort}}
{\\ \shalec@absender@ort}%
\ifdefempty\shalec@absender@tel
{}
{\\ Tel.: \shalec@absender@tel}%
\ifdefempty\shalec@absender@mobil
{}
{\\ Mobil: \shalec@absender@mobil}%
\ifdefempty\shalec@absender@email
{}
{\\ E-Mail: \texttt{\shalec@absender@email}}%
\ifdefempty\shalec@absender@web
{}
{\\ Web: \expandafter\url\expandafter{\shalec@absender@web}}%
\endgroup
}
% der Benutzerbefehl:
\newrobustcmd*\absender[1]{\shalec@absender{#1}}
\makeatother
\begin{document}
\absender{
name = Max Mustermann ,
strasse = Musterweg~1 ,
ort = 12345~Musterstadt
}\par\bigskip
% % Fehler:
% \absender{
% name = Max Mustermann ,
% strasse = Musterweg~1 ,
% }\par\bigskip
\absender{
name = Max Mustermann ,
strasse = Musterweg~1 ,
ort = 12345~Musterstadt ,
tel = 01234\,567\,890
}\par\bigskip
\absender{
name = Max Mustermann ,
strasse = Musterweg~1 ,
ort = 12345~Musterstadt ,
email = max@mustermann.de
}\par\bigskip
\absender{
name = Max Mustermann ,
strasse = Musterweg~1 ,
ort = 12345~Musterstadt ,
email = max@mustermann.de ,
tel = 01234\,567\,890
}\par\bigskip
\absender{
name = Max Mustermann ,
strasse = Musterweg~1 ,
ort = 12345~Musterstadt ,
email = max@mustermann.de ,
tel = 01234\,567\,890 ,
web = www.mustermann.de ,
mobil = 0123\,456\,78\,90
}
\end{document}
Grüße
Lesezeichen