.
Verfasst: Sa 1. Dez 2012, 21:51
.
\def\macro#1{was cooles mit #1} % Verwendung: \macro{arg} \def\macro#1#2{was colloes mit #1 und #2} % Verwendung \macro{arg1}{arg2}
\def\macro ABC#1D#2EF#3{was cooles mit #1, #2 und #3} % Verwendung: \macro ABCarg1Darg2EF{arg3}
\documentclass{article} \usepackage[ngerman, num]{isodate} \daymonthsepgerman{\thinspace}{} \monthyearsepgerman{\thinspace}{} \usepackage{etoolbox} \makeatletter \newcommand*\leadingzero[1]{\ifnum#1<10\relax0#1\else#1\fi} % führende Null \def\date@format#1.#2.#3\q@stop{\leadingzero{#1}.\thinspace\leadingzero{#2}.\thinspace#3} \renewcommand*\date[1]{% \ifblank{#1} {\date@format\the\day.\the\month.\the\year\q@stop} {\date@format#1\q@stop}} \makeatother \begin{document} \date{}% heute oder \date{1.3.1979}% irgendwann \end{document}
\newcommand*\leadingzero[1]{\ifnum#1<10\relax0#1\else#1\fi}
texdoc programming
\date dient dazu, das gewünschte Datum zu speichern, nicht um es zu drucken. Da du isodate benutzt, solltest du die Dokumentation lesen. Auf Seite 4 steht, wie man ein beliebiges Datum druckt.Dies sollte man doch mit dem Kommando "date" realisieren können, oder?
\documentclass{article} \usepackage[T1]{fontenc} \usepackage[ngerman, num]{isodate} \begin{document} \daymonthsepgerman{\thinspace}{} \monthyearsepgerman{\thinspace}{} \printdate{1.12.2012} \end{document}
Daran merkt man, dass es spät war gestern Abend: \two@digits hätte mir auch einfallen müssen...ChristophW hat geschrieben:Ich hab jetzt aber eine andere Lösung gefunden:\two@digits
das ginge mit \settowidth, etwaChristophW hat geschrieben: leadingzero prüft, ob 05 < 10 ist. Das stimmt ja auch. Aber hier wäre wohl eine Prüfung auf die Länge der Zeichenkette sinnvoller, oder? Wie macht man das?
\documentclass{article} \newlength\lena \newlength\lenb \newcommand*\leadingzero[1]{% \settowidth\lena{#1}% \settowidth\lenb{12}% \ifdim \lena<\lenb 0\fi#1% }% führende Null \begin{document} \leadingzero{5}, \leadingzero{05} \end{document}