You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
784 lines
26 KiB
784 lines
26 KiB
% \CheckSum{311}
|
|
% \iffalse
|
|
% ======================================================================
|
|
% scrtime.dtx
|
|
% Copyright (c) Markus Kohm, 1995-2019
|
|
%
|
|
% This file is part of the LaTeX2e KOMA-Script bundle.
|
|
%
|
|
% This work may be distributed and/or modified under the conditions of
|
|
% the LaTeX Project Public License, version 1.3c of the license.
|
|
% The latest version of this license is in
|
|
% http://www.latex-project.org/lppl.txt
|
|
% and version 1.3c or later is part of all distributions of LaTeX
|
|
% version 2005/12/01 or later and of this work.
|
|
%
|
|
% This work has the LPPL maintenance status "author-maintained".
|
|
%
|
|
% The Current Maintainer and author of this work is Markus Kohm.
|
|
%
|
|
% This work consists of all files listed in manifest.txt.
|
|
% ----------------------------------------------------------------------
|
|
% scrtime.dtx
|
|
% Copyright (c) Markus Kohm, 1995-2019
|
|
%
|
|
% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
|
|
% Version 1.3c, verteilt und/oder veraendert werden.
|
|
% Die neuste Version dieser Lizenz ist
|
|
% http://www.latex-project.org/lppl.txt
|
|
% und Version 1.3c ist Teil aller Verteilungen von LaTeX
|
|
% Version 2005/12/01 oder spaeter und dieses Werks.
|
|
%
|
|
% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
|
|
% (allein durch den Autor verwaltet).
|
|
%
|
|
% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm.
|
|
%
|
|
% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien.
|
|
% ======================================================================
|
|
% \fi
|
|
%
|
|
% \CharacterTable
|
|
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
|
|
% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
|
|
% Digits \0\1\2\3\4\5\6\7\8\9
|
|
% Exclamation \! Double quote \" Hash (number) \#
|
|
% Dollar \$ Percent \% Ampersand \&
|
|
% Acute accent \' Left paren \( Right paren \)
|
|
% Asterisk \* Plus \+ Comma \,
|
|
% Minus \- Point \. Solidus \/
|
|
% Colon \: Semicolon \; Less than \<
|
|
% Equals \= Greater than \> Question mark \?
|
|
% Commercial at \@ Left bracket \[ Backslash \\
|
|
% Right bracket \] Circumflex \^ Underscore \_
|
|
% Grave accent \` Left brace \{ Vertical bar \|
|
|
% Right brace \} Tilde \~}
|
|
%
|
|
% \iffalse
|
|
%%% From File: $Id: scrtime.dtx 3256 2019-10-10 07:06:49Z kohm $
|
|
%<package&identify>\NeedsTeXFormat{LaTeX2e}[1995/06/01]
|
|
%<*driver>
|
|
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
|
|
\begingroup
|
|
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
|
|
\filedate$Date: 2019-10-10 09:06:49 +0200 (Thu, 10 Oct 2019) $
|
|
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
|
|
\filerevision$Revision: 3256 $
|
|
\endgroup
|
|
\ProvidesFile{scrtime.dtx}[\filedate\space\filerevision\space
|
|
%</driver>
|
|
%<*driver|package>
|
|
%<identify&scrtime>\ProvidesPackage{scrtime}[%
|
|
%<identify&scrdate>\ProvidesPackage{scrdate}[%
|
|
%<*driver|identify>
|
|
%!KOMAScriptVersion
|
|
package
|
|
%</driver|identify>
|
|
%<identify&scrtime> (time of LaTeX run)%
|
|
%<identify&scrdate> (day of the week)%
|
|
%<*driver|identify>
|
|
]
|
|
%</driver|identify>
|
|
%</driver|package>
|
|
%<*dtx>
|
|
\ifx\documentclass\undefined
|
|
\input scrdocstrip.tex
|
|
\@@input scrkernel-version.dtx
|
|
\@@input scrstrip.inc
|
|
\KOMAdefVariable{COPYRIGHFROM}{1995}
|
|
\generate{\usepreamble\defaultpreamble
|
|
\file{scrtime.sty}{%
|
|
\from{scrkernel-version.dtx}{package,scrtime}%
|
|
\from{scrtime.dtx}{package,scrtime,identify}%
|
|
\from{scrkernel-basics.dtx}{load}%
|
|
\from{scrtime.dtx}{package,scrtime,option}%
|
|
\from{scrtime.dtx}{package,scrtime,body}%
|
|
\from{scrlogo.dtx}{logo}%
|
|
} %
|
|
\file{scrdate.sty}{%
|
|
\from{scrkernel-version.dtx}{package,scrdate}%
|
|
\from{scrtime.dtx}{package,scrdate,identify}%
|
|
\from{scrkernel-basics.dtx}{load}%
|
|
\from{scrtime.dtx}{package,scrdate,option}%
|
|
\from{scrtime.dtx}{package,scrdate,body}%
|
|
\from{scrlogo.dtx}{logo}%
|
|
} %
|
|
}
|
|
\@@input scrstrop.inc
|
|
\else
|
|
\let\endbatchfile\relax
|
|
\fi
|
|
\endbatchfile
|
|
%</dtx>
|
|
%<*driver>
|
|
\documentclass{scrdoc}
|
|
\usepackage[german,english]{babel}
|
|
\CodelineIndex
|
|
\RecordChanges
|
|
\GetFileInfo{scrtime.dtx}
|
|
\title{The \textsf{KOMA}-timedate-bundle\thanks{This file has
|
|
revision number \fileversion, last revised \filedate.}}
|
|
\author{Markus Kohm}
|
|
\date{\filedate}
|
|
\begin{document}
|
|
\maketitle
|
|
\begin{abstract}
|
|
This bundle includes a package \texttt{scrtime} defining some macros to
|
|
handle compilation-time. It's a very simple implementation similar to
|
|
\texttt{time.sty}. I've tried to use no additional register.
|
|
|
|
The second package \texttt{scrdate} defines some macros to handle the name
|
|
of the day!
|
|
\end{abstract}
|
|
\tableofcontents
|
|
\DocInput{scrtime.dtx}
|
|
\end{document}
|
|
%</driver>
|
|
% \fi
|
|
%
|
|
% \tableofcontents
|
|
%
|
|
% \section{Introduction}
|
|
%
|
|
% See the \KOMAScript{} guide for informations about how to use the package.
|
|
%
|
|
% \StopEventually{\PrintIndex\PrintChanges}
|
|
%
|
|
% \section{Implementation}
|
|
%
|
|
% \subsection{Options}
|
|
%
|
|
% \iffalse
|
|
%<*option>
|
|
% \fi
|
|
% Since version~1.2 both packages use \textsf{scrkbase} for options and
|
|
% additional features.
|
|
%
|
|
%
|
|
% \subsubsection{Options of \textsf{scrtime}}
|
|
%
|
|
% \iffalse
|
|
%<*scrtime>
|
|
% \fi
|
|
%
|
|
% \begin{option}{12h}
|
|
% \changes{v1.1b}{1995/02/15}{Option \texttt{12h} added.}
|
|
% \changes{v1.2}{2010/03/10}{Option uses \textsf{scrkbase}.}
|
|
% \begin{option}{24h}
|
|
% \changes{v1.1b}{1995/02/15}{Option \texttt{24h} added.}
|
|
% \changes{v1.2}{2010/03/10}{Option is deprecated.}
|
|
% \begin{macro}{\if@Hxii}
|
|
% \changes{v1.1b}{1995/02/15}{new switch}
|
|
% There are two the two Options |24h| and |12h|. We need a switch to
|
|
% distinguish.
|
|
% \begin{macrocode}
|
|
\newif\if@Hxii
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
%
|
|
% So the Options are simple.
|
|
% \begin{macrocode}
|
|
\KOMA@ifkey{12h}{@Hxii}
|
|
\KOMA@DeclareDeprecatedOption[scrtime]{24h}{12h=false}
|
|
% \end{macrocode}
|
|
% \end{option}
|
|
% \end{option}
|
|
%
|
|
% Currently only \textsf{scrtime} uses options, so only \textsf{scrtime} needs
|
|
% to process them.
|
|
% \begin{macrocode}
|
|
\KOMAProcessOptions\relax
|
|
% \end{macrocode}
|
|
%
|
|
% \iffalse
|
|
%</scrtime>
|
|
%</option>
|
|
% \fi
|
|
%
|
|
% \subsection{Macros}
|
|
%
|
|
% \iffalse
|
|
%<*body>
|
|
% \fi
|
|
%
|
|
% \subsubsection{Macros of \textsf{scrtime}}
|
|
% \iffalse
|
|
%<*scrtime>
|
|
% \fi
|
|
% We use |\@tempcnta| and |\@tempcntb| but we know, that this is not
|
|
% a very good idea.
|
|
%
|
|
% \begin{macro}{\thistime}
|
|
% \changes{v1.1b}{1995/02/15}{{\cmd\thistime*} added.}%^^A
|
|
% \changes{v1.1b}{1995/02/15}{{\cmd\thistime} works.}%^^A
|
|
% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
|
|
% ersetzt}%^^A
|
|
% First we have to decide, is it a star-version ore not.
|
|
% \begin{macrocode}
|
|
\def\thistime{%
|
|
\kernel@ifstar
|
|
{\let\@tempif\iffalse\@thistime}
|
|
{\let\@tempif\iftrue\@thistime}}
|
|
% \end{macrocode}
|
|
% Know we have to calculate the hours and minutes. |\@tempcnta| are the
|
|
% hours and |\@tempcntb| are the minutes.
|
|
% \begin{macrocode}
|
|
\newcommand*{\@thistime}[1][:]{%
|
|
\begingroup
|
|
\@tempcnta\time\divide\@tempcnta60\multiply\@tempcnta60
|
|
\@tempcntb\time\advance\@tempcntb-\@tempcnta
|
|
\divide\@tempcnta60
|
|
% \end{macrocode}
|
|
% If we use 12h-mode, we have to cut the houres.
|
|
% \changes{v1.1d}{1996/01/14}{Space added at \cs{@thistime} between -12
|
|
% and \cs{fi} (Martin Schroeder).}
|
|
% \begin{macrocode}
|
|
\if@Hxii\ifnum\@tempcnta>12 \advance\@tempcnta-12 \fi\fi
|
|
% \end{macrocode}
|
|
% Know we have to compose the value. If the minutes are less than 10
|
|
% maybe there has to be an additional 0.
|
|
% \begin{macrocode}
|
|
\the\@tempcnta{#1}\@tempif\ifnum\@tempcntb<10 0\fi\fi\the\@tempcntb%
|
|
\endgroup}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
%
|
|
% \begin{macro}{\settime}
|
|
% \changes{v1.1b}{1995/02/15}{{\cmd\settime} redefines {\cmd\@thistime}}
|
|
% \changes{v1.1c}{1995/05/24}{missing macrocode-environment inserted}
|
|
% We simply have to set |\thistime|.
|
|
% \begin{macrocode}
|
|
\newcommand*{\settime}[1]{\renewcommand*{\@thistime}[1][]{#1}}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
%
|
|
%
|
|
% \iffalse
|
|
%</scrtime>
|
|
% \fi
|
|
%
|
|
%
|
|
% \subsubsection{Macros of \textsf{scrdate}}
|
|
%
|
|
% \iffalse
|
|
%<*scrdate>
|
|
% \fi
|
|
%
|
|
% \changes{v1.1a}{1995/02/12}{Changed simply all but the user-interface.}
|
|
% \changes{v3.05a}{2010/03/10}{Changed simply everything.}
|
|
% Since version~3.05a \textsf{scrdate} was rewritten. First step was to make
|
|
% more macros full expandable to provide \cs{MakeUppercase} and
|
|
% \cs{MakeLowercase}. Second was to extend the user interface by some new
|
|
% functionality.
|
|
%
|
|
% \begin{macro}{\CenturyPart}
|
|
% \changes{v3.05a}{2010/03/10}{New}
|
|
% This is the century part of a year number and so only a shortcut to
|
|
% |\XdivY{...}{100}|, that is defined at \textsf{scrbase}.
|
|
% \begin{macrocode}
|
|
\newcommand*{\CenturyPart}[1]{\XdivY{#1}{100}}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
%
|
|
% \begin{macro}{\DecadePart}
|
|
% \changes{v3.05a}{2010/03/10}{New}
|
|
% This is the year number withoud the century part and therefrso only a
|
|
% shortcut to |\XmodY{...}{100}|, that is defined at \textsf{scrbase}.
|
|
% \begin{macrocode}
|
|
\newcommand*{\DecadePart}[1]{\XmodY{#1}{100}}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
%
|
|
% \begin{macro}{\@GaussYear}
|
|
% \changes{v3.05a}{2010/03/10}{New (internal)}
|
|
% At the Gauss calculation of the day of the week January and February relates
|
|
% to the year before. This macro does the correction for any date.
|
|
% \begin{macrocode}
|
|
\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
|
|
}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
%
|
|
% \begin{macro}{\DayNumber}
|
|
% \changes{v3.05a}{2010/03/10}{New}
|
|
% Returns the numerical value of the day of week. Note, that Sunday is 0,
|
|
% Monday is 1, \dots, Saturday is 6. We use the Gauss calculation of the day
|
|
% of the week. First argument is the year, second the month and last the day
|
|
% of the month.
|
|
% \begin{macrocode}
|
|
\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}%
|
|
}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
% \begin{macro}{\ISODayNumber}
|
|
% \changes{v3.05a}{2010/03/10}{New}
|
|
% Das gleiche wie \cs{DayNumber} aber mit einem ISO-Datum als Argument.
|
|
% \begin{macrocode}
|
|
\newcommand*{\ISODayNumber}[1]{\expandafter\@IsoDayNumber#1\@nil}
|
|
% \end{macrocode}
|
|
% \begin{macro}{\@IsoDayNumber}
|
|
% \changes{v3.05a}{2010/03/10}{New (internal)}
|
|
% \begin{macrocode}
|
|
\newcommand*{\@IsoDayNumber}{}
|
|
\def\@IsoDayNumber#1-#2-#3\@nil{\DayNumber{#1}{#2}{#3}}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
% \end{macro}
|
|
%
|
|
% \begin{macro}{\DayName}
|
|
% \changes{v3.05a}{2010/03/10}{New}
|
|
% Returns the name of the day of the week. Arguments like \cs{DayNumber}.
|
|
% \begin{macrocode}
|
|
\newcommand*{\DayName}[3]{\@dayname{\DayNumber{#1}{#2}{#3}}}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
% \begin{macro}{\ISODayName}
|
|
% \changes{v3.05a}{2010/03/10}{New}
|
|
% Das gleiche wie \cs{DayName} aber mit einem ISO-Datum als Argument.
|
|
% \begin{macrocode}
|
|
\newcommand*{\ISODayName}[1]{\@dayname{\ISODayNumber{#1}}}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
%
|
|
% \begin{macro}{\DayNameByNumber}
|
|
% \changes{v3.05a}{2010/03/10}{New}
|
|
% Returns the name of the day of the week. The argument is a number that will
|
|
% be transposed to the range 0..6.
|
|
% \begin{macrocode}
|
|
\newcommand*{\DayNameByNumber}[1]{%
|
|
\@dayname{\XmodY{#1}{7}}%
|
|
}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
%
|
|
% \begin{macro}{\ISOToday}
|
|
% \changes{v3.05a}{2010/03/10}{New}
|
|
% Returns the ISO date.
|
|
% \begin{macrocode}
|
|
\newcommand*{\ISOToday}{%
|
|
\the\year-\ifnum \month<10 0\fi\the\month-\ifnum \day<10 0\fi\the\day%
|
|
}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
%
|
|
% \begin{macro}{\IsoToday}
|
|
% \changes{v3.05a}{2010/03/10}{New}
|
|
% Returns the ISO date.
|
|
% \begin{macrocode}
|
|
\newcommand*{\IsoToday}{%
|
|
\the\year-\the\month-\the\day%
|
|
}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
%
|
|
% \begin{macro}{\todaysname}
|
|
% \changes{v3.05a}{2010/03/10}{Rewritten}
|
|
% Using \cs{DayName} this is very, very simple.
|
|
% \begin{macrocode}
|
|
\newcommand*{\todaysname}{\DayName{\year}{\month}{\day}}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
%
|
|
% \begin{macro}{\todaysnumber}
|
|
% \changes{v3.05a}{2010/03/11}{New}
|
|
% Using \cs{DayNumber} this is very, very simple.
|
|
% \begin{macrocode}
|
|
\newcommand*{\todaysnumber}{\DayNumber{\year}{\month}{\day}}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
%
|
|
% \begin{macro}{\nameday}
|
|
% \changes{v3.05a}{2010/03/10}{Not longer \cs{long}}
|
|
% We simply have to redefine |\todaysname|
|
|
% \begin{macrocode}
|
|
\newcommand\nameday[1]{\renewcommand*{\todaysname}{#1}}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
%
|
|
% \begin{macro}{\newdaylanguage}
|
|
% \changes{v3.05a}{2010/03/10}{Sunday is 0}
|
|
% We write a macro to define the name of the days.
|
|
% \begin{macro}{\scrdate@languagenamewarning}
|
|
% But before this, we have to define a once only warning.
|
|
% \begin{macrocode}
|
|
\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', ...)}%
|
|
\let\scrdate@languagenamewarning\relax
|
|
}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
% \begin{macrocode}
|
|
\newcommand\newdaylanguage[8]{%
|
|
% \end{macrocode}
|
|
% First we check, if the language is defined at the format, the user uses.
|
|
% If it is not defined, we do not define the name of the days and warn.
|
|
% \begin{macrocode}
|
|
\scr@ifundefinedorrelax{l@#1}{%
|
|
\PackageInfoNoLine{scrdate}{Language #1\space not defined.\MessageBreak
|
|
\protect\dayname@#1\space skipped}%
|
|
% \end{macrocode}
|
|
% \changes{v1.1c}{1995/05/24}{missing \cs{end\{macrocode\}} added.}
|
|
% If it is defined, we define the name-selection-macro
|
|
% |\dayname@|\emph{language}.
|
|
% First we define the new macro |\dayname@|\emph{language}:
|
|
% \changes{v3.05a}{2010/03/10}{Group removed.}
|
|
% \changes{v3.15}{2014/12/11}{more robust \cs{ifcase}}
|
|
% \begin{macrocode}
|
|
}{%
|
|
\@namedef{dayname@#1}##1{%
|
|
\ifcase\numexpr \XmodY{##1}{7}\relax
|
|
#8\or #2\or #3\or #4\or #5\or #6\or #7\fi%
|
|
}%
|
|
% \end{macrocode}
|
|
% Then we define, what to do at |\begin{document}|:
|
|
% \begin{macrocode}
|
|
\AtBeginDocument{%
|
|
% \end{macrocode}
|
|
% There we first have to test, if |\date|\emph{language} is defined
|
|
% (e.g. using |german.sty|). If not, we have to warn once more.
|
|
% \begin{macrocode}
|
|
\scr@ifundefinedorrelax{date#1}{%
|
|
\PackageInfoNoLine{scrdate}
|
|
{\protect\date#1\space not defined.\MessageBreak
|
|
\protect\todaysname\space probably cannot use
|
|
\protect\dayname@#1}%
|
|
% \end{macrocode}
|
|
% But if it is defined, we can use it
|
|
% \begin{macrocode}
|
|
}{%
|
|
% \end{macrocode}
|
|
% There we first save |\date|\emph{language} as |\D@date|\emph{language}.
|
|
% This is a bit tricky, but I think, you'll understand it.
|
|
% \begin{macrocode}
|
|
\expandafter\let\csname D@date#1\expandafter\endcsname
|
|
\csname date#1\endcsname
|
|
% \end{macrocode}
|
|
% Now we redefine |\date|\emph{language}. It first defines |\@dayname| and
|
|
% then calls saved macro. If you've understand the definition before, you'll
|
|
% understand this tricky one, too.
|
|
% \begin{macrocode}
|
|
\@namedef{date#1}{%
|
|
\expandafter\let\expandafter\@dayname\csname dayname@#1\endcsname
|
|
\@nameuse{D@date#1}}%
|
|
% \end{macrocode}
|
|
% Last we have to select this new |\date|\emph{language}.
|
|
% \changes{v1.1j}{2000/01/20}{use of \cs{languagename} if defined}
|
|
% \changes{v3.08b}{2011/03/31}{one \% added}
|
|
% \begin{macrocode}
|
|
\@ifundefined{languagename}{%
|
|
\scrdate@languagenamewarning
|
|
\ifnum\language=\@nameuse{l@#1}
|
|
\@nameuse{date#1}%
|
|
\fi
|
|
}{%
|
|
\@ifundefined{date\languagename}%
|
|
{}%
|
|
{\@nameuse{date\languagename}}%
|
|
}%
|
|
}%
|
|
}%
|
|
}%
|
|
}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
%
|
|
% \begin{macro}{\@dayname}
|
|
% This should be named selecting the language. Since I changed the definitions
|
|
% |german.sty| and equal may be loaded before or after |scrdate.sty| or not.
|
|
%
|
|
% First we define the usual languages using |\newdaylanguage|:
|
|
% \begin{macro}{\dayname@german}
|
|
% \begin{macrocode}
|
|
\newdaylanguage{german}{Montag}{Dienstag}{Mittwoch}
|
|
{Donnerstag}{Freitag}{Samstag}{Sonntag}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
% \begin{macro}{\dayname@ngerman}
|
|
% \changes{v1.1i}{1999/10/09}{new language ``ngerman''.}
|
|
% \begin{macrocode}
|
|
\newdaylanguage{ngerman}{Montag}{Dienstag}{Mittwoch}
|
|
{Donnerstag}{Freitag}{Samstag}{Sonntag}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
% \begin{macro}{\dayname@naustrian}
|
|
% \changes{v3.08b}{2011/02/22}{new language ``naustrian''.}
|
|
% \begin{macrocode}
|
|
\newdaylanguage{naustrian}{Montag}{Dienstag}{Mittwoch}
|
|
{Donnerstag}{Freitag}{Samstag}{Sonntag}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
% \begin{macro}{\dayname@austrian}
|
|
% \changes{v3.08b}{2011/02/22}{new language ``austrian''.}
|
|
% \begin{macrocode}
|
|
\newdaylanguage{austrian}{Montag}{Dienstag}{Mittwoch}
|
|
{Donnerstag}{Freitag}{Samstag}{Sonntag}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
% \begin{macro}{\dayname@swissgerman}
|
|
% \changes{v3.13}{2014/01/23}{new language ``swissgerman''.}
|
|
% \begin{macrocode}
|
|
\newdaylanguage{swissgerman}{Montag}{Dienstag}{Mittwoch}
|
|
{Donnerstag}{Freitag}{Samstag}{Sonntag}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
% \begin{macro}{\dayname@nswissgerman}
|
|
% \changes{v3.13}{2014/01/23}{new language ``nswissgerman''.}
|
|
% \begin{macrocode}
|
|
\newdaylanguage{nswissgerman}{Montag}{Dienstag}{Mittwoch}
|
|
{Donnerstag}{Freitag}{Samstag}{Sonntag}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
%
|
|
% \begin{macro}{\dayname@american}
|
|
% \changes{v3.13}{2014/01/23}{new language ``american''.}
|
|
% \begin{macrocode}
|
|
\newdaylanguage{american}{Monday}{Tuesday}{Wednesday}
|
|
{Thursday}{Friday}{Saturday}{Sunday}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
% \begin{macro}{\dayname@australian}
|
|
% \changes{v3.13}{2014/01/23}{new language ``australian''.}
|
|
% \begin{macrocode}
|
|
\newdaylanguage{australian}{Monday}{Tuesday}{Wednesday}
|
|
{Thursday}{Friday}{Saturday}{Sunday}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
% \begin{macro}{\dayname@british}
|
|
% \changes{v3.13}{2014/01/23}{new language ``british''.}
|
|
% \begin{macrocode}
|
|
\newdaylanguage{british}{Monday}{Tuesday}{Wednesday}
|
|
{Thursday}{Friday}{Saturday}{Sunday}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
% \begin{macro}{\dayname@canadian}
|
|
% \changes{v3.13}{2014/01/23}{new language ``canadian''.}
|
|
% \begin{macrocode}
|
|
\newdaylanguage{canadian}{Monday}{Tuesday}{Wednesday}
|
|
{Thursday}{Friday}{Saturday}{Sunday}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
% \begin{macro}{\dayname@english}
|
|
% \changes{v1.1g}{1997/06/21}{correct name is ``tuesday''.}
|
|
% \begin{macrocode}
|
|
\newdaylanguage{english}{Monday}{Tuesday}{Wednesday}
|
|
{Thursday}{Friday}{Saturday}{Sunday}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
% \begin{macro}{\dayname@newzealand}
|
|
% \changes{v3.13}{2014/01/23}{new language ``newzealand''.}
|
|
% \begin{macrocode}
|
|
\newdaylanguage{newzealand}{Monday}{Tuesday}{Wednesday}
|
|
{Thursday}{Friday}{Saturday}{Sunday}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
% \begin{macro}{\dayname@UKenglish}
|
|
% \changes{v3.13}{2014/01/23}{new language ``UKenglish''.}
|
|
% \begin{macrocode}
|
|
\newdaylanguage{UKenglish}{Monday}{Tuesday}{Wednesday}
|
|
{Thursday}{Friday}{Saturday}{Sunday}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
% \begin{macro}{\dayname@ukenglish}
|
|
% \changes{v3.24}{2017/05/29}{new language ``ukenglish''.}
|
|
% \begin{macrocode}
|
|
\newdaylanguage{ukenglish}{Monday}{Tuesday}{Wednesday}
|
|
{Thursday}{Friday}{Saturday}{Sunday}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
% \begin{macro}{\dayname@USenglish}
|
|
% \changes{v1.1g}{1997/06/21}{correct name is ``tuesday''.}
|
|
% \begin{macrocode}
|
|
\newdaylanguage{USenglish}{Monday}{Tuesday}{Wednesday}
|
|
{Thursday}{Friday}{Saturday}{Sunday}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
% \begin{macro}{\dayname@usenglish}
|
|
% \changes{v3.24}{2017/05/29}{new language ``usenglish''.}
|
|
% \begin{macrocode}
|
|
\newdaylanguage{usenglish}{Monday}{Tuesday}{Wednesday}
|
|
{Thursday}{Friday}{Saturday}{Sunday}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
%
|
|
% \begin{macro}{\dayname@acadian}
|
|
% \changes{v3.13}{2014/01/23}{new language ``acadian''.}
|
|
% \begin{macrocode}
|
|
\newdaylanguage{acadian}{Lundi}{Mardi}{Mercredi}
|
|
{Jeudi}{Vendredi}{Samedi}{Dimanche}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
% \begin{macro}{\dayname@canadien}
|
|
% \changes{v3.13}{2014/01/23}{new language ``canadien''.}
|
|
% \begin{macrocode}
|
|
\newdaylanguage{canadien}{Lundi}{Mardi}{Mercredi}
|
|
{Jeudi}{Vendredi}{Samedi}{Dimanche}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
% \begin{macro}{\dayname@francais}
|
|
% \changes{v3.13}{2014/01/23}{new language ``francais''.}
|
|
% \begin{macrocode}
|
|
\newdaylanguage{francais}{Lundi}{Mardi}{Mercredi}
|
|
{Jeudi}{Vendredi}{Samedi}{Dimanche}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
% \begin{macro}{\dayname@french}
|
|
% \begin{macrocode}
|
|
\newdaylanguage{french}{Lundi}{Mardi}{Mercredi}
|
|
{Jeudi}{Vendredi}{Samedi}{Dimanche}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
% \begin{macro}{\dayname@italian}
|
|
% \changes{v1.1f}{1997/06/06}{New (thanks to Lorenzo M.\ Catucci)}
|
|
% \begin{macrocode}
|
|
\newdaylanguage{italian}{Luned\`\i}{Marted\`\i}{Mercoled\`\i}
|
|
{Gioved\`\i}{Venerd\`\i}{Sabato}{Domenica}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
% \begin{macro}{\dayname@spanish}
|
|
% \changes{v1.1h}{1997/07/26}{New (thanks to Ralph J.\ Hangleiter)}
|
|
% \begin{macrocode}
|
|
\newdaylanguage{spanish}{Lunes}{Martes}{Mi\'ercoles}
|
|
{Jueves}{Viernes}{S\'abado}{Domingo}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
% \begin{macro}{\dayname@croatian}
|
|
% \changes{v1.1l}{2001/10/05}{New (thanks to Branka Lon\v{c}arevi\'{c})}
|
|
% \begin{macrocode}
|
|
\newdaylanguage{croatian}{Ponedjeljak}{Utorak}{Srijeda}
|
|
{\v{C}etvrtak}{Petak}{Subota}{Nedjelja}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
% \begin{macro}{\dayname@dutch}
|
|
% \changes{v1.1m}{2002/02/02}{New (thanks to Henk Jongbloets)}
|
|
% \changes{v1.1p}{2009/01/01}{fixed to upper case}
|
|
% \begin{macrocode}
|
|
\newdaylanguage{dutch}{Maandag}{Dinsdag}{Woensdag}
|
|
{Donderdag}{Vrijdag}{Zaterdag}{Zondag}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
%
|
|
% \begin{macro}{\dayname@finnish}
|
|
% \changes{v1.1n}{2005/02/07}{New (thanks to Hannu V\"ais\"anen)}
|
|
% \begin{macrocode}
|
|
\newdaylanguage{finnish}{Maanantai}{Tiistai}{Keskiviikko}
|
|
{Torstai}{Perjantai}{Lauantai}{Sunnuntai}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
%
|
|
% \begin{macro}{\dayname@norsk}
|
|
% \changes{v1.1p}{2009/01/01}{New (thank to Sveinung Heggen)}
|
|
% \begin{macrocode}
|
|
\newdaylanguage{norsk}{Mandag}{Tirsdag}{Onsdag}
|
|
{Torsdag}{Fredag}{L\o{}rdag}{S\o{}ndag}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
%
|
|
% \begin{macro}{\dayname@danish}
|
|
% \changes{v3.08}{2011/01/18}{New (thanks to Benjamin Hell)}
|
|
% \begin{macrocode}
|
|
\newdaylanguage{danish}{Mandag}{Tirsdag}{Onsdag}
|
|
{Torsdag}{Fredag}{L\o{}rdag}{S\o{}ndag}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
%
|
|
% \begin{macro}{\dayname@swedish}
|
|
% \changes{v3.08}{2011/01/18}{New (thanks to Benjamin Hell)}
|
|
% \begin{macrocode}
|
|
\newdaylanguage{swedish}{M\aa{}ndag}{Tisdag}{Onsdag}
|
|
{Torsdag}{Fredag}{L\"ordag}{S\"ondag}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
%
|
|
% \begin{macro}{\dayname@polish}
|
|
% \changes{v3.13}{2014/01/07}{New (thanks to Blandyna Bogdol)}
|
|
% \changes{v3.13}{2014/01/23}{Fixed (thanks to Elke Schubert)}
|
|
% \begin{macrocode}
|
|
\newdaylanguage{polish}{Poniedzia\l{}ek}{Wtorek}{\'Sroda}
|
|
{Czwartek}{Pi\aob{}tek}{Sobota}{Niedziela}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
%
|
|
% \begin{macro}{\dayname@czech}
|
|
% \changes{v3.13}{2014/01/23}{New (thanks to Elke Schubert)}
|
|
% \begin{macrocode}
|
|
\newdaylanguage{czech}{Pond\v{e}l\'\i}{\'Uter\'y}{St\v{r}eda}
|
|
{\v{C}tvrtek}{P\'atek}{Sobota}{Ned\v{e}le}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
%
|
|
% \begin{macro}{\dayname@slovak}
|
|
% \changes{v3.13}{2014/02/26}{New (thanks to Elke Schubert)}
|
|
% \begin{macrocode}
|
|
\newdaylanguage{slovak}{Pondelok}{Utorok}{Streda}
|
|
{\v{S}tvrtok}{Piatok}{Sobota}{Nede\v{l}a}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
%
|
|
% If there are no language-definitions, we simply want the US-english names
|
|
% of the days.
|
|
% \changes{v1.1g}{1997/06/21}{correct name is ``tuesday''.}
|
|
% \changes{v3.15}{2014/12/11}{default language definition fixed.}
|
|
% \begin{macrocode}
|
|
\let\@dayname\dayname@english
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
%
|
|
% Last but not least file \texttt{scrdate.cfg} has to be included,
|
|
% if it exists.
|
|
% \begin{macrocode}
|
|
\InputIfFileExists{scrdate.cfg}
|
|
{\typeout{*************************************^^J%
|
|
* Local config file scrdate.cfg used^^J%
|
|
*************************************}}
|
|
{}
|
|
% \end{macrocode}
|
|
%
|
|
% \iffalse
|
|
%</scrdate>
|
|
%</body>
|
|
% \fi
|
|
%
|
|
% \Finale
|
|
%
|
|
\endinput
|
|
%
|
|
% Ende der Datei `scrtime.dtx'
|
|
%%% Local Variables:
|
|
%%% mode: doctex
|
|
%%% TeX-master: t
|
|
%%% End:
|
|
|