%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%                impression de hieroglyphes en LaTeX
%                Hieroglyphs Writing in LaTeX  
%                All in latex poor,  man's version
%                don't use it !!!!!
%                Note that I do not support this one 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%there are two ways for hieroglyphs writing there:
% both of them are based on the
%  " Inventaire des signes hieroglyphiques en vue de leur saisie
%                             informatique "
% Jan Buurman-Nicolas Grimal-Michael Hainsworth-Jochen Hallof-
% Dirk Van Der Plas
%
% Memoires de l'Academie des Inscriptions et Belles Lettres
%
% (the text is in french, english, and german)

% * the first way: Really hard one: make a list of the fonts 
% (with "tex testfonts"), remember the number of the characters
% (less 32 !) and typeset them like below.
%
% Two signs on the same level are separated by a '-'
% a sign below another one is separated form it by a ':'
% grouping is done by { }
% 
%% Exemples de texte    
%\hieroglyphe{M/17-G/46-A/1-G/19-Y/3-Y/1:Z/2-M/17-{N/29-D/21}:Y/1}
%\hieroglyphe{{Q/3-X/1}:{N/1-N/1-N/1}}
%\hieroglyphe{{Q/3-X/1}:N/1}
%\hieroglyphe{W/26:N/35:V/31}
%\hieroglyphe{W/26:N/35:V/31-A/1-Y/3:Y/1-M/17-N/29:D/21:Y/1}

% An easier way: I am writing now a program to generate hieroglyphic
% texts. It will be an extension of the "manuel de codage" symbolism.

\input EgypUtil.sty
% Fonts definitions (quite a lot !)

% Useful symbols 
\newfont{\EgypS}{Egyp}

  \newfont{\GA}{A scaled \magstep 1}
  \newfont{\GAi}{A}
  \newfont{\GAii}{A scaled 833}
  \newfont{\GAiii}{A scaled 694}
  \newfont{\GB}{B scaled \magstep 1}
  \newfont{\GBi}{B}
  \newfont{\GBii}{B scaled 833}
  \newfont{\GBiii}{B scaled 694}
\newfont{\GC}{C scaled \magstep 1}
  \newfont{\GCi}{C}
  \newfont{\GCii}{C scaled 833}
  \newfont{\GCiii}{C scaled 694}
\newfont{\GD}{D scaled \magstep 1}
  \newfont{\GDi}{D}
  \newfont{\GDii}{D scaled 833}
  \newfont{\GDiii}{D scaled 694}
\newfont{\GE}{E scaled \magstep 1}
  \newfont{\GEi}{E}
  \newfont{\GEii}{E scaled 833}
  \newfont{\GEiii}{E scaled 694}
\newfont{\GF}{F scaled \magstep 1}
  \newfont{\GFi}{F}
  \newfont{\GFii}{F scaled 833}
  \newfont{\GFiii}{F scaled 694}
\newfont{\GG}{G scaled \magstep 1}
  \newfont{\GGi}{G}
  \newfont{\GGii}{G scaled 833}
  \newfont{\GGiii}{G scaled 694}
\newfont{\GH}{H scaled \magstep 1}
  \newfont{\GHi}{H}
  \newfont{\GHii}{H scaled 833}
  \newfont{\GHiii}{H scaled 694}
\newfont{\GI}{I scaled \magstep 1}
  \newfont{\GIi}{I}
  \newfont{\GIii}{I scaled 833}
  \newfont{\GIiii}{I scaled 694}
\newfont{\GK}{K scaled \magstep 1}
  \newfont{\GKi}{K}
  \newfont{\GKii}{K scaled 833}
  \newfont{\GKiii}{K scaled 694}
\newfont{\GL}{L scaled \magstep 1}
  \newfont{\GLi}{L}
  \newfont{\GLii}{L scaled 833}
  \newfont{\GLiii}{L scaled 694}
\newfont{\GM}{M scaled \magstep 1}
  \newfont{\GMi}{M}
  \newfont{\GMii}{M scaled 833}
  \newfont{\GMiii}{M scaled 694}
\newfont{\GN}{N scaled \magstep 1}
  \newfont{\GNi}{N}
  \newfont{\GNii}{N scaled 833}
  \newfont{\GNiii}{N scaled 694}
\newfont{\GO}{O scaled \magstep 1}
  \newfont{\GOi}{O}
  \newfont{\GOii}{O scaled 833}
  \newfont{\GOiii}{O scaled 694}
