%\iffalse %<*package> %% \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 \~} % %\fi % \iffalse % Doc-Source file to use with LaTeX2e % Copyright (C) 2015 Nicola Talbot, all rights reserved. % (New maintainer add relevant lines here.) % \fi % \iffalse %<*driver> \documentclass{ltxdoc} \usepackage{alltt} \usepackage{graphicx} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage[colorlinks, bookmarks, hyperindex=false, pdfauthor={Nicola L.C. Talbot}, pdftitle={datetime2.sty Hebrew Module}]{hyperref} \CheckSum{162} \renewcommand*{\usage}[1]{\hyperpage{#1}} \renewcommand*{\main}[1]{\hyperpage{#1}} \IndexPrologue{\section*{\indexname}\markboth{\indexname}{\indexname}} \setcounter{IndexColumns}{2} \newcommand*{\sty}[1]{\textsf{#1}} \newcommand*{\opt}[1]{\texttt{#1}\index{#1=\texttt{#1}|main}} \RecordChanges \PageIndex \CodelineNumbered \begin{document} \DocInput{datetime2-hebrew.dtx} \end{document} % %\fi % %\MakeShortVerb{"} % %\title{Hebrew Module for datetime2 Package} %\author{Nicola L. C. Talbot (inactive)} %\date{2015-03-30 (v1.0)} %\maketitle % %This module is currently unmaintained and may be subject to change. %If you want to volunteer to take over maintanance, contact me at %\url{http://www.dickimaw-books.com/contact.html} % %\begin{abstract} %This is the Hebrew language module for the \sty{datetime2} %package. If you want to use the settings in this module you must %install it in addition to installing \sty{datetime2}. If you use %\sty{babel} or \sty{polyglossia}, you will need this module to %prevent them from redefining \cs{today}. The \sty{datetime2} % \opt{useregional} setting must be set to "text" or "numeric" % for the language styles to be set. % Alternatively, you can set the style in the document using % \cs{DTMsetstyle}, but this may be changed by \cs{date}\meta{language} % depending on the value of the \opt{useregional} setting. %\end{abstract} % %The date style simply uses either \sty{babel}'s \cs{hebdate} %or \sty{polyglossia}'s \cs{hebrewdate} so the date style isn't %expandable. % %I don't know if these settings are correct as I can't speak Hebrew. %In particular, I don't know if the "hebrew" time style is %correct. Currently this just uses the "default" time style. Please %be aware that this may change. Whoever takes over maintanance %of this module may can change it as appropriate. % %The new maintainer should add the line: %\begin{verbatim} % The Current Maintainer of this work is Name. %\end{verbatim} %to the preamble part in \texttt{datetime2-hebrew.ins} where Name %is the name of the maintainer(s) and replace %the `inactive' status to `maintained'. % % %\StopEventually{% %\clearpage %\phantomsection %\addcontentsline{toc}{section}{Change History}% %\PrintChanges %\addcontentsline{toc}{section}{\indexname}% %\PrintIndex} %\section{The Code} % There is currently only one ".ldf" file. % %\subsection{Main Hebrew Module (\texttt{datetime2-hebrew.ldf})} %\changes{1.0}{2015-03-30}{Initial release} % %\iffalse % \begin{macrocode} %<*datetime2-hebrew.ldf> % \end{macrocode} %\fi % % Identify Module % \begin{macrocode} \ProvidesDateTimeModule{hebrew}[2015/03/30 v1.0] % \end{macrocode} % The date style uses \cs{hebrewdate} or \cs{hebdate}, depending on % which is defined. This needs to be robust, which means the date % can't be expanded with this style. This should be fixed if at all % possible. (I don't know how.) %\begin{macro}{\DTMhebrewdate} % \begin{macrocode} \ifdef\hebrewdate {% \newrobustcmd*\DTMhebrewdate[3]{\hebrewdate{#3}{#2}{#1}}% }% {% \ifdef\hebdate {% \newrobustcmd*\DTMhebrewdate[3]{\hebdate{#3}{#2}{#1}}% }% {% \newcommand*\DTMhebrewdate[3]{#3-#2-#1}% \PackageWarning{datetime2-hebrew}{Neither \string\hebrewdate\space nor \string\hebdate\space defined}{}% }% }% % \end{macrocode} %\end{macro} %For some reason \cs{hebrewdate} doesn't work with \cs{datetime2}'s %definition of \cs{today} so it needs to be changed. %\begin{macro}{\today} % \begin{macrocode} \renewcommand*{\today}{\DTMdisplaydate{\year}{\month}{\day}{-1}} % \end{macrocode} %\end{macro} %\begin{macro}{\Today} % \begin{macrocode} \renewcommand*{\Today}{\DTMDisplaydate{\year}{\month}{\day}{-1}} % \end{macrocode} %\end{macro} % %The full style will probably need to check for RL or LR. %\begin{macro}{\DTMhebrewdatetimesep} % The separator between the date and time blocks in the full format % (either text or numeric). % \begin{macrocode} \newcommand*{\DTMhebrewdatetimesep}{\space} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMhebrewtimezonesep} % The separator between the time and zone blocks in the full format % (either text or numeric). % \begin{macrocode} \newcommand*{\DTMhebrewtimezonesep}{\space} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMhebrewdatesep} % The separator for the numeric date format. % \begin{macrocode} \newcommand*{\DTMhebrewdatesep}{.} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMhebrewtimesep} % The separator for the numeric time format. % \begin{macrocode} \newcommand*{\DTMhebrewtimesep}{:} % \end{macrocode} %\end{macro} % %Provide keys that can be used in \cs{DTMlangsetup} to set these %separators. % \begin{macrocode} \DTMdefkey{hebrew}{datetimesep}{\renewcommand*{\DTMhebrewdatetimesep}{#1}} \DTMdefkey{hebrew}{timezonesep}{\renewcommand*{\DTMhebrewtimezonesep}{#1}} \DTMdefkey{hebrew}{datesep}{\renewcommand*{\DTMhebrewdatesep}{#1}} \DTMdefkey{hebrew}{timesep}{\renewcommand*{\DTMhebrewtimesep}{#1}} % \end{macrocode} % % Define a boolean key that determines if the time zone mappings % should be used. % \begin{macrocode} \DTMdefboolkey{hebrew}{mapzone}[true]{} % \end{macrocode} % The default is to use mappings. % \begin{macrocode} \DTMsetbool{hebrew}{mapzone}{true} % \end{macrocode} % % Define the "hebrew" style. % \begin{macrocode} \DTMnewstyle {hebrew}% label {% date style \renewcommand*\DTMdisplaydate[4]{% \DTMtexorpdfstring{\DTMhebrewdate{##1}{##2}{##3}}{##3-##2-##1}% }% \renewcommand*\DTMDisplaydate{\DTMdisplaydate}% }% {% time style (use default) \DTMsettimestyle{default}% }% {% zone style \DTMresetzones \DTMhebrewzonemaps \renewcommand*{\DTMdisplayzone}[2]{% \DTMifbool{hebrew}{mapzone}% {\DTMusezonemapordefault{##1}{##2}}% {% \ifnum##1<0\else+\fi\DTMtwodigits{##1}% \ifDTMshowzoneminutes\DTMhebrewtimesep\DTMtwodigits{##2}\fi }% }% }% {% full style \renewcommand*{\DTMdisplay}[9]{% \ifDTMshowdate \DTMdisplaydate{##1}{##2}{##3}{##4}% \DTMhebrewdatetimesep \fi \DTMdisplaytime{##5}{##6}{##7}% \ifDTMshowzone \DTMhebrewtimezonesep \DTMdisplayzone{##8}{##9}% \fi }% \renewcommand*{\DTMDisplay}{\DTMdisplay}% }% % \end{macrocode} % % Define numeric style. % \begin{macrocode} \DTMnewstyle {hebrew-numeric}% label {% date style \renewcommand*\DTMdisplaydate[4]{% \DTMifbool{hebrew}{showdayofmonth}% {% \number##3 % space intended \DTMhebrewdatesep }% {}% \number##2 % space intended \DTMifbool{hebrew}{showyear}% {% \DTMhebrewdatesep \number##1 % space intended }% {}% }% \renewcommand*\DTMDisplaydate{\DTMdisplaydate}% }% {% time style \renewcommand*\DTMdisplaytime[3]{% \number##1 \DTMhebrewtimesep\DTMtwodigits{##2}% \ifDTMshowseconds\DTMhebrewtimesep\DTMtwodigits{##3}\fi }% }% {% zone style \DTMresetzones \DTMhebrewzonemaps \renewcommand*{\DTMdisplayzone}[2]{% \DTMifbool{hebrew}{mapzone}% {\DTMusezonemapordefault{##1}{##2}}% {% \ifnum##1<0\else+\fi\DTMtwodigits{##1}% \ifDTMshowzoneminutes\DTMhebrewtimesep\DTMtwodigits{##2}\fi }% }% }% {% full style \renewcommand*{\DTMdisplay}[9]{% \ifDTMshowdate \DTMdisplaydate{##1}{##2}{##3}{##4}% \DTMhebrewdatetimesep \fi \DTMdisplaytime{##5}{##6}{##7}% \ifDTMshowzone \DTMhebrewtimezonesep \DTMdisplayzone{##8}{##9}% \fi }% \renewcommand*{\DTMDisplay}{\DTMdisplay}% } % \end{macrocode} % %\begin{macro}{\DTMhebrewzonemaps} % The time zone mappings are set through this command, which can be % redefined if extra mappings are required or mappings need to be % removed. There are currently no mappings. % \begin{macrocode} \newcommand*{\DTMhebrewzonemaps}{% } % \end{macrocode} %\end{macro} % Switch style according to the \opt{useregional} setting. % \begin{macrocode} \DTMifcaseregional {}% do nothing {\DTMsetstyle{hebrew}} {\DTMsetstyle{hebrew-numeric}} % \end{macrocode} % % Redefine \cs{datehebrew} (or \cs{date}\meta{dialect}) to prevent % \sty{babel} from resetting \cs{today}. (For this to work, % \sty{babel} must already have been loaded if it's required.) % \begin{macrocode} \ifcsundef{date\CurrentTrackedDialect} {% \ifundef\datehebrew {% do nothing }% {% \def\datehebrew{% \DTMifcaseregional {}% do nothing {\DTMsetstyle{hebrew}}% {\DTMsetstyle{hebrew-numeric}}% }% }% }% {% \csdef{date\CurrentTrackedDialect}{% \DTMifcaseregional {}% do nothing {\DTMsetstyle{hebrew}}% {\DTMsetstyle{hebrew-numeric}} }% }% % \end{macrocode} %\iffalse % \begin{macrocode} % % \end{macrocode} %\fi %\Finale \endinput