%PDF- %PDF-
| Direktori : /proc/self/root/usr/share/texlive/texmf-dist/tex/generic/babel/ |
| Current File : //proc/self/root/usr/share/texlive/texmf-dist/tex/generic/babel/hebcal.sty |
%%
%% This is file `hebcal.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% hebrew.dtx (with options: `calendar')
%%
%% This is a generated file.
%%
%% Copyright 1997-2004 Boris Lavva and any individual authors
%% listed elsewhere in this file. All rights reserved.
%%
%% This is a generated file.
%%
%% Copyright 1989-2005 Johannes L. Braams and any individual authors
%% listed elsewhere in this file. All rights reserved.
%%
%% This file was generated from file(s) of the Babel system.
%% ---------------------------------------------------------
%%
%% It may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%% http://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of LaTeX
%% version 2003/12/01 or later.
%%
%% This work has the LPPL maintenance status "maintained".
%%
%% The Current Maintainer of this work is Johannes Braams.
%%
%% This file may only be distributed together with a copy of the Babel
%% system. You may however distribute the Babel system without
%% such generated files.
%%
%% The list of all files belonging to the Babel distribution is
%% given in the file `manifest.bbl'. See also `legal.bbl for additional
%% information.
%%
%% The list of derived (unpacked) files belonging to the distribution
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
%% Hebrew language definition and additional packages.
%% Copyright (C) 1997 -- 2005 Boris Lavva.
%% Babel package for LaTeX version 2e
%% Copyright (C) 1989 -- 2005 by Johannes Braams,
%% TeXniek
%% All rights reserved.
%% TeX & LaTeX macros for computing Hebrew date from Gregorian one
%% Copyright (C) 1991 by Michail Rozman, misha@iop.tartu.ew.su
%%
\ProvidesPackage{hebcal}
[2005/03/30 v2.3h %
Hebrew calendar
Hebrew language support from the babel system]
\newif\if@full@hebrew@year
\@full@hebrew@yearfalse
\DeclareOption{full}{\@full@hebrew@yeartrue}
\ProcessOptions
\newcount\Hebrewday \newcount\Hebrewmonth \newcount\Hebrewyear
\def\Hebrewdate#1#2#3{%
\HebrewFromGregorian{#1}{#2}{#3}
{\Hebrewday}{\Hebrewmonth}{\Hebrewyear}%
\ifundefined{if@rl}%
\FormatForEnglish{\Hebrewday}{\Hebrewmonth}{\Hebrewyear}%
\else%
\FormatDate{\Hebrewday}{\Hebrewmonth}{\Hebrewyear}%
\fi}
\def\Hebrewtoday{\Hebrewdate{\day}{\month}{\year}}
\let\hebrewtoday=\Hebrewtoday
\def\Hebrewsetreg{%
\HebrewFromGregorian{\day}{\month}{\year}
{\Hebrewday}{\Hebrewmonth}{\Hebrewyear}}
\def\FormatDate#1#2#3{%
\if@rl%
\FormatForHebrew{#1}{#2}{#3}%
\else%
\FormatForEnglish{#1}{#2}{#3}
\fi}
\def\HebrewYearName#1{{%
\@tempcnta=#1\divide\@tempcnta by 1000\multiply\@tempcnta by 1000
\ifnum#1=\@tempcnta\relax % divisible by 1000: disambiguate
\Hebrewnumeralfinal{#1}\ )\heblamed\hebpe"\hebgimel(%
\else % not divisible by 1000
\ifnum#1<1000\relax % first millennium: disambiguate
\Hebrewnumeralfinal{#1}\ )\heblamed\hebpe"\hebgimel(%
\else
\ifnum#1<5000
\Hebrewnumeralfinal{#1}%
\else
\ifnum#1<6000 % current millenium, print without thousands
\@tempcnta=#1\relax
\if@full@hebrew@year\else\advance\@tempcnta by -5000\fi
\Hebrewnumeralfinal{\@tempcnta}%
\else % #1>6000
\Hebrewnumeralfinal{#1}%
\fi
\fi
\fi
\fi}}
\def\HebrewMonthName#1#2{%
\ifnum #1 = 7 %
\CheckLeapHebrewYear{#2}%
\if@HebrewLeap \hebalef\hebdalet\hebresh\ \hebbet'%
\else \hebalef\hebdalet\hebresh%
\fi%
\else%
\ifcase#1%
% nothing for 0
\or\hebtav\hebshin\hebresh\hebyod%
\or\hebhet\hebshin\hebvav\hebfinalnun%
\or\hebkaf\hebsamekh\heblamed\hebvav%
\or\hebtet\hebbet\hebtav%
\or\hebshin\hebbet\hebtet%
\or\hebalef\hebdalet\hebresh\ \hebalef'%
\or\hebalef\hebdalet\hebresh\ \hebbet'%
\or\hebnun\hebyod\hebsamekh\hebfinalnun%
\or\hebalef\hebyod\hebyod\hebresh%
\or\hebsamekh\hebyod\hebvav\hebfinalnun%
\or\hebtav\hebmem\hebvav\hebzayin%
\or\hebalef\hebbet%
\or\hebalef\heblamed\hebvav\heblamed%
\fi%
\fi}
\def\HebrewDayName#1{\Hebrewnumeral{#1}}
\def\FormatForHebrew#1#2#3{%
\HebrewDayName{#1}~\hebbet\HebrewMonthName{#2}{#3},~%
\HebrewYearName{#3}}
\def\HebrewMonthNameInEnglish#1#2{%
\ifnum #1 = 7%
\CheckLeapHebrewYear{#2}%
\if@HebrewLeap Adar II\else Adar\fi%
\else%
\ifcase #1%
% nothing for 0
\or Tishrei%
\or Heshvan%
\or Kislev%
\or Tebeth%
\or Shebat%
\or Adar I%
\or Adar II%
\or Nisan%
\or Iyar%
\or Sivan%
\or Tammuz%
\or Av%
\or Elul%
\fi
\fi}
\def\FormatForEnglish#1#2#3{%
\HebrewMonthNameInEnglish{#2}{#3} \number#1,\ \number#3}
\newcount\@common
\def\Remainder#1#2#3{%
#3 = #1% % c = a
\divide #3 by #2% % c = a/b
\multiply #3 by -#2% % c = -b(a/b)
\advance #3 by #1}% % c = a - b(a/b)
\newif\if@Divisible
\def\CheckIfDivisible#1#2{%
{%
\countdef\tmp = 0% \tmp == \count0 - temporary variable
\Remainder{#1}{#2}{\tmp}%
\ifnum \tmp = 0%
\global\@Divisibletrue%
\else%
\global\@Divisiblefalse%
\fi}}
\def\ifundefined#1{\expandafter\ifx\csname#1\endcsname\relax}
\newif\if@GregorianLeap
\def\IfGregorianLeap#1{%
\CheckIfDivisible{#1}{4}%
\if@Divisible%
\CheckIfDivisible{#1}{100}%
\if@Divisible%
\CheckIfDivisible{#1}{400}%
\if@Divisible%
\@GregorianLeaptrue%
\else%
\@GregorianLeapfalse%
\fi%
\else%
\@GregorianLeaptrue%
\fi%
\else%
\@GregorianLeapfalse%
\fi%
\if@GregorianLeap}
\def\GregorianDaysInPriorMonths#1#2#3{%
{%
#3 = \ifcase #1%
0 \or% % no month number 0
0 \or%
31 \or%
59 \or%
90 \or%
120 \or%
151 \or%
181 \or%
212 \or%
243 \or%
273 \or%
304 \or%
334%
\fi%
\IfGregorianLeap{#2}%
\ifnum #1 > 2% % if month after February
\advance #3 by 1% % add leap day
\fi%
\fi%
\global\@common = #3}%
#3 = \@common}
\def\GregorianDaysInPriorYears#1#2{%
{%
\countdef\tmpc = 4% % \tmpc==\count4
\countdef\tmpb = 2% % \tmpb==\count2
\tmpb = #1% %
\advance \tmpb by -1% %
\tmpc = \tmpb% % \tmpc = \tmpb = year-1
\multiply \tmpc by 365% % Days in prior years =
#2 = \tmpc% % = 365*(year-1) ...
\tmpc = \tmpb% %
\divide \tmpc by 4% % \tmpc = (year-1)/4
\advance #2 by \tmpc% % ... plus Julian leap days ...
\tmpc = \tmpb% %
\divide \tmpc by 100% % \tmpc = (year-1)/100
\advance #2 by -\tmpc% % ... minus century years ...
\tmpc = \tmpb% %
\divide \tmpc by 400% % \tmpc = (year-1)/400
\advance #2 by \tmpc% % ... plus 4-century years.
\global\@common = #2}%
#2 = \@common}
\def\AbsoluteFromGregorian#1#2#3#4{%
{%
\countdef\tmpd = 0% % \tmpd==\count0
#4 = #1% % days so far this month
\GregorianDaysInPriorMonths{#2}{#3}{\tmpd}%
\advance #4 by \tmpd% % add days in prior months
\GregorianDaysInPriorYears{#3}{\tmpd}%
\advance #4 by \tmpd% % add days in prior years
\global\@common = #4}%
#4 = \@common}
\newif\if@HebrewLeap
\def\CheckLeapHebrewYear#1{%
{%
\countdef\tmpa = 0% % \tmpa==\count0
\countdef\tmpb = 1% % \tmpb==\count1
\tmpa = #1%
\multiply \tmpa by 7%
\advance \tmpa by 1%
\Remainder{\tmpa}{19}{\tmpb}%
\ifnum \tmpb < 7% % \tmpb = (7*year+1)%19
\global\@HebrewLeaptrue%
\else%
\global\@HebrewLeapfalse%
\fi}}
\def\HebrewElapsedMonths#1#2{%
{%
\countdef\tmpa = 0% % \tmpa==\count0
\countdef\tmpb = 1% % \tmpb==\count1
\countdef\tmpc = 2% % \tmpc==\count2
\tmpa = #1% %
\advance \tmpa by -1% %
#2 = \tmpa% % #2 = \tmpa = year-1
\divide #2 by 19% % Number of complete Meton cycles
\multiply #2 by 235% % #2 = 235*((year-1)/19)
\Remainder{\tmpa}{19}{\tmpb}% \tmpa = years%19-years this cycle
\tmpc = \tmpb% %
\multiply \tmpb by 12% %
\advance #2 by \tmpb% % add regular months this cycle
\multiply \tmpc by 7% %
\advance \tmpc by 1% %
\divide \tmpc by 19% % \tmpc = (1+7*((year-1)%19))/19 -
\advance #2 by \tmpc% % add leap months
\global\@common = #2}%
#2 = \@common}
\def\HebrewElapsedDays#1#2{%
{%
\countdef\tmpa = 0% % \tmpa==\count0
\countdef\tmpb = 1% % \tmpb==\count1
\countdef\tmpc = 2% % \tmpc==\count2
\HebrewElapsedMonths{#1}{#2}%
\tmpa = #2% %
\multiply \tmpa by 13753% %
\advance \tmpa by 5604% % \tmpa=MonthsElapsed*13758 + 5604
\Remainder{\tmpa}{25920}{\tmpc}% \tmpc == ConjunctionParts
\divide \tmpa by 25920%
\multiply #2 by 29%
\advance #2 by 1%
\advance #2 by \tmpa% % #2 = 1 + MonthsElapsed*29 +
\Remainder{#2}{7}{\tmpa}% % \tmpa == DayOfWeek
\ifnum \tmpc < 19440%
\ifnum \tmpc < 9924%
\else% % New moon at 9 h. 204 p. or later
\ifnum \tmpa = 2% % on Tuesday ...
\CheckLeapHebrewYear{#1}% of a common year
\if@HebrewLeap%
\else%
\advance #2 by 1%
\fi%
\fi%
\fi%
\ifnum \tmpc < 16789%
\else% % New moon at 15 h. 589 p. or later
\ifnum \tmpa = 1% % on Monday ...
\advance #1 by -1%
\CheckLeapHebrewYear{#1}% at the end of leap year
\if@HebrewLeap%
\advance #2 by 1%
\fi%
\fi%
\fi%
\else%
\advance #2 by 1% % new moon at or after midday
\fi%
\Remainder{#2}{7}{\tmpa}% % \tmpa == DayOfWeek
\ifnum \tmpa = 0% % if Sunday ...
\advance #2 by 1%
\else% %
\ifnum \tmpa = 3% % Wednesday ...
\advance #2 by 1%
\else%
\ifnum \tmpa = 5% % or Friday
\advance #2 by 1%
\fi%
\fi%
\fi%
\global\@common = #2}%
#2 = \@common}
\def\DaysInHebrewYear#1#2{%
{%
\countdef\tmpe = 12% % \tmpe==\count12
\HebrewElapsedDays{#1}{\tmpe}%
\advance #1 by 1%
\HebrewElapsedDays{#1}{#2}%
\advance #2 by -\tmpe%
\global\@common = #2}%
#2 = \@common}
\def\HebrewDaysInPriorMonths#1#2#3{%
{%
\countdef\tmpf= 14% % \tmpf==\count14
#3 = \ifcase #1% % Days in prior month of regular year
0 \or% % no month number 0
0 \or% % Tishri
30 \or% % Heshvan
59 \or% % Kislev
89 \or% % Tebeth
118 \or% % Shebat
148 \or% % Adar I
148 \or% % Adar II
177 \or% % Nisan
207 \or% % Iyar
236 \or% % Sivan
266 \or% % Tammuz
295 \or% % Av
325 \or% % Elul
400% % Dummy
\fi%
\CheckLeapHebrewYear{#2}%
\if@HebrewLeap% % in leap year
\ifnum #1 > 6% % if month after Adar I
\advance #3 by 30% % add 30 days
\fi%
\fi%
\DaysInHebrewYear{#2}{\tmpf}%
\ifnum #1 > 3%
\ifnum \tmpf = 353% %
\advance #3 by -1% %
\fi% % Short Kislev
\ifnum \tmpf = 383% %
\advance #3 by -1% %
\fi% %
\fi%
\ifnum #1 > 2%
\ifnum \tmpf = 355% %
\advance #3 by 1% %
\fi% % Long Heshvan
\ifnum \tmpf = 385% %
\advance #3 by 1% %
\fi% %
\fi%
\global\@common = #3}%
#3 = \@common}
\def\AbsoluteFromHebrew#1#2#3#4{%
{%
#4 = #1%
\HebrewDaysInPriorMonths{#2}{#3}{#1}%
\advance #4 by #1% % Add days in prior months this year
\HebrewElapsedDays{#3}{#1}%
\advance #4 by #1% % Add days in prior years
\advance #4 by -1373429% % Subtract days before Gregorian
\global\@common = #4}% % 01.01.0001
#4 = \@common}
\def\HebrewFromGregorian#1#2#3#4#5#6{%
{%
\countdef\tmpx= 17% % \tmpx==\count17
\countdef\tmpy= 18% % \tmpy==\count18
\countdef\tmpz= 19% % \tmpz==\count19
#6 = #3% %
\global\advance #6 by 3761% approximation from above
\AbsoluteFromGregorian{#1}{#2}{#3}{#4}%
\tmpz = 1 \tmpy = 1%
\AbsoluteFromHebrew{\tmpz}{\tmpy}{#6}{\tmpx}%
\ifnum \tmpx > #4% %
\global\advance #6 by -1% Hyear = Gyear + 3760
\AbsoluteFromHebrew{\tmpz}{\tmpy}{#6}{\tmpx}%
\fi% %
\advance #4 by -\tmpx% % Days in this year
\advance #4 by 1% %
#5 = #4% %
\divide #5 by 30% % Approximation for month from below
\loop% % Search for month
\HebrewDaysInPriorMonths{#5}{#6}{\tmpx}%
\ifnum \tmpx < #4%
\advance #5 by 1%
\tmpy = \tmpx%
\repeat%
\global\advance #5 by -1%
\global\advance #4 by -\tmpy}}
%%
%% \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 \~}
%%
\endinput
%%
%% End of file `hebcal.sty'.