\newfont{\GP}{P scaled \magstep 1}
  \newfont{\GPi}{P}
  \newfont{\GPii}{P scaled 833}
  \newfont{\GPiii}{P scaled 694}
\newfont{\GQ}{Q scaled \magstep 1}
  \newfont{\GQi}{Q}
  \newfont{\GQii}{Q scaled 833}
  \newfont{\GQiii}{Q scaled 694}
\newfont{\GR}{R scaled \magstep 1}
  \newfont{\GRi}{R}
  \newfont{\GRii}{R scaled 833}
  \newfont{\GRiii}{R scaled 694}
\newfont{\GS}{S scaled \magstep 1}
  \newfont{\GSi}{S}
  \newfont{\GSii}{S scaled 833}
  \newfont{\GSiii}{S scaled 694}
\newfont{\GT}{T scaled \magstep 1}
  \newfont{\GTi}{T}
  \newfont{\GTii}{T scaled 833}
  \newfont{\GTiii}{T scaled 694}
\newfont{\GU}{U scaled \magstep 1}
  \newfont{\GUi}{U}
  \newfont{\GUii}{U scaled 833}
  \newfont{\GUiii}{U scaled 694}
\newfont{\GV}{V scaled \magstep 1}
  \newfont{\GVi}{V}
  \newfont{\GVii}{V scaled 833}         
  \newfont{\GViii}{V scaled 694}
\newfont{\GW}{W scaled \magstep 1}
  \newfont{\GWi}{W}
  \newfont{\GWii}{W scaled 833}
  \newfont{\GWiii}{W scaled 694}
\newfont{\GX}{X scaled \magstep 1}
  \newfont{\GXi}{X}
  \newfont{\GXii}{X scaled 833}
  \newfont{\GXiii}{X scaled 694}
\newfont{\GY}{Y scaled \magstep 1}
  \newfont{\GYi}{Y}
  \newfont{\GYii}{Y scaled 833}
  \newfont{\GYiii}{Y scaled 694}
\newfont{\GZ}{Z scaled \magstep 1}
  \newfont{\GZi}{Z}
  \newfont{\GZii}{Z scaled 833}
  \newfont{\GZiii}{Z scaled 694}
\newfont{\GAa}{Aa scaled \magstep 1}
  \newfont{\GAai}{Aa}
  \newfont{\GAaii}{Aa scaled 833}
  \newfont{\GAaiii}{Aa scaled 694}

\def\Hta{} % possible values : {} i ii iii

\newif\if@droitegauche
\@droitegauchefalse
\newif\if@xettexon
\@xettexonfalse

\def\leftright{\if@xettexon\endR\fi\beginL\@droitegauchefalse\@xettexontrue}
\def\rightleft{\if@xettexon\endL\fi\beginR\@droitegauchetrue\@xettexontrue}

