PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : isodate - th hochstellen



bipolar
08-07-2008, 15:23
hi leute!

gleich noch eine frage: ich nutze das paket isodate um ein englisches datumsformat zu generieren: zb 8th july 2008.

allerdings würde ich das th gerne hochstellen - dazu fehlen mir aber noch die latex kenntnisse - wie könnte das funktionieren (\renewcommand\today...}.

lg,
bipo

Stefan_K
08-07-2008, 15:38
Hallo bipo,

hier ist eine Modifikation von \day aus english.idf:

\documentclass[a4paper,10pt]{article}
\usepackage[british]{isodate}
\newcommand*\up[1]{\textsuperscript{#1}}
\makeatletter
\renewcommand*\day@english{\ifcase\day\or
1st\or 2nd\or 3rd\or 4th\or 5th\or
6th\or 7th\or 8\up{th}\or 9th\or 10th\or
11th\or 12th\or 13th\or 14th\or 15th\or
16th\or 17th\or 18th\or 19th\or 20th\or
21st\or 22nd\or 23rd\or 24th\or 25th\or
26th\or 27th\or 28th\or 29th\or 30th\or
31st\fi}
\makeatother
\begin{document}
\today
\end{document}
Das \up habe ich jetzt einmal nur bei 8th eingefügt, damit es hier zunächst übersichtlich bleibt, Du kannst es ja noch für die anderen Tage vornehmen. Da es nicht immer th ist, sondern auch mal st,nd oder rd, ist es nicht so schön zu vereinfachen.

Viele Grüße,

Stefan

rais
09-07-2008, 01:19
Moin Stefan,

Da es nicht immer th ist, sondern auch mal st,nd oder rd, ist es nicht so schön zu vereinfachen.

ob schön oder nicht, mußt Du selbst entscheiden, aber einfacher geht's auch;-)


\documentclass[a4paper,10pt]{article}
\usepackage[british]{isodate}
\makeatletter
\renewcommand*\day@english{%
\day\textsuperscript{\ifcase\day\or
st\or nd\or rd\or th\or th\or%1--5
th\or th\or th\or th\or th\or%6--10
th\or th\or th\or th\or th\or%11--15
th\or th\or th\or th\or th\or%16--20
st\or nd\or rd\or th\or th\or%21--25
th\or th\or th\or th\or th\or%26--30
st\fi}%31
}
\makeatother
\begin{document}
\today
\end{document}

MfG

bipolar
09-07-2008, 09:42
danke ihr beiden!

ich würde noch nie auf sowas kommen... werd mir die struktur dahinter anschauen.

also ist das eben so dass \makeatletter signalisiert ein makro zu verändern.
\renewcommand*\day@english - neuer befehl für day in der englischen version

\day\textsuperscript{\ifcase\day\or
st\or nd\or rd\or th\or th\or%1--5
th\or th\or th\or th\or th\or%6--10
th\or th\or th\or th\or th\or%11--15
th\or th\or th\or th\or th\or%16--20
st\or nd\or rd\or th\or th\or%21--25
th\or th\or th\or th\or th\or%26--30
st\fi}%31

"schreib den tag" und dann eine if-bedingung für alle möglichen kombinationen mit entsprechenden hochgestellten zeichen

\makeother - umgebung wird geschlossen...

so ungefähr oder?

lg,
robert

Sabrina.Dankers
09-07-2008, 12:03
danke ihr beiden!

ich würde noch nie auf sowas kommen... werd mir die struktur dahinter anschauen.

also ist das eben so dass \makeatletter signalisiert ein makro zu verändern.
\renewcommand*\day@english - neuer befehl für day in der englischen version

\day\textsuperscript{\ifcase\day\or
st\or nd\or rd\or th\or th\or%1--5
th\or th\or th\or th\or th\or%6--10
th\or th\or th\or th\or th\or%11--15
th\or th\or th\or th\or th\or%16--20
st\or nd\or rd\or th\or th\or%21--25
th\or th\or th\or th\or th\or%26--30
st\fi}%31

"schreib den tag" und dann eine if-bedingung für alle möglichen kombinationen mit entsprechenden hochgestellten zeichen

\makeother - umgebung wird geschlossen...

so ungefähr oder?

lg,
robert

Ne das \makeatletter \makeatother ist nur notwendig wegen dem @-Zeichen. Schau mal hier (http://de.wikibooks.org/wiki/LaTeX-Wörterbuch:_makeatother), dann weißt du warum, dass notwendig ist.