diff options
Diffstat (limited to 'Master/texmf-dist/tex/generic/genmisc/arabic.tex')
-rw-r--r-- | Master/texmf-dist/tex/generic/genmisc/arabic.tex | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/genmisc/arabic.tex b/Master/texmf-dist/tex/generic/genmisc/arabic.tex new file mode 100644 index 00000000000..acba65e59f0 --- /dev/null +++ b/Master/texmf-dist/tex/generic/genmisc/arabic.tex @@ -0,0 +1,55 @@ +%-------------------------------------------- +% Ole Michael Selberg, October 5, 1995 +% TeX macros to make a Roman number Arabic +% +% Syntax: \arabicnumeral <Roman number > +%-------------------------------------------- +\catcode`@=11 +\newcount\r@mancount \newcount\current \newcount\previous +\def\@valueofcurrent{% + \ifx\next i\global\current=1 \else + \ifx\next v\global\current=5 \else + \ifx\next x\global\current=10 \else + \ifx\next l\global\current=50 \else + \ifx\next c\global\current=100 \else + \ifx\next d\global\current=500 \else + \ifx\next m\global\current=1000 \else + \global\r@mancount=-100000 + \immediate\write16{Line \the\inputlineno: non-Roman digit!} + \fi\fi\fi\fi\fi\fi\fi} +\def\stop{\stop} +\def\arabicnumeral #1 {\r@mancount=0 \current=0 \previous=10000 + \fr@mroman#1\stop} +\def\fr@mroman {\afterassignment\@testchar\let\next} +\def\@testchar{% + \ifx\next\stop + \ifnum\r@mancount<0 (Wrong Roman numeral: ???) + \else + \the\r@mancount + \fi + \let\next\relax + \else \@valueofcurrent + \advance\r@mancount by\current + \ifnum\previous<\current + \multiply\previous by2 + \advance\r@mancount by -\previous + \fi + \let\next\fr@mroman + \fi + \previous=\current + \next} +\catcode`@=12 +\endinput + + +--------------------------------------------------------------------------- +Ole Michael Selberg, +Institutt for oesteuropeiske og orientalske studier +Universitetet i Oslo +Pb. 1030 Blindern +N-0315 Oslo + +Phone: (47) 22 85 67 94 +Fax: (47) 22 85 41 40 + + |