diff options
author | Karl Berry <karl@freefriends.org> | 2010-06-18 00:16:31 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2010-06-18 00:16:31 +0000 |
commit | d9bd4cc7bc00bbe2637957dc1a44d9c949a6dbdc (patch) | |
tree | 0c8c9198b304f16b1b46962eef236c6bd290815a /Master/texmf-dist/tex/latex/koma-script/scrdate.sty | |
parent | 643866a0f27297875ee40ee641aa090114b87e51 (diff) |
koma-script update (17jun10)
git-svn-id: svn://tug.org/texlive/trunk@19027 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/koma-script/scrdate.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/koma-script/scrdate.sty | 181 |
1 files changed, 113 insertions, 68 deletions
diff --git a/Master/texmf-dist/tex/latex/koma-script/scrdate.sty b/Master/texmf-dist/tex/latex/koma-script/scrdate.sty index d7d4b14bb16..7fc36527f27 100644 --- a/Master/texmf-dist/tex/latex/koma-script/scrdate.sty +++ b/Master/texmf-dist/tex/latex/koma-script/scrdate.sty @@ -4,7 +4,11 @@ %% %% The original source files were: %% -%% scrtime.dtx (with options: `scrdate') +%% scrkvers.dtx (with options: `package,scrdate') +%% scrtime.dtx (with options: `package,scrdate,identify') +%% scrkbase.dtx (with options: `load') +%% scrtime.dtx (with options: `package,scrdate,option') +%% scrtime.dtx (with options: `package,scrdate,body') %% scrlogo.dtx (with options: `logo') %% %% Copyright (c) 1994-2010 @@ -40,73 +44,116 @@ %% find a complete unmodified copy of LaTeX2e at %% <http://www.ctan.org/pub/tex-archive/macros/latex/base/>. %% +%%% From File: scrkvers.dtx +\begingroup + \makeatletter + \ifx\KOMAScriptVersion\undefined + \newcommand*{\@CheckKOMAScriptVersion}[1]{% + \gdef\KOMAScriptVersion{#1}% + }% + \else + \newcommand*{\@CheckKOMAScriptVersion}[1]{% + \def\@tempa{#1}% + \ifx\KOMAScriptVersion\@tempa\else + \@latex@warning@no@line{% + \noexpand\KOMAScriptVersion\space is + `\KOMAScriptVersion',\MessageBreak + but `#1' was expected!\MessageBreak + You should not use classes, packages or files + from\MessageBreak + different KOMA-Script versions% + }% + \fi + } + \fi + \@CheckKOMAScriptVersion{2010/06/17 v3.06 KOMA-Script}% +\endgroup %%% From File: scrtime.dtx \NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesPackage{scrdate} - [2009/01/01 v1.1p LaTeX2e KOMA-Script - package] -\newcommand\todaysname{% - \begingroup% - \@tempcnta=\year - \@tempcntb=1 % 1. Januar 1980 war ein Dienstag - \ifnum\@tempcnta<1980 unknown\else% - \advance\@tempcnta by-1980% - \@whilenum\@tempcnta>3\do% - {\advance\@tempcntb by5\advance\@tempcnta by-4}% - \ifnum\@tempcnta=0% - \ifnum\month>2\advance \@tempcntb by1\fi% - \else% - \advance\@tempcntb by\@tempcnta% - \advance\@tempcntb by1 - \fi% - \ifcase\month\or\or\advance\@tempcntb3% Jan = 28 + 3 - \or\advance\@tempcntb3% +Feb = 56 + 3 - \or\advance\@tempcntb6% +Mar = 84 + 6 - \or\advance\@tempcntb1% +Apr = 119 + 1 - \or\advance\@tempcntb4% +May = 147 + 4 - \or\advance\@tempcntb6% +Jun = 175 + 6 - \or\advance\@tempcntb2% +Jul = 210 + 2 - \or\advance\@tempcntb5% +Aug = 238 + 5 - \or% +Sep = 273 + 0 - \or\advance\@tempcntb3% +Oct = 301 + 3 - \or\advance\@tempcntb5% +Nov = 329 + 5 - \fi% - \advance\@tempcntb by\day% - \advance\@tempcntb by-1% die Zaehlung beginnt bei 0 - \@whilenum\@tempcntb>6\do% - {\advance\@tempcntb by-7}% - \@dayname{\@tempcntb}% - \fi\endgroup} -\newcommand\nameday[1]{\renewcommand\todaysname{#1}} -\newcommand*\scrdate@languagenamewarning{ +\ProvidesPackage{scrdate}[% + \KOMAScriptVersion\space package (% + day of the week)] +%%% From File: scrkbase.dtx +\RequirePackage{scrkbase}[\KOMAScriptVersion] +%%% From File: scrtime.dtx +%%% From File: scrtime.dtx +\newcommand*{\CenturyPart}[1]{\XdivY{#1}{100}} +\newcommand*{\DecadePart}[1]{\XmodY{#1}{100}} +\newcommand*{\@GaussYear}[3]{% + \ifcase #2 + \PackageError{scrdate}{month out of range}{% + You've asked for the Gauss year of ISO date #1-#2-#3,\MessageBreak + this means, that month hat invalid value '#2'.}% + \or + \numexpr #1 - 1\relax + \or + \numexpr #1 - 1\relax + \else + #1 + \fi +} +\newcommand*{\DayNumber}[3]{% + \XmodY{% + \numexpr #3 + + \ifcase #2 + \PackageError{scrdate}{month out of range}{% + You've asked for the dayname of ISO date #1-#2-#3,\MessageBreak + this means, that month hat invalid value '#2'.}% + \or 28 \or 31 \or 2 \or 5 \or 7 \or 10 \or 12 \or 15 \or 18 + \or 20 \or 23 \or 25 + \else + \PackageError{scrdate}{month out of range}{% + You've asked for the dayname of ISO date #1-#2-#3,\MessageBreak + this means, that month hat invalid value '#2'.}% + \fi + + \DecadePart{\@GaussYear{#1}{#2}{#3}} + + \XdivY{\DecadePart{\@GaussYear{#1}{#2}{#3}}}{4} + + \XdivY{\CenturyPart{\@GaussYear{#1}{#2}{#3}}}{4} + - 2 * \CenturyPart{\@GaussYear{#1}{#2}{#3}} \relax + }{7}% +} +\newcommand*{\ISODayNumber}[1]{\expandafter\@IsoDayNumber#1\@nil} +\newcommand*{\@IsoDayNumber}{} +\def\@IsoDayNumber#1-#2-#3\@nil{\DayNumber{#1}{#2}{#3}} +\newcommand*{\DayName}[3]{\@dayname{\DayNumber{#1}{#2}{#3}}} +\newcommand*{\ISODayName}[1]{\@dayname{\ISODayNumber{#1}}} +\newcommand*{\DayNameByNumber}[1]{% + \@dayname{\XmodY{#1}{7}}% +} +\newcommand*{\ISOToday}{% + \the\year-\ifnum \month<10 0\fi\the\month-\ifnum \day<10 0\fi\the\day% +} +\newcommand*{\IsoToday}{% + \the\year-\the\month-\the\day% +} +\newcommand*{\todaysname}{\DayName{\year}{\month}{\day}} +\newcommand*{\todaysnumber}{\DayNumber{\year}{\month}{\day}} +\newcommand\nameday[1]{\renewcommand*{\todaysname}{#1}} +\newcommand*\scrdate@languagenamewarning{% \PackageWarningNoLine{scrdate} {\string\languagename\space not defined, using \string\language.\MessageBreak This may result in use of wrong language!\MessageBreak You should use a compatible language package\MessageBreak - (e.g. `Babel', `german', `french', ...)} + (e.g. `Babel', `german', `french', ...)}% \let\scrdate@languagenamewarning\relax} \newcommand\newdaylanguage[8]{% - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname l@#1\endcsname\relax - \PackageWarningNoLine{scrdate}{Language #1\space not defined.\MessageBreak - \protect\dayname@#1\space skipped!} - \else + \scr@ifundefinedorrelax{l@#1}{% + \PackageInfo{scrdate}{Language #1\space not defined.\MessageBreak + \protect\dayname@#1\space skipped!}% + }{% \@namedef{dayname@#1}##1{% - \begingroup% - \@tempcnta ##1% - \ifcase\@tempcnta% - #2\or #3\or #4\or #5\or #6\or #7\or #8\fi\endgroup% - } - \AtBeginDocument{ - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname date#1\endcsname\relax + \ifcase ##1 + #8\or #2\or #3\or #4\or #5\or #6\or #7\fi% + }% + \AtBeginDocument{% + \scr@ifundefinedorrelax{date#1}{% \PackageWarningNoLine{scrdate} {\protect\date#1\space not defined.\MessageBreak \protect\todaysname maybe can't use - \protect\dayname@#1!} - \else + \protect\dayname@#1!}% + }{% \expandafter\let\csname D@date#1\expandafter\endcsname \csname date#1\endcsname \@namedef{date#1}{% @@ -115,15 +162,15 @@ \@ifundefined{languagename}{ \scrdate@languagenamewarning \ifnum\language=\@nameuse{l@#1} - \@nameuse{date#1} - \fi}{ - \@ifundefined{date\languagename} - {} - {\@nameuse{date\languagename}} - } - \fi - } - \fi + \@nameuse{date#1}% + \fi}{% + \@ifundefined{date\languagename}% + {}% + {\@nameuse{date\languagename}}% + }% + }% + }% + }% } \newdaylanguage{german}{Montag}{Dienstag}{Mittwoch} {Donnerstag}{Freitag}{Samstag}{Sonntag} @@ -148,11 +195,9 @@ \newdaylanguage{norsk}{Mandag}{Tirsdag}{Onsdag} {Torsdag}{Fredag}{L\o{}rdag}{S\o{}ndag} \def\@dayname#1{% - \begingroup% - \@tempcnta #1% - \ifcase\@tempcnta% - Monday\or Tuesday\or Wednesday\or Thursday\or - Friday\or Saturday\or Sunday\fi\endgroup% + \ifcase #1 + Monday\or Tuesday\or Wednesday\or Thursday\or + Friday\or Saturday\or Sunday\fi% } \InputIfFileExists{scrdate.cfg} {\typeout{*************************************^^J% |