diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/armenian/armtex.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/armenian/armtex.sty | 962 |
1 files changed, 962 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/armenian/armtex.sty b/Master/texmf-dist/tex/latex/armenian/armtex.sty new file mode 100644 index 00000000000..4b3e97aff2f --- /dev/null +++ b/Master/texmf-dist/tex/latex/armenian/armtex.sty @@ -0,0 +1,962 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% This is the `armtex.sty' file (LaTeX package for writing in Armenian). +%% +%% This file is a part of the ArmTeX project [2014/04/09 v3.0-beta3] +%% +%% ArmTeX is a system for writing in Armenian with plain TeX and/or LaTeX(2e). +%% +%% Copyright 1997 - 2013: +%% Serguei Dachian (Serguei.Dachian_AT_math.univ-bpclermont.fr), +%% Arnak Dalalyan (arnak.dalalyan_AT_ensae.fr), +%% Vardan Akopian (vakopian_AT_yahoo.com). +%% +%% ArmTeX 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 +%% 2005/12/01 or later. +%% +%% ArmTeX has the LPPL maintenance status `author-maintained'. +%% +%% For more details, installation instructions and the complete list of files +%% see the provided `readme.txt' file. +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%% Double input protection. +%% +\expandafter\ifx\csname ArmTeX@ArmTeXLoaded\endcsname\relax + \let\ArmTeX@ArmTeXLoaded\null\else\endinput\fi + + +%% Begining of the code. +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{armtex} + [2014/04/09 v3.0-beta3 armtex.sty (LaTeX package for writing in Armenian)] +\RequirePackage{kvoptions} + + +%% Options processing. +%% +\newif\ifArmTeX@Main +\global\ArmTeX@Maintrue +\DeclareVoidOption{latin}{\global\ArmTeX@Mainfalse} +\DeclareVoidOption{notstar}{\global\let\ArmTeX@Notstar\null} +\DeclareVoidOption{notbar}{\global\let\ArmTeX@Notbar\null} +\DeclareVoidOption{notexclam}{\global\let\ArmTeX@Notexclam\null} +\DeclareVoidOption{notdots}{\global\let\ArmTeX@Notdots\null} +\DeclareVoidOption{safe}{\global\let\ArmTeX@Notstar\null + \global\let\ArmTeX@Notbar\null + \global\let\ArmTeX@Notexclam\null + \global\let\ArmTeX@Notdots\null} +\DeclareStringOption[1]{loosespace}[6] +\ProcessKeyvalOptions* + + +%% Loading encoding definition file. +%% +\InputIfFileExists{ot6enc.def}{} + {\PackageError{ArmTeX} + {Encoding definition file `ot6enc.def' not found.\MessageBreak + Check your installation} + {It seems that there is a problem with your installation.\MessageBreak + Normally the file `ot6enc.def' should have been present on your system.\MessageBreak + But apparently it isn't !!!\MessageBreak + It is better to stop at this point and to check your installation.}} + + +%% Some auxilliary macros. +%% +\def\ArmTeX@Armencoding{OT6} +\def\ArmTeX@Armfamily{cmr} +\def\ArmTeX@Armseries{m} +\def\ArmTeX@Armshape{n} +\def\ArmTeX@Armnormalfont{\usefont\ArmTeX@Armencoding + \ArmTeX@Armfamily + \ArmTeX@Armseries + \ArmTeX@Armshape + \relax} +\def\ArmTeX@Savednormalfont{\usefont\ArmTeX@Savedencoding + \ArmTeX@Savedfamily + \ArmTeX@Savedseries + \ArmTeX@Savedshape + \relax} +\def\ArmTeX@Armdischyph{\discretionary{\char123}{}{}} +\def\ArmTeX@MathError#1{% + \PackageError{ArmTeX} + {The command \protect #1 is not available in math mode} + {You have used the command \protect #1 in math mode.\MessageBreak + But it can only be used in text mode.}} +\def\ArmTeX@CtError{% + \PackageError{ArmTeX} + {Bad counter value in \protect\alph\space or in \protect\Alph} + {In Armenian mode \protect\alph\space and \protect\Alph\space can\MessageBreak + only treat integers between 1 and 36.}} +\def\@armalph#1{\ifcase#1\ArmTeX@CtError\or + \armayb\or + \armben\or + \armgim\or + \armda\or + \armyech\or + \armza\or + \arme\or + \armat\or + \armto\or + \armzhe\or + \armini\or + \armlyun\or + \armkhe\or + \armtsa\or + \armken\or + \armho\or + \armdza\or + \armghat\or + \armtche\or + \armmen\or + \armhi\or + \armnu\or + \armsha\or + \armvo\or + \armcha\or + \armpe\or + \armje\or + \armra\or + \armse\or + \armvev\or + \armtyun\or + \armre\or + \armtso\or + \armvovyun\or + \armpyur\or + \armke + \else + \ArmTeX@CtError + \fi +} +\def\@Armalph#1{\ifcase#1\ArmTeX@CtError\or + \Armayb\or + \Armben\or + \Armgim\or + \Armda\or + \Armyech\or + \Armza\or + \Arme\or + \Armat\or + \Armto\or + \Armzhe\or + \Armini\or + \Armlyun\or + \Armkhe\or + \Armtsa\or + \Armken\or + \Armho\or + \Armdza\or + \Armghat\or + \Armtche\or + \Armmen\or + \Armhi\or + \Armnu\or + \Armsha\or + \Armvo\or + \Armcha\or + \Armpe\or + \Armje\or + \Armra\or + \Armse\or + \Armvev\or + \Armtyun\or + \Armre\or + \Armtso\or + \Armvovyun\or + \Armpyur\or + \Armke + \else + \ArmTeX@CtError + \fi +} +\def\ArmTeX@Armrefname{\Armho\armghat\armvo\armvyun\armmen\armnu \armyech + \armre} +\def\ArmTeX@Armabstractname{\Armse\armyech\armghat\armmen\armayb\armgim + \armini\armre} +\def\ArmTeX@Armbibname{\Armgim\armre\armayb\armken\armayb\armnu\armvo\armvyun + \armto\armhi\armvo\armvyun\armnu} +\def\ArmTeX@Armprefacename{\Armnu\armayb\armkhe\armayb\armben\armayb\armnu} +\def\ArmTeX@Armchaptername{\Armgim\armlyun\armvo\armvyun\armkhe} +\def\ArmTeX@Armappendixname{\Armho\armayb\armvev\armyech\armlyun\armvev + \armayb\armtsa} +\def\ArmTeX@Armcontentsname{\Armben\armvo\armvev\armayb\armnu\armda\armayb + \armken\armvo\armvyun\armto\armhi\armvo\armvyun\armnu} +\def\ArmTeX@Armlistfigurename{\Armnu\armken\armayb\armre\armnu\armyech\armre + \armini\ \armtso\armayb\armnu\armken} +\def\ArmTeX@Armlisttablename{\Armayb\armghat\armhi\armvo\armvyun\armse\armayb + \armken\armnu\armyech\armre\armini\ \armtso\armayb\armnu\armken} +\def\ArmTeX@Armindexname{\Armayb\armra\armayb\armre\armken\armayb\armhi + \armayb\armken\armayb\armnu\ \armtso\armayb\armnu\armken} +\def\ArmTeX@Armfigurename{\Armnu\armken\armayb\armre} +\def\ArmTeX@Armtablename{\Armayb\armghat\armhi\armvo\armvyun\armse\armayb + \armken} +\def\ArmTeX@Armpartname{\Armmen\armayb\armse} +\def\ArmTeX@Armpagename{\arme\armje} +\def\ArmTeX@Armseename{{\aritshape\armtyun\armyech\armaccent\armse}} +\def\ArmTeX@Armalsoname{{\aritshape\armtyun\armyech\armaccent\armse\ \armnu + \armayb\armew}} +% +% False argument gobbles ":", and so we can use "\armsep" instead. +\def\ArmTeX@Armenclname#1{\Armken\armini\armtso\armsep} +% +% False argument gobbles ":", and so we can use "\armsep" instead. +\def\ArmTeX@Armccname#1{\Armken\armre\armken\armnu\armo\armre\armini\armnu + \armayb\armken\armat\armsep} +% +% The \headtoname is empty: the typesetter should use the dative (trakan +% holov) of the recipient's name. +% False argument gobbles "{}" (or "\ ") and we ignore the following spaces. +\def\ArmTeX@Armheadtoname#1{\ignorespaces} +\def\ArmTeX@Armproofname{\Armayb\armpe\armayb\armtso\armvo\armvyun\armhi + \armtso}% for AMS-\LaTeX +\def\ArmTeX@Armglossaryname{\Armtyun\armyech\armre\armmen\armini\armnu\armnu + \armyech\armre\armini\ \armtso\armayb\armnu\armken} + + +%% User macros. +%% +\def\armtoday{\number\day\armendash\armat\ \ifcase\month\or + \armho\armvo\armvyun\armnu\-\armvev\armayb\-\armre\armini\or + \armpyur\armyech\armtyun\armre\armvev\armayb\-\armre\armini\or + \armmen\armayb\armre\-\armtyun\armini\or + \armayb\armpe\-\armre\armini\-\armlyun\armini\or + \armmen\armayb\-\armhi\armini\-\armse\armini\or + \armho\armvo\armvyun\-\armnu\armini\-\armse\armini\or + \armho\armvo\armvyun\-\armlyun\armini\-\armse\armini\or + \armo\-\armgim\armvo\armse\-\armtyun\armvo\-\armse\armini\or + \armse\armyech\armpe\-\armtyun\armyech\armmen\-\armben\armyech\-\armre + \armini\or + \armho\armvo\armken\-\armtyun\armyech\armmen\-\armben\armyech\-\armre + \armini\or + \armnu\armvo\-\armhi\armyech\armmen\-\armben\armyech\-\armre\armini\or + \armda\armyech\armken\-\armtyun\armyech\armmen\-\armben\armyech\-\armre + \armini + \fi\ \number\year~\armto\armdot} +\def\armdate{\let\today\armtoday} +\def\armdateoff{\let\today\ArmTeX@Savedtoday} +\def\armhyph{\let\-\ArmTeX@Armdischyph + \let\@dischyph\ArmTeX@Armdischyph} +\def\armhyphoff{\let\-\ArmTeX@Saveddischyph + \let\@dischyph\ArmTeX@Saveddischyph} +\def\armalph#1{\expandafter\@armalph\csname c@#1\endcsname} +\def\Armalph#1{\expandafter\@Armalph\csname c@#1\endcsname} +\def\armalphs{\let\@alph\@armalph + \let\@Alph\@Armalph} +\def\armalphsoff{\let\@alph\ArmTeX@Saved@alph + \let\@Alph\ArmTeX@Saved@Alph} +\def\armnames{% + \let\refname\ArmTeX@Armrefname + \let\abstractname\ArmTeX@Armabstractname + \let\bibname\ArmTeX@Armbibname + \let\prefacename\ArmTeX@Armprefacename + \let\chaptername\ArmTeX@Armchaptername + \let\appendixname\ArmTeX@Armappendixname + \let\contentsname\ArmTeX@Armcontentsname + \let\listfigurename\ArmTeX@Armlistfigurename + \let\listtablename\ArmTeX@Armlisttablename + \let\indexname\ArmTeX@Armindexname + \let\figurename\ArmTeX@Armfigurename + \let\tablename\ArmTeX@Armtablename + \let\partname\ArmTeX@Armpartname + \let\pagename\ArmTeX@Armpagename + \let\seename\ArmTeX@Armseename + \let\alsoname\ArmTeX@Armalsoname + \let\enclname\ArmTeX@Armenclname + \let\ccname\ArmTeX@Armccname + \let\headtoname\ArmTeX@Armheadtoname + \let\proofname\ArmTeX@Armproofname + \let\glossaryname\ArmTeX@Armglossaryname +} +\def\armnamesoff{% + \let\refname\ArmTeX@Savedrefname + \let\abstractname\ArmTeX@Savedabstractname + \let\bibname\ArmTeX@Savedbibname + \let\prefacename\ArmTeX@Savedprefacename + \let\chaptername\ArmTeX@Savedchaptername + \let\appendixname\ArmTeX@Savedappendixname + \let\contentsname\ArmTeX@Savedcontentsname + \let\listfigurename\ArmTeX@Savedlistfigurename + \let\listtablename\ArmTeX@Savedlisttablename + \let\indexname\ArmTeX@Savedindexname + \let\figurename\ArmTeX@Savedfigurename + \let\tablename\ArmTeX@Savedtablename + \let\partname\ArmTeX@Savedpartname + \let\pagename\ArmTeX@Savedpagename + \let\seename\ArmTeX@Savedseename + \let\alsoname\ArmTeX@Savedalsoname + \let\enclname\ArmTeX@Savedenclname + \let\ccname\ArmTeX@Savedccname + \let\headtoname\ArmTeX@Savedheadtoname + \let\proofname\ArmTeX@Savedproofname + \let\glossaryname\ArmTeX@Savedglossaryname +} +\def\armfontsdefault{% + \let\encodingdefault\ArmTeX@Armencoding + \let\familydefault\ArmTeX@Armfamily + \let\seriesdefault\ArmTeX@Armseries + \let\shapedefault\ArmTeX@Armshape +} +\def\armfontsdefaultoff{% + \let\encodingdefault\ArmTeX@Savedencoding + \let\familydefault\ArmTeX@Savedfamily + \let\seriesdefault\ArmTeX@Savedseries + \let\shapedefault\ArmTeX@Savedshape +} +\DeclareRobustCommand{\?}{\ifmmode\ArmTeX@MathError{\?}\else + \textquestion\fi} +\DeclareRobustCommand{\ArmTeX}{{\artmfamily + \def\ArmTeX@testa{it}\ifx\f@shape\ArmTeX@testa\arslshape\fi + A\kern -0.08ex\raise 0.63ex\hbox{\smash{r}}\kern -0.22em% + \def\ArmTeX@testa{sl}\ifx\f@shape\ArmTeX@testa\kern -0.075em\fi + \def\ArmTeX@testa{m}\ifx\f@series\ArmTeX@testa\else\kern -0.015em\fi + \lower 0.43ex\hbox{m}\kern -0.16em\fontencoding\ArmTeX@Savedencoding + \fontfamily\ArmTeX@Savedfamily + \def\ArmTeX@testa{sl}\ifx\f@shape\ArmTeX@testa\slshape\else\upshape\fi + \def\ArmTeX@testa{m}\ifx\f@series\ArmTeX@testa\mdseries\else\bfseries\fi + \selectfont\TeX}} +\DeclareRobustCommand{\latArmTeX}{{\aroff + \edef\ArmTeX@testa{\itdefault}\ifx\f@shape\ArmTeX@testa\slshape\fi + Arm\kern -0.15em\edef\ArmTeX@testa{\mddefault}% + \ifx\f@series\ArmTeX@testa\else\kern 0.03em\fi\TeX}} + + +%% At begining of the document. +%% +\AtBeginDocument{ +% +% Cheking if OT6 is not already loaded. +% +\ifx\encodingdefault\ArmTeX@Armencoding + \PackageError{armtex} + {Encoding definition file `ot6enc.def' already loaded.\MessageBreak + You should not load it with the help of\MessageBreak + `fontenc' package if you use `armtex' package} + {You must have put something like \protect\usepackage[T1,T3,OT6]{fontenc}\MessageBreak + in the preambule of your document.\MessageBreak + Removing `OT6' from the list of options (or removing the whole\MessageBreak + `fontenc' package, if you don't need it) will solve the problem.} +\fi +% +% Do some savings. +% +\let\ArmTeX@Savedexclam\!% +\let\ArmTeX@Savedbar\|% +\let\ArmTeX@Savedstar\*% +\let\ArmTeX@Saveddischyph\-% +\let\ArmTeX@Savedtoday\today +\let\ArmTeX@Savedencoding\encodingdefault +\let\ArmTeX@Savedfamily\familydefault +\let\ArmTeX@Savedseries\seriesdefault +\let\ArmTeX@Savedshape\shapedefault +\let\ArmTeX@Savedrefname\refname +\let\ArmTeX@Savedabstractname\abstractname +\let\ArmTeX@Savedbibname\bibname +\let\ArmTeX@Savedprefacename\prefacename +\let\ArmTeX@Savedchaptername\chaptername +\let\ArmTeX@Savedappendixname\appendixname +\let\ArmTeX@Savedcontentsname\contentsname +\let\ArmTeX@Savedlistfigurename\listfigurename +\let\ArmTeX@Savedlisttablename\listtablename +\let\ArmTeX@Savedindexname\indexname +\let\ArmTeX@Savedfigurename\figurename +\let\ArmTeX@Savedtablename\tablename +\let\ArmTeX@Savedpartname\partname +\let\ArmTeX@Savedpagename\pagename +\let\ArmTeX@Savedseename\seename +\let\ArmTeX@Savedalsoname\alsoname +\let\ArmTeX@Savedenclname\enclname +\let\ArmTeX@Savedccname\ccname +\let\ArmTeX@Savedheadtoname\headtoname +\let\ArmTeX@Savedproofname\proofname +\let\ArmTeX@Savedglossaryname\glossaryname +\let\ArmTeX@Saved@alph\@alph +\let\ArmTeX@Saved@Alph\@Alph +% +% Processing Options. +% +\ifArmTeX@Main + \armdate + \armhyph + \armalphs + \armnames + \armfontsdefault + \ArmTeX@Armnormalfont +\fi +% +\ifx\ArmTeX@Notstar\null\else + \DeclareRobustCommand{\*}{\ifmmode\ArmTeX@Savedstar\else + \armbl\fi}% +\fi +% +\ifx\ArmTeX@Notexclam\null\else + \DeclareRobustCommand{\!}{\ifmmode\ArmTeX@Savedexclam\else + \textexclam\fi}% +\fi +% +\ifx\ArmTeX@Notbar\null\else + \DeclareRobustCommand{\|}{\ifmmode\ArmTeX@Savedbar\else + \armemdash\fi}% +\fi +% +\ifx\ArmTeX@Notdots\null\else + \def\vdots{\vbox{\baselineskip4\p@ \lineskiplimit\z@ + \kern6\p@\hbox{$\ldotp$}\hbox{$\ldotp$}\hbox{$\ldotp$}}}% + \def\ddots{\mathinner{\mkern1mu\raise7\p@ + \vbox{\kern7\p@\hbox{$\ldotp$}}\mkern2mu + \raise4\p@\hbox{$\ldotp$}\mkern2mu\raise\p@\hbox{$\ldotp$}\mkern1mu}}% +\fi +} + + +%% Encoding/font MATH selection user macros. +%% +\DeclareMathAlphabet{\mathartm}{OT6}{cmr}{m}{n} +\SetMathAlphabet{\mathartm}{bold}{OT6}{cmr}{bx}{n} +\DeclareMathAlphabet{\mathartmbf}{OT6}{cmr}{bx}{n} +\DeclareMathAlphabet{\mathartmit}{OT6}{cmr}{m}{it} +\SetMathAlphabet{\mathartmit}{bold}{OT6}{cmr}{bx}{it} +\DeclareMathAlphabet{\mathartmbfit}{OT6}{cmr}{bx}{it} + + +%% Encoding/font TEXT selection orthogonal user macros. +%% +\DeclareRobustCommand{\aroff}{% + \ifx\f@encoding\ArmTeX@Armencoding\ArmTeX@Savednormalfont + \armhyphoff\fi}% +% +\providecommand{\ArmTeX@OrthoFontDef}[3]{% + \DeclareRobustCommand{#1}{% + \ifmmode\ArmTeX@MathError{#1}\else + \ifx\f@encoding\ArmTeX@Armencoding\else + \ArmTeX@Armnormalfont\armhyph + \fi + #3\selectfont + \fi}% + \DeclareTextFontCommand{#2}{#1}} +% +\ArmTeX@OrthoFontDef{\artmfamily}{\armtm}{\fontfamily{cmr}} +\ArmTeX@OrthoFontDef{\arssfamily}{\armss}{\fontfamily{cmss}} +\ArmTeX@OrthoFontDef{\arbfseries}{\armbf}{\fontseries{bx}} +\ArmTeX@OrthoFontDef{\armdseries}{\armmd}{\fontseries{m}} +\ArmTeX@OrthoFontDef{\arupshape}{\armup}{\fontshape{n}} +\ArmTeX@OrthoFontDef{\aritshape}{\armit}{\fontshape{it}} +\ArmTeX@OrthoFontDef{\arslshape}{\armsl}{\fontshape{sl}} + + +%% Encoding/font TEXT selection NON-orthogonal commands +%% + +% Old-style armenian commands used in plain version. +% +\providecommand{\ArmTeX@OldArmFontDef}[3]{% + \DeclareOldFontCommand{#1}{% + \ifx\f@encoding\ArmTeX@Armencoding\else\armhyph\fi + \ArmTeX@Armnormalfont #2\selectfont}{#3}} +% +\ArmTeX@OldArmFontDef{\artm}{\fontfamily{cmr}} + {\mathartm} +\ArmTeX@OldArmFontDef{\arss}{\fontfamily{cmss}} + {\ArmTeX@MathError{\arss}} +\ArmTeX@OldArmFontDef{\artmbf}{\fontfamily{cmr}\fontseries{bx}} + {\mathartmbf} +\ArmTeX@OldArmFontDef{\arssbf}{\fontfamily{cmss}\fontseries{bx}} + {\ArmTeX@MathError{\arssbf}} +\ArmTeX@OldArmFontDef{\artmit}{\fontfamily{cmr}\fontshape{it}} + {\mathartmit} +\ArmTeX@OldArmFontDef{\artmsl}{\fontfamily{cmr}\fontshape{sl}} + {\ArmTeX@MathError{\artmsl}} +\ArmTeX@OldArmFontDef{\arsssl}{\fontfamily{cmss}\fontshape{sl}} + {\ArmTeX@MathError{\arsssl}} +\ArmTeX@OldArmFontDef{\artmbfit}{\fontfamily{cmr}\fontshape{it}\fontseries{bx}} + {\mathartmbfit} +\ArmTeX@OldArmFontDef{\artmbfsl}{\fontfamily{cmr}\fontshape{sl}\fontseries{bx}} + {\ArmTeX@MathError{\artmbfsl}} +\ArmTeX@OldArmFontDef{\arssbfsl}{\fontfamily{cmss}\fontshape{sl}\fontseries{bx}} + {\ArmTeX@MathError{\arssbfsl}} + +% Old-style NON-armenian commands (probably redefining, if +% already defined in class). +% +\providecommand{\ArmTeX@OldNonArmFontDef}[3]{% + \DeclareOldFontCommand{#1}{% + \ifx\f@encoding\ArmTeX@Armencoding\armhyphoff\fi + \ArmTeX@Savednormalfont #2}{#3}} +% +\ArmTeX@OldNonArmFontDef{\rm}{\rmfamily}{\mathrm} +\ArmTeX@OldNonArmFontDef{\sf}{\sffamily}{\mathsf} +\ArmTeX@OldNonArmFontDef{\tt}{\ttfamily}{\mathtt} +\ArmTeX@OldNonArmFontDef{\bf}{\bfseries}{\mathbf} +\ArmTeX@OldNonArmFontDef{\it}{\itshape}{\mathit} +\ArmTeX@OldNonArmFontDef{\sl}{\slshape}{\ArmTeX@MathError{\sl}} +\ArmTeX@OldNonArmFontDef{\sc}{\scshape}{\ArmTeX@MathError{\sc}} + + +%% Armenian numerals related macros. +%% +\newcount\armnumeralcount +\newcount\armnu@cta +\newcount\armnu@ctb +\newcount\armnu@ctc +\def\armnu@gobcha{\let\armnu@cha= } +\def\armnu@gobchb{\let\armnu@chb= } +\def\armnu@skip#1\armnu@nil{\relax} + +% Arabic to Armenian macro (\armnumeral). +% +\def\armnu@units{\ifcase\armnu@cta\or + \Armayb\or + \Armben\or + \Armgim\or + \Armda\or + \Armyech\or + \Armza\or + \Arme\or + \Armat\or + \Armto\fi +} + +\def\armnu@tens{\ifcase\armnu@cta\or + \Armzhe\or + \Armini\or + \Armlyun\or + \Armkhe\or + \Armtsa\or + \Armken\or + \Armho\or + \Armdza\or + \Armghat\fi +} + +\def\armnu@hundreds{\ifcase\armnu@cta\or + \Armtche\or + \Armmen\or + \Armhi\or + \Armnu\or + \Armsha\or + \Armvo\or + \Armcha\or + \Armpe\or + \Armje\fi +} + +\def\armnu@thousands{\ifcase\armnu@cta\or + \Armra\or + \Armse\or + \Armvev\or + \Armtyun\or + \Armre\or + \Armtso\or + \Armvyun\or + \Armpyur\or + \Armke\fi +} + +\def\armnumeral@base#1{% + \armnu@cta = #1 + \armnu@ctb = #1 + \divide\armnu@cta by 1000 + \armnu@thousands + \multiply\armnu@cta by -1000 + \advance\armnu@ctb by \armnu@cta + \armnu@cta=\armnu@ctb + \divide\armnu@cta by 100 + \armnu@hundreds + \multiply\armnu@cta by -100 + \advance\armnu@ctb by \armnu@cta + \armnu@cta=\armnu@ctb + \divide\armnu@cta by 10 + \armnu@tens + \multiply\armnu@cta by -10 + \advance\armnu@ctb by \armnu@cta + \armnu@cta=\armnu@ctb + \armnu@units +} + +\def\armnumeral@aux{\afterassignment\armnumeral@loop\armnu@gobcha} + +\def\armnumeral@loop{% + \let\armnu@next=\armnumeral@aux + \ifx\armnu@cha\armnu@nil + \let\armnu@next=\relax + \else + \advance\armnumeralcount by 1 + \if 0\armnu@cha + \else + \let\armnu@tmpb = 1\relax + \if 1\armnu@cha + \else + \if 2\armnu@cha + \else + \if 3\armnu@cha + \else + \if 4\armnu@cha + \else + \if 5\armnu@cha + \else + \if 6\armnu@cha + \else + \if 7\armnu@cha + \else + \if 8\armnu@cha + \else + \if 9\armnu@cha + \else + \let\armnu@tmpb = 0\relax + \let\armnu@next=\armnu@skip + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi + \fi + \armnu@next +} + +\def\armnumeral@auxbis#1{% + \ifnum\armnumeralcount = 0 + \hbox{\vphantom{\Armho}\armnumeral@base{#1}\vphantom{\Armnu}}% + \else + \advance\armnumeralcount by -1 + \hbox{$\overline{\hbox{\armnumeral@auxbis{#1}}}\m@th$}% + \fi +} + +\def\armnumeral@loopbis#1#2#3#4#5\armnu@nil{% + \armnumeralcount=\armnu@ctc + \ifnum\armnu@ctc > 0 + \armnumeral@auxbis{#1#2#3#4}% + \advance\armnu@ctc by -1 + \armnumeral@loopbis #5\armnu@nil + \else + \armnumeral@auxbis{#1#2#3#4}% + \fi +} + +\def\armnumeral#1{\edef\armnu@tmpa{#1}\armnumeralcount = 0 + \let\armnu@tmpb = 0\relax + \expandafter\armnumeral@aux\armnu@tmpa\armnu@nil + \if 0\armnu@tmpb + \PackageError{ArmTeX} + {Invalid argument in \protect\armnumeral} + {The argument of \protect\armnumeral\space must be\MessageBreak + a strictly positive decimal integer.}% + \else + \leavevmode + \armnu@ctc=\armnumeralcount + \divide\armnu@ctc by 4 + \multiply\armnu@ctc by -4 + \advance\armnumeralcount by \armnu@ctc + \divide\armnu@ctc by -4 + \ifnum\armnumeralcount = 0 + \advance\armnu@ctc by -1 + \fi + \edef\armnu@tmpa{\ifcase\armnumeralcount\or000\or00\or0\fi #1}% + \expandafter\armnumeral@loopbis\armnu@tmpa\armnu@nil + \fi +} + +% Armenian to Arabic macro (\unarmnumeral). +% +\def\armnu@setchb#1{\edef\armnu@tmpb{#1}\expandafter\armnu@gobchb\armnu@tmpb} + +\def\armnu@chaval{% + \armnu@setchb{\Armayb}\ifx\armnu@cha\armnu@chb + \armnu@cta = 0\armnu@ctb = 1 + \else + \armnu@setchb{\Armben}\ifx\armnu@cha\armnu@chb + \armnu@cta = 0\armnu@ctb = 2 + \else + \armnu@setchb{\Armgim}\ifx\armnu@cha\armnu@chb + \armnu@cta = 0\armnu@ctb = 3 + \else + \armnu@setchb{\Armda}\ifx\armnu@cha\armnu@chb + \armnu@cta = 0\armnu@ctb = 4 + \else + \armnu@setchb{\Armyech}\ifx\armnu@cha\armnu@chb + \armnu@cta = 0\armnu@ctb = 5 + \else + \armnu@setchb{\Armza}\ifx\armnu@cha\armnu@chb + \armnu@cta = 0\armnu@ctb = 6 + \else + \armnu@setchb{\Arme}\ifx\armnu@cha\armnu@chb + \armnu@cta = 0\armnu@ctb = 7 + \else + \armnu@setchb{\Armat}\ifx\armnu@cha\armnu@chb + \armnu@cta = 0\armnu@ctb = 8 + \else + \armnu@setchb{\Armto}\ifx\armnu@cha\armnu@chb + \armnu@cta = 0\armnu@ctb = 9 + \else + \armnu@setchb{\Armzhe}\ifx\armnu@cha\armnu@chb + \armnu@cta = 1\armnu@ctb = 10 + \else + \armnu@setchb{\Armini}\ifx\armnu@cha\armnu@chb + \armnu@cta = 1\armnu@ctb = 20 + \else + \armnu@setchb{\Armlyun}\ifx\armnu@cha\armnu@chb + \armnu@cta = 1\armnu@ctb = 30 + \else + \armnu@setchb{\Armkhe}\ifx\armnu@cha\armnu@chb + \armnu@cta = 1\armnu@ctb = 40 + \else + \armnu@setchb{\Armtsa}\ifx\armnu@cha\armnu@chb + \armnu@cta = 1\armnu@ctb = 50 + \else + \armnu@setchb{\Armken}\ifx\armnu@cha\armnu@chb + \armnu@cta = 1\armnu@ctb = 60 + \else + \armnu@setchb{\Armho}\ifx\armnu@cha\armnu@chb + \armnu@cta = 1\armnu@ctb = 70 + \else + \armnu@setchb{\Armdza}\ifx\armnu@cha\armnu@chb + \armnu@cta = 1\armnu@ctb = 80 + \else + \armnu@setchb{\Armghat}\ifx\armnu@cha\armnu@chb + \armnu@cta = 1\armnu@ctb = 90 + \else + \armnu@setchb{\Armtche}\ifx\armnu@cha\armnu@chb + \armnu@cta = 2\armnu@ctb = 100 + \else + \armnu@setchb{\Armmen}\ifx\armnu@cha\armnu@chb + \armnu@cta = 2\armnu@ctb = 200 + \else + \armnu@setchb{\Armhi}\ifx\armnu@cha\armnu@chb + \armnu@cta = 2\armnu@ctb = 300 + \else + \armnu@setchb{\Armnu}\ifx\armnu@cha\armnu@chb + \armnu@cta = 2\armnu@ctb = 400 + \else + \armnu@setchb{\Armsha}\ifx\armnu@cha\armnu@chb + \armnu@cta = 2\armnu@ctb = 500 + \else + \armnu@setchb{\Armvo}\ifx\armnu@cha\armnu@chb + \armnu@cta = 2\armnu@ctb = 600 + \else + \armnu@setchb{\Armcha}\ifx\armnu@cha\armnu@chb + \armnu@cta = 2\armnu@ctb = 700 + \else + \armnu@setchb{\Armpe}\ifx\armnu@cha\armnu@chb + \armnu@cta = 2\armnu@ctb = 800 + \else + \armnu@setchb{\Armje}\ifx\armnu@cha\armnu@chb + \armnu@cta = 2\armnu@ctb = 900 + \else + \armnu@setchb{\Armra}\ifx\armnu@cha\armnu@chb + \armnu@cta = 3\armnu@ctb = 1000 + \else + \armnu@setchb{\Armse}\ifx\armnu@cha\armnu@chb + \armnu@cta = 3\armnu@ctb = 2000 + \else + \armnu@setchb{\Armvev}\ifx\armnu@cha\armnu@chb + \armnu@cta = 3\armnu@ctb = 3000 + \else + \armnu@setchb{\Armtyun}\ifx\armnu@cha\armnu@chb + \armnu@cta = 3\armnu@ctb = 4000 + \else + \armnu@setchb{\Armre}\ifx\armnu@cha\armnu@chb + \armnu@cta = 3\armnu@ctb = 5000 + \else + \armnu@setchb{\Armtso}\ifx\armnu@cha\armnu@chb + \armnu@cta = 3\armnu@ctb = 6000 + \else + \armnu@setchb{\Armvyun}\ifx\armnu@cha\armnu@chb + \armnu@cta = 3\armnu@ctb = 7000 + \else + \armnu@setchb{\Armpyur}\ifx\armnu@cha\armnu@chb + \armnu@cta = 3\armnu@ctb = 8000 + \else + \armnu@setchb{\Armke}\ifx\armnu@cha\armnu@chb + \armnu@cta = 3\armnu@ctb = 9000 + \else + \armnu@cta = 4 + \fi\fi\fi\fi\fi\fi\fi\fi\fi + \fi\fi\fi\fi\fi\fi\fi\fi\fi + \fi\fi\fi\fi\fi\fi\fi\fi\fi + \fi\fi\fi\fi\fi\fi\fi\fi\fi +} + +\def\unarmnumeral@aux{\afterassignment\unarmnumeral@loop\armnu@gobcha} + +\def\unarmnumeral@loop{% + \ifx\armnu@cha\armnu@nil + \let\armnu@next=\relax + \else + \armnu@chaval + \ifnum\armnu@cta<\armnu@ctc + \advance\armnumeralcount by \armnu@ctb + \armnu@ctc=\armnu@cta + \let\armnu@next=\unarmnumeral@aux + \else + \PackageError{ArmTeX} + {Invalid argument in \protect\unarmnumeral\space or in \protect\unarmnumber} + {The argument of \protect\unarmnumeral\space (or of \protect\unarmnumber) + must be\MessageBreak + a valid (non transliterated) Armenian numeral.}% + \armnumeralcount=0\relax + \let\armnu@next=\armnu@skip + \fi + \fi + \armnu@next +} + +\def\unarmnumeral@star*#1{\edef\armnu@tmpa{#1}\armnumeralcount = 0 + \armnu@ctc = 4\armnu@cta = 0\armnu@ctb = 0 + \expandafter\unarmnumeral@aux\armnu@tmpa\armnu@nil +} + +\def\unarmnumeral@nonstar#1{\unarmnumeral@star*{#1}\the\armnumeralcount} + +\let\Arm@optionalstar=*\relax +\def\unarmnumeral@auxbis{% + \ifx\Arm@nextchar\Arm@optionalstar + \expandafter\unarmnumeral@star + \else + \expandafter\unarmnumeral@nonstar + \fi +} + +\def\unarmnumeral{\futurelet\Arm@nextchar\unarmnumeral@auxbis} + +% LaTeX specific macros (\armnumber and \unarmnumber). +% +\def\armnumber#1{\expandafter\@armnumber\csname c@#1\endcsname} +\def\@armnumber#1{\armnumeral{\number #1}} +\def\unarmnumber#1#2{% + \unarmnumeral*{#1}\csname c@#2\endcsname=\armnumeralcount +} + + +%% If possible, setting up ToUnicode tables in order to make pdf files +%% generated by pdf(la)tex "searchable and copyable" in pdf viewers. +%% +\expandafter\ifx\csname pdfglyphtounicode\endcsname\relax\else +\expandafter\ifx\csname pdfgentounicode\endcsname\relax\else +\pdfgentounicode=1 + +% Upper-case letters. +% +\pdfglyphtounicode{Armayb}{0531} +\pdfglyphtounicode{Armben}{0532} +\pdfglyphtounicode{Armgim}{0533} +\pdfglyphtounicode{Armda}{0534} +\pdfglyphtounicode{Armyech}{0535} +\pdfglyphtounicode{Armza}{0536} +\pdfglyphtounicode{Arme}{0537} +\pdfglyphtounicode{Armat}{0538} +\pdfglyphtounicode{Armto}{0539} +\pdfglyphtounicode{Armzhe}{053A} +\pdfglyphtounicode{Armini}{053B} +\pdfglyphtounicode{Armlyun}{053C} +\pdfglyphtounicode{Armkhe}{053D} +\pdfglyphtounicode{Armtsa}{053E} +\pdfglyphtounicode{Armken}{053F} +\pdfglyphtounicode{Armho}{0540} +\pdfglyphtounicode{Armdza}{0541} +\pdfglyphtounicode{Armghat}{0542} +\pdfglyphtounicode{Armtche}{0543} +\pdfglyphtounicode{Armmen}{0544} +\pdfglyphtounicode{Armhi}{0545} +\pdfglyphtounicode{Armnu}{0546} +\pdfglyphtounicode{Armsha}{0547} +\pdfglyphtounicode{Armvo}{0548} +\pdfglyphtounicode{Armcha}{0549} +\pdfglyphtounicode{Armpe}{054A} +\pdfglyphtounicode{Armje}{054B} +\pdfglyphtounicode{Armra}{054C} +\pdfglyphtounicode{Armse}{054D} +\pdfglyphtounicode{Armvev}{054E} +\pdfglyphtounicode{Armtyun}{054F} +\pdfglyphtounicode{Armre}{0550} +\pdfglyphtounicode{Armtso}{0551} +\pdfglyphtounicode{Armvyun}{0552} +\pdfglyphtounicode{Armvovyun}{0548 0552} +\pdfglyphtounicode{Armpyur}{0553} +\pdfglyphtounicode{Armke}{0554} +\pdfglyphtounicode{Armo}{0555} +\pdfglyphtounicode{Armfe}{0556} + +% Lower-case letters. +% +\pdfglyphtounicode{armayb}{0561} +\pdfglyphtounicode{armben}{0562} +\pdfglyphtounicode{armgim}{0563} +\pdfglyphtounicode{armda}{0564} +\pdfglyphtounicode{armyech}{0565} +\pdfglyphtounicode{armza}{0566} +\pdfglyphtounicode{arme}{0567} +\pdfglyphtounicode{armat}{0568} +\pdfglyphtounicode{armto}{0569} +\pdfglyphtounicode{armzhe}{056A} +\pdfglyphtounicode{armini}{056B} +\pdfglyphtounicode{armlyun}{056C} +\pdfglyphtounicode{armkhe}{056D} +\pdfglyphtounicode{armtsa}{056E} +\pdfglyphtounicode{armken}{056F} +\pdfglyphtounicode{armho}{0570} +\pdfglyphtounicode{armdza}{0571} +\pdfglyphtounicode{armghat}{0572} +\pdfglyphtounicode{armtche}{0573} +\pdfglyphtounicode{armmen}{0574} +\pdfglyphtounicode{armhi}{0575} +\pdfglyphtounicode{armnu}{0576} +\pdfglyphtounicode{armsha}{0577} +\pdfglyphtounicode{armvo}{0578} +\pdfglyphtounicode{armcha}{0579} +\pdfglyphtounicode{armpe}{057A} +\pdfglyphtounicode{armje}{057B} +\pdfglyphtounicode{armra}{057C} +\pdfglyphtounicode{armse}{057D} +\pdfglyphtounicode{armvev}{057E} +\pdfglyphtounicode{armtyun}{057F} +\pdfglyphtounicode{armre}{0580} +\pdfglyphtounicode{armtso}{0581} +\pdfglyphtounicode{armvyun}{0582} +\pdfglyphtounicode{armvovyun}{0578 0582} +\pdfglyphtounicode{armpyur}{0583} +\pdfglyphtounicode{armke}{0584} +\pdfglyphtounicode{armo}{0585} +\pdfglyphtounicode{armfe}{0586} +% +% Glyphs from Armenian unicode block. +% +\pdfglyphtounicode{armfullstop}{0589} +\pdfglyphtounicode{armsep}{055D} +\pdfglyphtounicode{armyentamna}{058A} +\pdfglyphtounicode{armexclam}{055C} +\pdfglyphtounicode{armaccent}{055B} +\pdfglyphtounicode{armquestion}{055E} +\pdfglyphtounicode{armapostrophe}{055A} +\pdfglyphtounicode{armew}{0587} +\pdfglyphtounicode{armabbrev}{055F} +\pdfglyphtounicode{armnum}{0559} +\pdfglyphtounicode{armdram}{058F} + +% Other glyphs not placed in accordance with ASCII. +% +\pdfglyphtounicode{quotedblleft}{201C} +\pdfglyphtounicode{quotedblright}{201D} +\pdfglyphtounicode{armquotleft}{00AB} +\pdfglyphtounicode{armquotright}{00BB} +\pdfglyphtounicode{braceleft}{007B} +\pdfglyphtounicode{braceright}{007D} +\pdfglyphtounicode{emdash}{2014} +\pdfglyphtounicode{exclam}{0021} +\pdfglyphtounicode{question}{003F} + +% Treating the glyph armeternity (not present in unicode) as space. +% +\pdfglyphtounicode{armeternity}{0020} +\fi +\fi + + +%% That's all, Folks! +%% +\endinput |