% \Acv{size}part of font/number\relax => gives you a character
\def\Acv#1#2/#3\relax{%
\count0=#3%
\if@droitegauche%
\advance\count0 by 128\fi%
\hskip 0.2mm{\csname G#2#1\endcsname\char\count0}\hskip 0.2mm}


\def\Aca #1/#2/{\Acv{\Hta}#1/#2\relax}

\newdimen\Htm % maximum height of a quadra (we chosed the size
                    % of the independant pronoun(ink)
\newdimen\Htmi
\newdimen\Htmii
\newdimen\Htmiii

\setbox0=\vbox{%
\offinterlineskip%
\def\Hta{iii}%
\hbox{\Acv{\Hta}W/26\relax}%
\hbox{\Acv{\Hta}V/32\relax}%
\hbox{\Acv{\Hta}A/1\relax}}%

% if you want smaller quadra, uncomment the line below.
 \setbox0=\vbox{\hbox{\Acv{\Hta}G/1\relax}}

\Htm=\ht0
\advance\Htm by 0.025mm

\newcount\@Hauteur
\@Hauteur=0

\setbox0=\vbox{\hbox{\Acv{i}G/1\relax}}
\Htmi=\ht0
\setbox0=\vbox{\hbox{\Acv{ii}G/1\relax}}
\Htmii=\ht0
\setbox0=\vbox{\hbox{\Acv{iii}G/1\relax}}
\Htmiii=\ht0
\newdimen\@Lower
\@Lower=2mm
% Now, the cartouche 

\newdimen\epaisseur
\epaisseur=0.4mm

\def\@debutcart{\hbox{\vbox to \ht0{\hbox{1}\hbox{\vrule width \epaisseur%
height \dimen0}\hbox{2}}}}

\def\@milieucart{\copy0}

\def\@fincart{\setbox2=\hbox{\vbox to \ht0{\hbox{4}\hbox to \wd2{%
\hfil\vrule width \epaisseur height \dimen0}\hbox{3}}%
\hbox{\vbox to\ht0{\vfil\hbox{5}\vfil}}}%
\box2}%


\def\@initcart#1{%
\offinterlineskip%
\def\strut{}%
\setbox0=\hbox{\vbox{\hrule height
\epaisseur\vskip0.2ex\hbox{\Centrer #1}%
\vskip0.2ex\hrule height \epaisseur}}%
\setbox2=\vbox{\EgypS\hbox{1}\hbox{2}}%
\ifdim\ht0<\ht2%
\setbox0=\hbox{\vbox to\ht2{%
\hrule height \epaisseur\vfill%
\hbox{\Centrer #1}%
\vfill\hrule height \epaisseur}}%
\fi
\EgypS
\dimen0=\ht0%
\advance\dimen0 by -\ht2%
\setbox4=\hbox\bgroup%
}

\def\@endcartouche{%
\egroup%
\dimen0=\@Lower\advance\dimen0 by 0.2ex%
\advance\dimen0 by \epaisseur%
\raise -\dimen0\box4}

\def\cartouche#1{{\@initcart{#1}% On garde le nom, car il n'y en a pas bcp
\@debutcart\@milieucart\@fincart
\@endcartouche}}

\def\debcartouche#1{{%
\@initcart{\raise -\@Lower\hbox{\vbox to \Htm{\ }}}%
\@debutcart\@endcartouche{\Centrer #1}}}

\def\milcartouche#1{{\@initcart{#1}%
\@milieucart\@endcartouche}}

\def\fincartouche#1{{\Centrer #1%
\@initcart{\raise -\@Lower\hbox{\vbox to \Htm{\ }}}%
\@fincart\@endcartouche}}



\def\Hesp{\phantom{\Acv{\Hta}A/1\relax}} % the phantom of
                                                     % a white space

\def\Hqrtesp{\phantom{\Acv{\Hta}X/1\relax}} % the fourth
                                                          % part of a quadra

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                        Pure LaTeX system


\def\lignehA#1{\echange{-}{\relax\quadraA}{\Acv{\Hta}#1}}
\def\ligneh#1{\echange{-}{\relax\quadraA}{\Acv{\Hta}#1}}
\def\superposeA#1\relax{\hbox{\lignehA{#1}}}
\def\superpose#1\relax{\vskip 0.1mm plus 1fil\hbox to \dimen0{\hskip 0em
plus 0.25fil\ligneh{#1}\hskip 0em plus 0.25fil}}
\def\quadraA#1\relax{\hfil{\setbox0=\vbox{%
\echange{:}{\relax\superposeA}{\relax:#1\relax}%
}\hbox{\box0}}}
\def\quadra#1\relax{{\setbox0=\vbox{\offinterlineskip%
\echange{:}{\relax\superposeA}{\relax:#1\relax}}\dimen0=\wd0%
\ifdim\ht0>\Htm%
\edef\Hta{\Hta i}%
%\message{\Hta}%
\quadra#1\relax%
\else%
\setbox0=\vbox to \Htm{\offinterlineskip%
\echange{:}{\relax\vfil\superpose}{\relax\superpose#1\relax}}%
\hbox{\box0}%
\fi}}

{
\gdef\hieroglyphe#1{{%
\dimen0=\Htm%
\advance\dimen0 by 2mm%
%\hbox\vbox%
%\vskip 2mm%
\setbox0=\hbox{%
\echange{-}{\relax\quadra}{\relax-#1}}%
\sloppy\unhbox0}}}

%%%%% End of comment-able lines


\def\EnPetit#1{\bgroup\Htm\Htmi\def\Hta{i} #1\egroup}
 
\def\traittexte#1{$\stackrel{\mbox{\rm\tiny #1}}%
{\vrule width 0.05pt height 1ex}$}

\def\enrouge#1{{\setbox0=\hbox{#1}%
\dimen0=\ht0%
\advance\dimen0 by 7pt%
\raise -7pt\hbox{\vbox to \dimen0{\offinterlineskip\box0\vfil\hrule}}}}

\def\nouvLigne{\end{hieroglyph}\begin{hieroglyph}}
\def\nouvPage{\nouvLigne}

