Initial commit

master
Marvin Johanning 2020-12-27 10:16:35 +01:00
commit 06d558b466
261 changed files with 128037 additions and 0 deletions

BIN
EGypto.pdf Normal file

Binary file not shown.

BIN
HieroTeX-3.5.tgz Normal file

Binary file not shown.

Binary file not shown.

117
HieroTeX/LIZEZMOI Normal file
View File

@ -0,0 +1,117 @@
(C) 1993,1994,2002 Serge Rosmorduc
2 rue Ibsen
29200 Brest (FRANCE)
(Attention, ce fichier commence très sérieusement à dater !)
rosmord@iut.univ-paris8.fr
D'abord, la licence: Cet ensemble est distribue' sous les termes de la
licence "bibliothe`que" de GNU. Pour le redistribuer, vous devez:
* laisser ce fichier intact (en particulier mes coordonne'es)
* vous ne pouvez restreindre les droits des personnes auquelles vous les
redistribuez: C'est a` dire que vous ne pouvez pas, me^me si vous
re'alisez une extension de cet ensemble, en restreindre la distribution
* par contre, si vous e'crivez un programme qui utilise les fontes
hie'roglyphiques, vous devrez les fournir avec ledit programme,
accessibles, afin qu'on puisse les modifier. Vous n'e^tes pas force' de
fournir le source de votre programme ni de permettre que celui-ci soit
redistribuable
Ceci est une beta version d'un ensemble de fichiers
permettant de taper des textes E'gyptologiques en TeX.
Il comporte:
* des fontes diacritiques (diacr*)
* des fontes hie'roglyphiques
* des fichiers pour latex:
egypto.sty, hiero.sty, hierLtx.sty, OT1diacr.fd
egypto.sty sert a` taper des translite'rations, a` ge'rer les
re'fe'rences, a` indexer des termes, etc...
Utilisation:
*egypto.sty:
\Montitre{texte} pre'cise le titre du document.
\def\SourceTexte{texte} pre'cise le texte traduit.
\dico translit : traduction ( commentaire )
permet de donner la traduction d'un mot ; si le commentaire est
absent, les parenthe`ses doivent quand me^me exister.
La traduction est sauve'e dans un fichier dont le nom se
termine en .dic , le fichier contient e'galement les re'fe'rences
du texte.
\numligne{nombre} permet de fixer la ligne du texte e'dite'.
\numpage.............................page...................
\| incre'mente de 1 la ligne
\* ....................page
LES QUATRE COMMANDES PRECEDENTES AFFICHENT DE PLUS LA LIGNE OU LA PAGE
SELON LES FORMATS HABITUELS: LA PAGE DANS UN CARTOUCHE, LA LIGNE SUR UNE
BARRE VERTICALE.
les environnements translit et exemple:
Ils ont le me^me effet, sauf que exemple affiche exemple, et nume'rote.
Ils prennent trois arguments:
Le texte d'origine,
la page (ou : recto , verso pour un ostracon)
la ligne (ou un intervale se'pare' par un tiret)
Dans l'environnement, on peut commencer la traduction par:
\traduction.
La commande \traduction{translit}{traduction}
Elle est utilise'e pour les longues traductions ; on peut pre'ciser la
pre'sentation : soit la translite'ration puis la traduction,
soit les deux co^te a` co^te, ce qui est utile pour des poe`mes.
les signes < et > produisent des crochets.
Commandes pour la grammaire:
\zero: l'ensemble vide
\~~ un grand signe tilde.
*l'environnement gramrule:
permet de donner facilement une re`gle de grammaire:
le texte est en e'criture slanted, et un mot pre'ce'de' de ~ et suivi
d'un blanc est e'crit en translite'ration.
*l'environnement possib:
permet de de'crire une se'rie de possibilite's entre accolades.
On fera suivre chaque ligne de \\
\accolade{texte}{sous texte} permet de souligner un texte d'une accolade,
avec un commentaire en dessous (par exemple, pour marque le sujet )
\pile{texte \\ texte \\ ...\\}
permet d'empiler du texte, centre'
*LA TRANSLITERATION:
le texte est tap'e selon le manuel de codage
(i.e. A pour aleph, a pour ayn, ....)
Dans l'avenir:
Un programme pour e'crire les textes avec une facilite'
raisonnable. (probablement pour X-windows d'abord... si quelqu'un
connai^t bien le mac, c,a me serais utile)
des ame'liorations des modes latex.

292
HieroTeX/Licence Normal file
View File

@ -0,0 +1,292 @@
Sesh Nesout, a TeX package for hieroglyphic typesetting
Copyright (C) 1993,1994,2003 Serge Rosmorduc
(
S. Rosmorduc
rosmord@iut.univ-paris8.fr
)
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 1, or (at your option)
any later version.
Should you redistribute this package, you must keep
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
GNU GENERAL PUBLIC LICENSE
**************************
Version 1, February 1989
Copyright (C) 1989 Free Software Foundation, Inc.
675 Mass Ave, Cambridge, MA 02139, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
========
The license agreements of most software companies try to keep users
at the mercy of those companies. By contrast, our General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. The
General Public License applies to the Free Software Foundation's
software and to any other program whose authors commit to using it.
You can use it for your programs, too.
When we speak of free software, we are referring to freedom, not
price. Specifically, the General Public License is designed to make
sure that you have the freedom to give away or sell copies of free
software, that you receive source code or can get it if you want it,
that you can change the software or use pieces of it in new free
programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of a such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must tell them their rights.
We protect your rights with two steps: (1) copyright the software,
and (2) offer you this license which gives you legal permission to
copy, distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on,
we want its recipients to know that what they have is not the
original, so that any problems introduced by others will not reflect
on the original authors' reputations.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
1. This License Agreement applies to any program or other work which
contains a notice placed by the copyright holder saying it may be
distributed under the terms of this General Public License. The
"Program", below, refers to any such program or work, and a "work
based on the Program" means either the Program or any work
containing the Program or a portion of it, either verbatim or
with modifications. Each licensee is addressed as "you".
2. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep
intact all the notices that refer to this General Public License
and to the absence of any warranty; and give any other recipients
of the Program a copy of this General Public License along with
the Program. You may charge a fee for the physical act of
transferring a copy.
3. You may modify your copy or copies of the Program or any portion
of it, and copy and distribute such modifications under the terms
of Paragraph 1 above, provided that you also do the following:
* cause the modified files to carry prominent notices stating
that you changed the files and the date of any change; and
* cause the whole of any work that you distribute or publish,
that in whole or in part contains the Program or any part
thereof, either with or without modifications, to be
licensed at no charge to all third parties under the terms
of this General Public License (except that you may choose
to grant warranty protection to some or all third parties,
at your option).
* If the modified program normally reads commands
interactively when run, you must cause it, when started
running for such interactive use in the simplest and most
usual way, to print or display an announcement including an
appropriate copyright notice and a notice that there is no
warranty (or else, saying that you provide a warranty) and
that users may redistribute the program under these
conditions, and telling the user how to view a copy of this
General Public License.
* You may charge a fee for the physical act of transferring a
copy, and you may at your option offer warranty protection in
exchange for a fee.
Mere aggregation of another independent work with the Program
(or its derivative) on a volume of a storage or distribution
medium does not bring the other work under the scope of these
terms.
4. You may copy and distribute the Program (or a portion or
derivative of it, under Paragraph 2) in object code or executable
form under the terms of Paragraphs 1 and 2 above provided that
you also do one of the following:
* accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of
Paragraphs 1 and 2 above; or,
* accompany it with a written offer, valid for at least three
years, to give any third party free (except for a nominal
charge for the cost of distribution) a complete
machine-readable copy of the corresponding source code, to
be distributed under the terms of Paragraphs 1 and 2 above;
or,
* accompany it with the information you received as to where
the corresponding source code may be obtained. (This
alternative is allowed only for noncommercial distribution
and only if you received the program in object code or
executable form alone.)
Source code for a work means the preferred form of the work
for making modifications to it. For an executable file, complete
source code means all the source code for all modules it
contains; but, as a special exception, it need not include source
code for modules which are standard libraries that accompany the
operating system on which the executable file runs, or for
standard header files or definitions files that accompany that
operating system.
5. You may not copy, modify, sublicense, distribute or transfer the
Program except as expressly provided under this General Public
License. Any attempt otherwise to copy, modify, sublicense,
distribute or transfer the Program is void, and will
automatically terminate your rights to use the Program under this
License. However, parties who have received copies, or rights to
use copies, from you under this General Public License will not
have their licenses terminated so long as such parties remain in
full compliance.
6. By copying, distributing or modifying the Program (or any work
based on the Program) you indicate your acceptance of this
license to do so, and all its terms and conditions.
7. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program
subject to these terms and conditions. You may not impose any
further restrictions on the recipients' exercise of the rights
granted herein.
8. The Free Software Foundation may publish revised and/or new
versions of the General Public License from time to time. Such
new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies a version number of the license which applies
to it and "any later version", you have the option of following
the terms and conditions either of that version or of any later
version published by the Free Software Foundation. If the
Program does not specify a version number of the license, you may
choose any version ever published by the Free Software Foundation.
9. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to
the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free
status of all derivatives of our free software and of promoting
the sharing and reuse of software generally.
NO WARRANTY
10. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE
LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT
WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE
QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
SERVICING, REPAIR OR CORRECTION.
11. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY
MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS
OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH
ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
Appendix: How to Apply These Terms to Your New Programs
=======================================================
If you develop a new program, and you want it to be of the greatest
possible use to humanity, the best way to achieve this is to make it
free software which everyone can redistribute and change under these
terms.
To do so, attach the following notices to the program. It is
safest to attach them to the start of each source file to most
effectively convey the exclusion of warranty; and each file should
have at least the "copyright" line and a pointer to where the full
notice is found.
ONE LINE TO GIVE THE PROGRAM'S NAME AND A BRIEF IDEA OF WHAT IT DOES.
Copyright (C) 19YY NAME OF AUTHOR
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 1, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Also add information on how to contact you by electronic and paper
mail.
If the program is interactive, make it output a short notice like
this when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) 19YY NAME OF AUTHOR
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the
appropriate parts of the General Public License. Of course, the
commands you use may be called something other than `show w' and `show
c'; they could even be mouse-clicks or menu items--whatever suits your
program.
You should also get your employer (if you work as a programmer) or
your school, if any, to sign a "copyright disclaimer" for the program,
if necessary. Here a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
program `Gnomovision' (a program to direct compilers to make passes
at assemblers) written by James Hacker.
SIGNATURE OF TY COON, 1 April 1989
Ty Coon, President of Vice
That's all there is to it!

77
HieroTeX/Makefile Normal file
View File

@ -0,0 +1,77 @@
# A General makefile
include variable.mk
SRCDOC=texmf/doc/latex/hierotex
SRCFONT=texmf/fonts/source/public/hierotex
SRCSTY=texmf/tex/latex/hierotex
default :
@echo " General Sesh installation "
@echo
@echo "make tetex-install tries to install everything"
@echo "you should edit variable.mk first"
@echo
@echo "other targets : save publish"
@echo " clean -> minor cleaning, backup files"
@echo " veryclean -> intermediary files"
@echo " veryveryclean -> everything that can be built with the"
@echo " right tools"
TAR=tar -X Exclude -cvf
TARZ=tar -X Exclude -zcvf
save : ../egyptoS.tar
publish : ../HieroTeX-$(EGYPTO_USER_VERSION).tgz ../HieroType1-$(EGYPTO_USER_VERSION).tgz
../HieroType1-$(EGYPTO_USER_VERSION).tgz : FORCE distclean
$(TARZ) $@ -h -C .. \
texmf/fonts/type1 \
texmf/dvips\
texmf/pdftex
../HieroTeX-$(EGYPTO_USER_VERSION).tgz : FORCE distclean
$(TARZ) $@ -C .. HieroTeX/Seshnesu HieroTeX/texmf \
HieroTeX/LIZEZMOI HieroTeX/Licence\
HieroTeX/README_FIRST\
HieroTeX/Makefile\
HieroTeX/variable.mk
distclean: FORCE clean
-(cd Seshnesu; $(MAKE) distclean)
-(cd texmf/doc/latex/hierotex; $(MAKE) clean)
clean : FORCE
-$(RM) -f *~ "#*#"
-(cd Seshnesu; $(MAKE) clean)
-(cd texmf/doc/latex/hierotex; $(MAKE) clean)
veryclean : clean
-(cd Seshnesu; $(MAKE) veryclean)
-(cd texmf/doc/latex/hierotex; $(MAKE) veryclean)
veryveryclean : clean
-(cd Seshnesu; $(MAKE) veryclean)
-(cd texmf/doc/latex/hierotex; $(MAKE) veryveryclean)
## Makefile for a possible tetex installation
tetex-install: FORCE
(cd Seshnesu; make sesh)
-$(INSTALL) -d $(BINDIR)
-$(INSTALL) -d $(TEXSTYLE)
-$(INSTALL) -d $(TEXDOC)
-$(INSTALL) -d $(FONTDIR)/auxmf $(FONTDIR)/mf
-$(INSTALL) Seshnesu/sesh $(BINDIR)
-$(INSTALL) -m 644 $(SRCFONT)/auxmf/* $(FONTDIR)/auxmf
-$(INSTALL) -m 644 $(SRCFONT)/mf/* $(FONTDIR)/mf
-$(INSTALL) -m 644 $(SRCSTY)/* $(TEXSTYLE)
-$(INSTALL) -m 644 $(SRCDOC)/* $(TEXDOC)
texhash 2>/dev/null
FORCE :

62
HieroTeX/README_FIRST Normal file
View File

@ -0,0 +1,62 @@
Sesh Nesou, a TeX package for hieroglyphic typesetting
Copyright (C) 1993,1994,1995,2002 Serge Rosmorduc
**********************************************************************
Latest distribution available on
http://webperso.iut.univ-paris8.fr/~rosmord/archives
PLEASE ! if you use this package, send me a mail, so that :
1) I've got an idea of who use it on what machine
2) I can send you a notice when a new version comes up
**********************************************************************
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 1, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
**********************************************************************
This is a set of utilities for hieroglyphic typesetting in LaTeX.
You will find it quite changed since the previous version :
* many improvement in sesh
**********************************************************************
IMPORTANT :
Well, not so important, but : I give this program under the GNU
Licence, and I don't ask for anything... except that I'd like to know
a little what happens to my program. I'd be very glad to receive news
from you, even something short like : "I got it out of sheer
curiosity". If you use it, even a little, I'd be very glad to receive
your comments. A few demo files would also be very welcome.
**********************************************************************
To customize the Makefiles for your site, edit the file
variable.mk
in the HieroTeX directory.
Serge Rosmorduc,
rosmord@iut.univ-paris8.fr
http://www.iut.univ-paris8.fr/~rosmord/
Serge Rosmorduc
5 rue Beranger,
92240 Malakoff
FRANCE

View File

@ -0,0 +1,63 @@
Tue Apr 22 22:17:15 1997 Serge Rosmorduc <serge@amenemhat.iut.univ-paris8.fr>
* printf("}\\end{hieroglyph}\\Hfinligne\\begin{hieroglyph}{\\leavevmode\n");
was needed for correct use of Columns macros.
Wed Jan 1 18:27:16 1997 Serge Rosmorduc <rosmord@cachicame>
* seshSource.txt: added quite a few unusefull codes
* seshl.l (traite): correction of an error : [...\t-=] was false
because it means "any char from tab to "=". replaced by
[...\t=-]. Thanks to a problem signaled by MICHAEL GIERHAKE.
* fonctions.c (affiche_hiero): -! generates \Hfinligne and not the
old messy stuff.
Wed Jun 7 11:28:29 1995 Serge Rosmorduc <rosmord@cachou>
* mklex.awk, hache.c, CONVENTIONS_CHOISIES, hache.h, mynew.h, general.h, fonctions.h, quadra.c, quadra.h, sesh.y, mkliste.awk, seshl.l, seshSource.txt, Makefile, fonctions.c:
*** empty log message ***
modifiications cosmetiques.
Thu Oct 27 22:22:04 1994 Serge Rosmorduc <rosmord@lifac5>
* lots of additions ! serekh, Hwt, ... general cleaning up
of the whole thing.
* Column-writing
* new way of archiving the files.
Thu Jul 14 17:23:50 1994 Serge Rosmorduc (serge@khety)
* Lots of additions :
- +rl .... +rl allows right-to-left writing in normal tex
- [[ ]] [& &] and co allows some parenthesing
- ## is used instead of # for sign overlapping
I could have used #, but it is quite ambiguous
- \! can be used for vertical kerning :
D:\!\!\!\!Hr looks fine.
TODO
Some changes should be done :
- overlapping is badly placed in the grammar And isn't treated at the optimal place.
- the grammar itself should be cleaner; something like that :
hieroglyphs = a list of overlapping signs
sign= shading, or hieroglyph, followed by modifiers
modifiers = \ (inverse) or \rN rotate by 90degrees
or \Rnnn = rotate by 1 degrees step
or \sN size N
- char * strings should be freed !
- There should be a construct to allow putting #def #
alone, to ease entry
Sun Jul 10 18:36:19 1994 Serge Rosmorduc (serge@khety)
* I now use my new memory management system. Something should also be
done for char * character strings, As they are currently left alone. sad, sad,
sad :-(
Version de sesh fonctionnant correctement sur neo.tex et
Lefebvre.tex. Reste a implementer la gestion de la memoire et
les extensions.

100
HieroTeX/Seshnesu/Makefile Normal file
View File

@ -0,0 +1,100 @@
## ALL THAT CAN CHANGE IS HERE, in variable.mk (ONLY TOUCH THE UPPER FILE !!)
include ../variable.mk
SRCS=Version.c fonctions.c fonctions.h general.h hache.h mynew.h quadra.c quadra.h sesh.y seshSource.h seshl.l flexaux.c
# End of things you can change.
CFLAGS=-g
WINCPPFLAGS=-DSESH_VERSION=\"$(SESH_VERSION)\"
CPPFLAGS=-DSESH_VERSION=\"$(SESH_VERSION)\" -DSESHDIR=\"$(SESHDIR)\"
OBJETS= fonctions.o sesh.o seshl.o hache.o quadra.o Version.o flexaux.o
default:
@echo " To make the sesh program : "
@echo " first edit the variables.mk file in the parent directory"
@echo " and type make sesh"
@echo
@echo " If 1) you haven't got lex+yacc or bison+flex"
@echo " and 2) sesh doesn't compile, don't despair. "
@echo " you can a) try to patch the sesh.c and seshl.c files"
@echo " or b) (cleaner way) get a working version of these for your machine"
@echo " or ultimately, migrate to Linux :-)"
# For mingw cross compiler :
SOURCES=fonctions.c sesh.c seshl.c hache.c quadra.c Version.c flexaux.c
sesh.exe : $(SOURCES)
$(MINGW) -o $@ -I./windows $(WINCPPFLAGS) $(SOURCES)
sesh: $(OBJETS)
$(LINK.c) -o $@ $(OBJETS) $(LIBR)
quadra.o: quadra.c quadra.h mynew.h
sesh.o : fonctions.h sesh.c
sesh.c sesh.h: sesh.y
$(YACC.y) -d sesh.y
mv y.tab.c sesh.c
mv y.tab.h sesh.h;
seshl.o: sesh.h fonctions.h
fonctions.o : seshSource.h fonctions.h
seshSource.h: seshSource.txt
awk -f mklex.awk < seshSource.txt > $@
Version.o: ../variable.mk
## CONFIGURE TRIES TO FIND $(LEX) AND $(YACC) and then
## remove
configure:
@-PATHS=`echo $$PATH | tr ':' ' '`;\
for i in $$PATHS; do if [ -f $$i/$(LEX) ]; then oulex=trouve ; fi; done;\
if [ $${oulex:-rien} != rien ] ; then $(DELFILE) seshl.c ; fi;\
for i in $$PATHS; do if [ -f $$i/$(YACC) ]; then ouyacc=trouve ; fi;done;\
if [ $${ouyacc:-rien} != rien ] ; then $(DELFILE) sesh.c sesh.h; fi
clean: FORCE
-/bin/rm -f *~ "#*#"
veryclean : clean
-/bin/rm -f *.o
# only veryveryclean supresses what can't be built on
# systems without bison and flex
distclean : seshl.c sesh.c sesh.h seshSource.h clean
-/bin/rm -f sesh
-makedepend -- # suppress the informations added by makedepend.
veryveryclean : veryclean
-/bin/rm -f sesh
-/bin/rm -f seshl.c
-/bin/rm -f sesh.c
-/bin/rm -f sesh.h
-/bin/rm -f seshSource.h
cleanyacclex : cleanyacc cleanlex
cleanyacc :
-/bin/rm sesh.c
-/bin/rm sesh.h
cleanlex :
-/bin/rm seshl.c
depend:
makedepend -- $(CFLAGS) -- $(SRCS)
FORCE :
# DO NOT DELETE

View File

@ -0,0 +1,100 @@
## ALL THAT CAN CHANGE IS HERE, in variable.mk (ONLY TOUCH THE UPPER FILE !!)
include ../variable.mk
SRCS=Version.c fonctions.c fonctions.h general.h hache.h mynew.h quadra.c quadra.h sesh.y seshSource.h seshl.l flexaux.c
# End of things you can change.
CFLAGS=-g
WINCPPFLAGS=-DSESH_VERSION=\"$(SESH_VERSION)\"
CPPFLAGS=-DSESH_VERSION=\"$(SESH_VERSION)\" -DSESHDIR=\"$(SESHDIR)\"
OBJETS= fonctions.o sesh.o seshl.o hache.o quadra.o Version.o flexaux.o
default:
@echo " To make the sesh program : "
@echo " first edit the variables.mk file in the parent directory"
@echo " and type make sesh"
@echo
@echo " If 1) you haven't got lex+yacc or bison+flex"
@echo " and 2) sesh doesn't compile, don't despair. "
@echo " you can a) try to patch the sesh.c and seshl.c files"
@echo " or b) (cleaner way) get a working version of these for your machine"
@echo " or ultimately, migrate to Linux :-)"
# For mingw cross compiler :
SOURCES=fonctions.c sesh.c seshl.c hache.c quadra.c Version.c flexaux.c
sesh.exe : $(SOURCES)
$(MINGW) -o $@ -I./windows $(WINCPPFLAGS) $(SOURCES)
sesh: $(OBJETS)
$(LINK.c) -o $@ $(OBJETS) $(LIBR)
quadra.o: quadra.c quadra.h mynew.h
sesh.o : fonctions.h sesh.c
sesh.c sesh.h: sesh.y
$(YACC.y) -d sesh.y
mv y.tab.c sesh.c
mv y.tab.h sesh.h;
seshl.o: sesh.h fonctions.h
fonctions.o : seshSource.h fonctions.h
seshSource.h: seshSource.txt
awk -f mklex.awk < seshSource.txt > $@
Version.o: ../variable.mk
## CONFIGURE TRIES TO FIND $(LEX) AND $(YACC) and then
## remove
configure:
@-PATHS=`echo $$PATH | tr ':' ' '`;\
for i in $$PATHS; do if [ -f $$i/$(LEX) ]; then oulex=trouve ; fi; done;\
if [ $${oulex:-rien} != rien ] ; then $(DELFILE) seshl.c ; fi;\
for i in $$PATHS; do if [ -f $$i/$(YACC) ]; then ouyacc=trouve ; fi;done;\
if [ $${ouyacc:-rien} != rien ] ; then $(DELFILE) sesh.c sesh.h; fi
clean: FORCE
-/bin/rm -f *~ "#*#"
veryclean : clean
-/bin/rm -f *.o
# only veryveryclean supresses what can't be built on
# systems without bison and flex
distclean : seshl.c sesh.c sesh.h seshSource.h clean
-/bin/rm -f sesh
-makedepend -- # suppress the informations added by makedepend.
veryveryclean : veryclean
-/bin/rm -f sesh
-/bin/rm -f seshl.c
-/bin/rm -f sesh.c
-/bin/rm -f sesh.h
-/bin/rm -f seshSource.h
cleanyacclex : cleanyacc cleanlex
cleanyacc :
-/bin/rm sesh.c
-/bin/rm sesh.h
cleanlex :
-/bin/rm seshl.c
depend:
makedepend -- $(CFLAGS) -- $(SRCS)
FORCE :
# DO NOT DELETE

View File

@ -0,0 +1,2 @@
char * Version= SESH_VERSION;

BIN
HieroTeX/Seshnesu/Version.o Normal file

Binary file not shown.

View File

@ -0,0 +1,5 @@
int yywrap()
{
return 1;
}

BIN
HieroTeX/Seshnesu/flexaux.o Normal file

Binary file not shown.

View File

@ -0,0 +1,601 @@
#include "hache.h"
#include "quadra.h"
#include "general.h"
#include <stdio.h>
/* #include <varargs.h> */
#include <malloc.h>
#include <stdlib.h>
#include <string.h>
#include "fonctions.h"
extern char * Version;
PRIVATE TABLE signes;
PUBLIC TABLE definitions;
/* PUBLIC TABLE phonetiques; not used now */
PUBLIC int numligne= 1;
PUBLIC int signe_trouve;
enum direction { gauche_a_droite, droite_a_gauche};
struct donne {
char * entree;
char * phon;
struct caractere symbole;
};
PRIVATE void quadra_parenthese();
PUBLIC union _Donnees find_sign(x, sens) /* OK, c'est mal */
char *x; int sens;
{
union _Donnees D;
struct caractere* txt;
if ((txt=(struct caractere*)trouve(x,signes)))
{
signe_trouve= TRUE;
D.hieroglyphe.fontName= txt->fontName;
D.hieroglyphe.caractere= txt->numero + sens * 128;
}
else
signe_trouve= FALSE;
return D;
}
PUBLIC void stocke(nom, valeur)
char *nom, *valeur;
{
insere(nom,valeur,definitions);
}
PRIVATE struct donne les_donnees[]=
{
#include "seshSource.h"
{0,0,{0,0}}
}
;
PRIVATE void initialise_lex()
{
struct donne *i;
signes= creer_table();
definitions= creer_table();
/* phonetiques= creer_table(); */
/* indexmots= fopen("index.mot", "w");*/
/* fflush(indexmots); */
for (i= les_donnees; i->entree; i++)
{
insere(i->entree,&(i->symbole), signes);
/* insere(i->entree,i->phon, phonetiques);*/
}
}
PUBLIC void defineNewChar(charname, chardef)
char * charname;
struct caractere * chardef;
{
insere(charname, chardef, signes);
}
PRIVATE void read_sign_file(fname)
char * fname;
{
struct donne *i;
FILE *f;
int numLine= 0;
if ((f= fopen(fname, "r")) != NULL) {
int fileIsWellFormed= TRUE;
while (fileIsWellFormed && !feof(f)) {
char signCode[21];
char fontName[21];
int charNum;
int itemRead;
itemRead= fscanf(f, "%20s\t%20s\t%d\n", signCode, fontName, &charNum);
if (itemRead == 3) {
struct caractere * chardef ;
chardef= (struct caractere*)malloc(sizeof(struct caractere));
chardef->fontName= strdup(fontName);
chardef->numero= charNum;
insere(strdup(signCode), chardef, signes);
} else
fileIsWellFormed= FALSE;
numLine++;
}
if (! fileIsWellFormed)
{
fprintf(stderr, "File %s has an error line %d\n", fname, numLine);
}
} else {
/* fprintf(stderr, "File %s doesn't exist. Skipping.\n", fname);*/
}
}
PUBLIC void yyerror(s)
char *s;
{
extern char *yytext;
fprintf(stderr, "\n\n%s, pres de %s ligne %d\n",s, yytext, numligne);
exit(-1);
}
PRIVATE void affiche_hiero();
PRIVATE void affiche_un_hieroglyphe(s, externe, hachure, size, rotation, reverted)
char * s;
int externe;
Typehachure hachure;
int size, rotation, reverted;
{
switch(hachure)
{
case S_aucune:
break;
case S_ga:
printf("\\hachurega{");
break;
case S_ha:
printf("\\hachureha{");
break;
case S_va:
printf("\\hachureva{");
break;
case S_ta:
printf("\\hachureta{");
break;
}
if (externe)
printf("\\loneSign{");
if (size > 0)
{
int masize= size;
printf("{");
while ((masize--) > 0)
printf("\\Hsmaller");
}
if (reverted)
{
printf("\\Hrevert{");
}
if (rotation != 0)
{
printf("\\Hrotate{%d}{", -rotation);
}
printf(s);
if (rotation != 0)
{
printf("}");
}
if (reverted)
{
printf("}");
}
if (size > 0)
printf("}");
if (externe)
printf("}");
if (hachure != S_aucune)
printf("}");
}
PRIVATE void affiche_signe(q, external, sens)
Quadra *q;
int external;
enum direction sens;
{
switch(q->contenu.un_signe.type)
{
static char tempo[30];
case S_hieroglyphe:
sprintf(tempo, "\\Aca %s/%u/",
q->contenu.un_signe.
donnees.hieroglyphe.fontName,
q->contenu.un_signe.
donnees.hieroglyphe.caractere
); /* ouf! */
affiche_un_hieroglyphe(tempo, external,
q->contenu.un_signe.typehachure,
q->contenu.un_signe.size,
q->contenu.un_signe.rotation,
q->contenu.un_signe.reverted
);
break;
case S_ligature:
affiche_un_hieroglyphe(q->contenu.un_signe.donnees.texte,
external,
q->contenu.un_signe.typehachure,
q->contenu.un_signe.size,
q->contenu.un_signe.rotation,
q->contenu.un_signe.reverted
);
break;
case S_romain: /* passage en fonte romaine */
if (external)
printf("{\\rm %s}",
q->contenu.un_signe.donnees.texte);
else
printf("{\\footnotesize \\rm %s}",
q->contenu.un_signe.donnees.texte);
break;
case S_textesuper: /* texte au dessus d'un trait */
printf("\\traittexte{%s}",
q->contenu.un_signe.donnees.texte);
break;
case S_pointrouge:
printf("\\pointrouge");
break;
case S_pointnoir:
printf("\\pointnoir");
break;
case S_haplographie:
break;
case S_gauchedroite:
printf("\\leftright");
break;
case S_droitegauche :
printf("\\rightleft");
break;
case S_lacune :
break;
case S_lignelacune :
break;
case S_point:
printf("\\HquarterSpace ");
break;
case S_pointpoint:
printf("\\HfullSpace ");
break;
case S_smallspace:
printf("\\HsmallSpace ");
break;
case S_hachureg:
printf("\\hachureg ");
break;
case S_hachureh:
printf("\\hachureh ");
break;
case S_hachurev:
printf("\\hachurev ");
break;
case S_hachuret:
printf("\\hachuret ");
break;
}
}
PRIVATE void affiche_horliste(h, external, sens)
Horliste *h;
int external;
enum direction sens;
{
if ((h->next == NULL)
) /* un seul signe */
{
if (!h->un_quadra || !h->un_quadra->next)
affiche_hiero(h->un_quadra, external, sens);
else /* A*B*C.... */
{
printf("\\LoneHorizontalLine{");
affiche_hiero(h->un_quadra, external, sens);
printf("}");
}
}
else /* empilement */
{
Horliste *t= h;
int depart= TRUE;
if (external)
printf("\\Cadrat{");
else
printf("\\InternalCadrat{");
while (t)
{
int i;
for (i=0; i<t->kerning; i++)
printf("\\negAROBvspace");
if (depart)
{
printf("\\CadratLineI{");
depart= FALSE;
}
else
printf("\\CadratLine{");
affiche_hiero(t->un_quadra,FALSE, sens);
printf("}");
t= t->next; /* this next is vertical */
}
printf("}");
}
}
PRIVATE void quadra_parenthese(debut, q, external, sens)
char *debut;
Quadra *q;
int external;
enum direction sens;
{
printf("%s", debut);
affiche_hiero(q->contenu.des_quadras, external, sens);
printf("}%\n");
}
/*
* prints the list of cadrat q.
* argument q is a pointer to a cadrat list
*/
PRIVATE void affiche_hiero(q, external, sens)
Quadra *q;
int external;
enum direction sens;
{
if (sens == droite_a_gauche)
q= q-> last;
while (q)
{
int i;
int separator;
if (q->shading != NOSHADING)
{
unsigned int i;
int j;
printf("\\newShading{");
for(i= 1, j= 0; j< 4; j++, i= i << 1)
if (q->shading & i)
printf("X");
else
printf("O");
printf("}{");
}
for (i=0; i<q->kerning; i++)
printf("\\negAROBspace");
switch(q->type)
{
case S_quadra:
affiche_horliste(q->contenu.horizontal, external, sens);
break;
case S_hachure:
quadra_parenthese("\\hachure{", q, external, sens);
break;
/* les constructions de type cartouche */
case S_carto :
quadra_parenthese("\\cartouche{", q, external, sens);
break;
case S_debcarto:
quadra_parenthese("\\debcartouche{", q, external, sens);
break;
case S_milcarto :
quadra_parenthese("\\milcartouche{", q, external, sens);
break;
case S_fincarto :
quadra_parenthese("\\endOfcartouche{", q, external, sens);
break;
case S_serekh :
quadra_parenthese("\\serekh{", q, external, sens);
break;
case S_enceinte :
quadra_parenthese("\\enceinte{", q, external, sens);
break;
case S_chateau :
quadra_parenthese("\\chateau{", q, external, sens);
break;
case S_debserekh :
quadra_parenthese("\\debserekh{", q, external, sens);
break;
case S_milserekh :
quadra_parenthese("\\milserekh{", q, external, sens);
break;
case S_finserekh :
quadra_parenthese("\\endOfserekh{", q, external, sens);
break;
case S_debenceinte :
quadra_parenthese("\\debenceinte{", q, external, sens);
break;
case S_milenceinte :
quadra_parenthese("\\milenceinte{", q, external, sens);
break;
case S_finenceinte :
quadra_parenthese("\\endOfenceinte{", q, external, sens);
break;
case S_debchateau :
quadra_parenthese("\\debchateau{", q, external, sens);
break;
case S_milchateau :
quadra_parenthese("\\milchateau{", q, external, sens);
break;
case S_finchateau :
quadra_parenthese("\\endOfchateau{", q, external, sens);
break;
case S_enrouge:
quadra_parenthese("\\enrouge{", q, external, sens);
break;
case S_rightleft:
quadra_parenthese("\\boxrightleft{",
q, external,
droite_a_gauche);
break;
case S_overwrite :
printf("\\hsuperpose{");
affiche_signe(q->contenu.des_quadras,
external, sens);
printf("}{");
affiche_signe(q->contenu.des_quadras->next,
external, sens);
printf("}");
break;
case S_superfetatoire:
quadra_parenthese("\\edisuperfet{", q, external, sens);
break;
case S_efface:
quadra_parenthese("\\ediefface{", q, external, sens);
break;
case S_disparu:
quadra_parenthese("\\edidisparu{", q, external, sens);
break;
case S_ajoutscribe:
quadra_parenthese("\\ediajoutscribe{", q, external, sens);
break;
case S_ajoutauteur:
quadra_parenthese("\\ediajoutauteur{", q, external, sens);
break;
case S_signe:
affiche_signe(q, external, sens);
/* close the accolade opened for \Cadrat */
}
if (q->shading != NOSHADING)
printf("}");
/*
BEWARE ! if orientation is right-to-left,
we should not consider q->separateur but q->previous->separateur
*/
if (sens == gauche_a_droite)
separator= q->separateur;
else {
if (q->previous)
separator= q->previous->separateur;
else
separator= S_sansseparateur;
}
if (external)
switch (separator)
{
case S_espace:
printf("\\HwordSpace\n");
break;
case S_finligne:
printf("}\\end{hieroglyph}\\HendOfLine\n\\begin{hieroglyph}{\\leavevmode\n");
/* printf("\\Htoline\n");*/
break;
case S_finpage:
printf("}\\end{hieroglyph}\\HendOfPage\n\\begin{hieroglyph}{\\leavevmode\n");
break;
case S_intersignes:
printf("\\HinterSignsSpace\n");
break;
case S_sansseparateur:
break;
}
else
switch (separator)
{
case S_espace:
case S_finligne:
case S_finpage:
case S_intersignes:
printf("\\hfill");
case S_sansseparateur:
break;
}
if (sens == gauche_a_droite)
q= q-> next;
else
q= q-> previous;
}
}
PUBLIC void affiche_quadras(q) /* affichage de quadras */
Quadra *q;
{
printf("\\begin{hieroglyph}{\\leavevmode ");
affiche_hiero(q, TRUE, gauche_a_droite);
printf("}\\end{hieroglyph}");
libere_quadras();
}
extern void yyparse();
PRIVATE void readStaticDefinitionFiles()
{
char * signDefinitionFilePath;
char * homeDir;
char signDefinitionFileName[]= "fontDef.txt";
#ifdef SESHDIR
signDefinitionFilePath= (char*) malloc(strlen(SESHDIR) + strlen(signDefinitionFileName) + 2);
strcpy(signDefinitionFilePath, SESHDIR);
strcat(signDefinitionFilePath, "/");
strcat(signDefinitionFilePath, signDefinitionFileName);
read_sign_file(signDefinitionFilePath);
free(signDefinitionFilePath);
#endif
if (homeDir= getenv("HOME"))
{
signDefinitionFilePath= (char*) malloc(strlen(homeDir) + strlen(signDefinitionFileName) + 2);
strcpy(signDefinitionFilePath, homeDir);
strcat(signDefinitionFilePath, "/");
strcat(signDefinitionFilePath, signDefinitionFileName);
read_sign_file(signDefinitionFilePath);
free(signDefinitionFilePath);
}
if (signDefinitionFilePath= getenv("SESHDIR"))
{
signDefinitionFilePath= (char*) malloc(strlen(homeDir) + strlen(signDefinitionFileName) + 2);
strcpy(signDefinitionFilePath, homeDir);
strcat(signDefinitionFilePath, "/");
strcat(signDefinitionFilePath, signDefinitionFileName);
read_sign_file(signDefinitionFilePath);
free(signDefinitionFilePath);
}
}
PUBLIC int main(argc, argv)
int argc;
char ** argv;
{
/*extern */int yydebug;
int lastArg= 1;
int argsOk= TRUE;
while (argsOk && lastArg < argc) {
if (strcmp(argv[lastArg], "-def") == 0)
{
lastArg++;
if (lastArg < argc)
{
read_sign_file(argv[lastArg]);
}
else
argsOk= FALSE;
}
else
argsOk= FALSE;
lastArg++;
}
if (!argsOk)
{
fprintf(stderr, "sesh nesou, version (%s)\n", Version);
fprintf(stderr, "usage %s [-def SIGNDEFINITIONFILE]\n", argv[0]);
exit(0);
}
initialise_lex();
readStaticDefinitionFiles();
yydebug= 1;
initialise_quadras();
(void)yyparse();
libere_quadras();
exit(0);
}
/*
* Local Variables:
* tab-width: 2
* End:
*/

View File

@ -0,0 +1,25 @@
/* Interface to PUBLIC fonctions in fonctions */
#ifndef _FONCTIONS_H
#define _FONCTIONS_H
#include "quadra.h"
#include "general.h"
struct caractere {char * fontName; unsigned char numero;};
#if __STDC__
PUBLIC void yyerror(char *s);
PUBLIC void affiche_quadras(Quadra *q);
PUBLIC void stocke(char *nom, char *valeur);
PUBLIC union _Donnees find_sign(char *x, int sens);
PUBLIC void defineNewChar(char * charname, struct caractere * chardef);
#else
PUBLIC void yyerror();
PUBLIC void affiche_quadras();
PUBLIC void stocke();
PUBLIC union _Donnees find_sign();
PUBLIC void defineNewChar();
#endif
#endif /* ifndef FONCTIONS_H */

Binary file not shown.

View File

@ -0,0 +1,23 @@
#ifndef _GENERAL_H
#define _GENERAL_H
#ifndef PUBLIC
#define PUBLIC
#define PRIVATE static
#endif
#if __STDC__
#define ANSI(x) x
#define TRAD(x)
#else
#define ANSI(x)
#define TRAD(x) x
#endif
#ifndef TRUE
#define TRUE 1
#define FALSE 0
#endif
#endif

93
HieroTeX/Seshnesu/hache.c Normal file
View File

@ -0,0 +1,93 @@
/***************************************************************************\
table de hachage
\***************************************************************************/
#include "hache.h"
#include <malloc.h>
/* Dans le .h */
typedef struct
{
char * clef;
char * data;
} ENTREE;
struct tablenode
{
ENTREE monentree;
struct tablenode * next;
};
#ifndef NULL
#define NULL (void *)0
#endif
tableau *creer_table()
{
tableau * tmp;
int i;
tmp= (tableau*)malloc(sizeof(tableau));
for (i=0; i<TAILLETAB; i++)
(*tmp)[i]= NULL;
return tmp;
}
void detruire_table(table) /* insuffisant ! */
tableau * table;
{
/* int i;*/
free(table);
}
static unsigned int hache(clef)
char *clef;
{
char *p;
unsigned h=0,g;
for (p= clef; *p ;p++)
{
h= (h<<4)+(*p);
if ((g = h & 0xF0000000) != 0)
{
h ^= (g>>24);
h ^= g;
}
}
return h % TAILLETAB;
}
void insere(clef, donnee, table)
char * clef, *donnee;
tableau * table;
{
/* int ou;*/
struct tablenode ** T, *O;
O= *(T= &(*table)[hache(clef)]);
while (O)
O=*(T= &(O->next));
*T= (struct tablenode*)malloc(sizeof(struct tablenode));
(*T)->monentree.clef= clef;
(*T)->monentree.data= donnee;
(*T)->next=NULL;
}
char * trouve(clef,table)
char * clef;
tableau * table;
{
/* int ou;*/
/* char * res;*/
struct tablenode * T;
T= (*table)[hache(clef)];
while (T && (strcmp(T->monentree.clef, clef)!=0))
T= T->next;
if (T)
return T->monentree.data;
else
return NULL;
}

23
HieroTeX/Seshnesu/hache.h Normal file
View File

@ -0,0 +1,23 @@
#define TAILLETAB 997
typedef struct tablenode * (tableau[TAILLETAB]) ;
typedef tableau *TABLE ;
extern TABLE creer_table();
extern void detruire_table( /* table */ );
extern void insere(/* clef, donnee, table */);
extern char * trouve(/* clef,tableau */);

BIN
HieroTeX/Seshnesu/hache.o Normal file

Binary file not shown.

6
HieroTeX/Seshnesu/mklex.awk Executable file
View File

@ -0,0 +1,6 @@
#!/bin/nawk -f
BEGIN {
}
{printf("{\"%s\", \"%s\",{ \"G%s\", %s }},\n", $1, $2, $3, $4 + 31); }

32
HieroTeX/Seshnesu/mkliste.awk Executable file
View File

@ -0,0 +1,32 @@
#!/bin/sh
# Create a sorted list of signs
# USE + as a separator in array coded
awk '
BEGIN {
}
{
if (coded[$3 $4]=="")
coded[$3 $4]=$1 ;
else
coded[$3 $4]=coded[$3 $4] ", " $1 ;
if (match($1,/[A-Z].*[0-9]+A?/))
{
main[$3 $4]=$1;
match($1,/^[A-Z]a?/);
codeA[$3 $4]=substr($1,RSTART,RLENGTH);
match($1,/[0-9]+/)
codeB[$3 $4]=substr($1,RSTART,RLENGTH);
if (match($1,/A$/))
codeC[$3 $4]=1;
else
codeC[$3 $4]=0;
}
}
END {for (i in coded)
{ print codeA[i] "=" codeB[i] "=" codeC[i] "=" main[i] "=" coded[i] }}
'

189
HieroTeX/Seshnesu/mynew.h Normal file
View File

@ -0,0 +1,189 @@
/***************************************************************************\
Serge Rosmorduc, le 10/7/94
this package is placed under the GNU LICENCE LIBRARY,
If you want to use it in another way, ask me.
Efficient memory management for very dynamic programs
This set of macros is intended for often malloc()-ed
and free()-ed structures. It is supposed to be cleaner and more
efficient than simple malloc and free.
Using this package :
you must define your structures as this :
typedef struct _TheBloodyNameOfMyStructure
{
......
} TheBloodyNameOfMyStructure;
Then, in ONE file :
#include "mynew.h"
DECLARE_STACK(TheBloodyNameOfMyStructure)
IMPLEMENTE_STACK(TheBloodyNameOfMyStructure)
and when you want to use it :
#include "mynew.h"
DECLARE_STACK(TheBloodyNameOfMyStructure)
....
practical use :
INIT_STACK(TheBloodyNameOfMyStructure); ONCE ONLY !
TheBloodyNameOfMyStructure * toto= NEW(TheBloodyNameOfMyStructure);
DELETE(TheBloodyNameOfMyStructure,toto); To free toto
CLEANUP(TheBloodyNameOfMyStructure); will declare all allocated space
to be free, so that it can be reused, for the SAME type. Useful when
you build complex structures, you destroy them, and then you build
them anew.
DESTROY(TheBloodyNameOfMyStructure); REAL cleanup of the type.
\***************************************************************************/
/*
CONCAT2 and CONCAT3 are two macros that are supposed to concatenate
their arguments. As there is no general way of doing it,
we try both methods : ANSI is using ##,
and K&R usual way is using an empty comment
*/
#if __STDC__
#define CONCAT2(a,b) a##b
#define CONCAT3(a,b,c) a##b##c
#else
#define CONCAT2(a,b) a/**/b
#define CONCAT3(a,b,c) a/**/b/**/c
#endif
#define MININSTACK 100 /* basic number of allocated elements */
#define STACKINSTACK 50 /* basic number of allocated STACKS */
#if __STDC__
#define DECLARE_STACK(_type_) \
extern _type_ * CONCAT2(new_,_type_) ();\
extern void CONCAT2(free_,_type_) (_type_ *);\
extern void CONCAT3(init_,_type_,_stack)();\
extern void CONCAT2(_type_,_cleanup)();
#else
#define DECLARE_STACK(_type_) \
extern _type_ * CONCAT2(new_,_type_) ();\
extern void CONCAT2(free_,_type_) ();\
extern void CONCAT3(init_,_type_,_stack)();\
extern void CONCAT2(_type_,_cleanup)();
#endif
#define IMPLEMENTE_STACK(_type_) \
typedef CONCAT2(struct _type_,_aux_pointer_struct) \
{ \
struct CONCAT2(_,_type_) structure;\
struct CONCAT2(_type_,_aux_pointer_struct) *next;\
}* CONCAT2(_type_,_aux_pointer); \
\
static struct CONCAT2(_type_,_stack_struct) \
{\
CONCAT2(_type_,_aux_pointer) pile, firstfree;\
CONCAT2(_type_,_aux_pointer) *piles; \
unsigned int nombre_de_piles, nombre_de_piles_max;\
unsigned int total; \
} CONCAT2(_type_,_stack) ;\
static void CONCAT2(_type_,_expand_struct)()\
{\
int i;\
CONCAT2(_type_,_stack).piles[CONCAT2(_type_,_stack).nombre_de_piles]=\
(CONCAT2(_type_,_aux_pointer))malloc\
((unsigned)(MININSTACK)*sizeof(struct CONCAT2(_type_,_aux_pointer_struct)));\
CONCAT2(_type_,_stack).firstfree= (CONCAT2(_type_,_stack).piles[CONCAT2(_type_,_stack).nombre_de_piles]);\
for (i= 0; i<MININSTACK-1; i++)\
((CONCAT2(_type_,_stack).piles[CONCAT2(_type_,_stack).nombre_de_piles])[i]).next=\
(CONCAT2(_type_,_stack).piles[CONCAT2(_type_,_stack).nombre_de_piles])\
+i +1;\
((CONCAT2(_type_,_stack).piles[CONCAT2(_type_,_stack).nombre_de_piles])[MININSTACK-1]).next= NULL;\
CONCAT2(_type_,_stack).nombre_de_piles++;\
CONCAT2(_type_,_stack).total+= MININSTACK;\
if (CONCAT2(_type_,_stack).nombre_de_piles == CONCAT2(_type_,_stack).nombre_de_piles_max)\
{\
(CONCAT2(_type_,_stack).nombre_de_piles_max) += STACKINSTACK;\
CONCAT2(_type_,_stack).piles= (CONCAT2(_type_,_aux_pointer) *)\
realloc(CONCAT2(_type_,_stack).piles,\
(CONCAT2(_type_,_stack).nombre_de_piles_max) *\
sizeof(CONCAT2(_type_,_aux_pointer))\
);\
}\
}\
void CONCAT3(init_,_type_,_stack)()\
{\
int i;\
CONCAT2(_type_,_stack).firstfree= \
CONCAT2(_type_,_stack).pile= (CONCAT2(_type_,_aux_pointer))malloc\
((unsigned)MININSTACK*sizeof(struct CONCAT2(_type_,_aux_pointer_struct)));\
CONCAT2(_type_,_stack).nombre_de_piles=1;\
CONCAT2(_type_,_stack).nombre_de_piles_max=STACKINSTACK;\
CONCAT2(_type_,_stack).piles=(CONCAT2(_type_,_aux_pointer) *)malloc((unsigned)STACKINSTACK * \
sizeof(CONCAT2(_type_,_aux_pointer)));\
CONCAT2(_type_,_stack).piles[0]= CONCAT2(_type_,_stack).pile;\
CONCAT2(_type_,_stack).total= MININSTACK;\
for (i= 0; i<MININSTACK-1; i++)\
(CONCAT2(_type_,_stack).pile[i]).next=\
CONCAT2(_type_,_stack).pile + i+ 1;\
(CONCAT2(_type_,_stack).pile[MININSTACK-1]).next= NULL;\
}\
void CONCAT2(free_,_type_) (f)\
_type_ * f;\
{\
if (CONCAT2(_type_,_stack).firstfree)\
{\
((CONCAT2(_type_,_aux_pointer))(f))->next= \
CONCAT2(_type_,_stack).firstfree;\
}\
else\
((CONCAT2(_type_,_aux_pointer))(f))->next= NULL;\
CONCAT2(_type_,_stack).firstfree= (CONCAT2(_type_,_aux_pointer))(f);\
}\
_type_ * CONCAT2(new_,_type_) ()\
{\
_type_ * t;\
t= (_type_ *)(CONCAT2(_type_,_stack).firstfree);\
if (CONCAT2(_type_,_stack).firstfree->next)\
CONCAT2(_type_,_stack).firstfree= CONCAT2(_type_,_stack).firstfree->next;\
else\
CONCAT2(_type_,_expand_struct)();\
return t; \
}\
void CONCAT2(_type_,_cleanup)()\
{\
int i;\
for (i= 0; i< CONCAT2(_type_,_stack).nombre_de_piles; i++)\
{\
int j;\
for (j= 0; j< MININSTACK-1; j++)\
(CONCAT2(_type_,_stack).piles[i])[j].next= CONCAT2(_type_,_stack).piles[i] +j +1;\
if (i != CONCAT2(_type_,_stack).nombre_de_piles -1)\
(CONCAT2(_type_,_stack).piles[i])[MININSTACK-1].next= (CONCAT2(_type_,_stack).piles[i+1]);\
else\
(CONCAT2(_type_,_stack).piles[i])[MININSTACK-1].next= NULL;\
}\
CONCAT2(_type_,_stack).firstfree= (CONCAT2(_type_,_stack).piles[0]);\
}\
void CONCAT2(_type_,_destroy)()\
{\
int i;\
for (i= 0; i< CONCAT2(_type_,_stack).nombre_de_piles; i++)\
{\
free((CONCAT2(_type_,_stack).piles[i]));\
}\
}
#define INIT_STACK(_type_) CONCAT3(init_,_type_,_stack)()
#define NEW(_type_) CONCAT2(new_,_type_) ()
#define DELETE(_type_,xx) CONCAT2(free_,_type_) (xx)
#define CLEANUP(_type_) CONCAT2(_type_,_cleanup)()
#define DESTROY(_type_) CONCAT2(_type_,_destroy)()

View File

@ -0,0 +1,72 @@
/*
Module supérieur de gestion de la mémoire.
*/
#include <malloc.h>
#include "quadra.h"
#include "mynew.h"
DECLARE_STACK(Quadra)
IMPLEMENTE_STACK(Quadra)
DECLARE_STACK(Horliste)
IMPLEMENTE_STACK(Horliste)
Quadra *new_quadra(val)
Typegroupe val;
{
Quadra * q;
q= NEW(Quadra);
q->type= val;
q->last= q;
q->kerning= 0;
q->separateur= S_sansseparateur;
q->shading= NOSHADING;
q->next= NULL;
q->previous= NULL;
return q;
}
Quadra* new_signe(s)
Typesigne s;
{
Quadra * q;
q= new_quadra(S_signe);
q->contenu.un_signe.type=s;
q->contenu.un_signe.size=0;
q->contenu.un_signe.rotation=0;
q->contenu.un_signe.reverted=0;
q->contenu.un_signe.typehachure= S_aucune;
q->kerning= 0;
return q;
}
Horliste * new_hor()
{
Horliste * h;
h= NEW(Horliste);
h->kerning=0;
h->last= h;
h->next= NULL;
h->previous= NULL;
return h;
}
void initialise_quadras()
{
INIT_STACK(Quadra);
INIT_STACK(Horliste);
}
void detruit_quadras()
{
DESTROY(Quadra);
DESTROY(Horliste);
}
void libere_quadras()
{
CLEANUP(Quadra);
CLEANUP(Horliste);
}

149
HieroTeX/Seshnesu/quadra.h Normal file
View File

@ -0,0 +1,149 @@
/***************************************************************************\
Definition des quadras a` bas niveau
\***************************************************************************/
/* $Id: quadra.h,v 2.5 1995/06/07 11:28:05 rosmord Exp $ */
#ifndef _QUADRA_H
#define _QUADRA_H
#ifndef NULL
#define NULL 0
#endif
/* "New" (well 1994 !) shading system */
#define SHADING1 (1)
#define SHADING2 (1<<1)
#define SHADING3 (1<<2)
#define SHADING4 (1<<3)
#define NOSHADING 0
#define FULLSHADING (SHADING4|SHADING3|SHADING2|SHADING1)
typedef unsigned char Shading;
/* Old fashioned shadings : */
typedef enum _Typehachure {
S_aucune,
S_ga,
S_ha,
S_va,
S_ta
} Typehachure;
typedef enum _Typeseparateur {
S_espace,
S_finligne,
S_finpage,
S_intersignes,
S_sansseparateur
} Typeseparateur;
/* Il y a deux sortes de donne'es inse're'es :
Celles qui parenthe`sent d'autres constructions
Les autres
*/
typedef enum _Typesigne
{
S_hieroglyphe,
S_ligature,
S_romain,
S_textesuper,
S_pointrouge,
S_pointnoir,
S_haplographie,
S_gauchedroite,
S_droitegauche ,
S_lacune ,
S_lignelacune ,
S_point,
S_pointpoint,
S_smallspace,
S_hachureg,
S_hachureh,
S_hachurev,
S_hachuret
} Typesigne;
typedef enum _Typegroupe
{
S_signe, /* feuille */
S_quadra, /* quadra */
S_hachure, /* groupe hachure */
S_carto , /* cartouche autour du groupe */
S_debcarto, /* diverses boites */
S_rightleft,
S_milcarto ,
S_fincarto ,
S_serekh ,
S_enceinte ,
S_chateau ,
S_debserekh ,
S_milserekh ,
S_finserekh ,
S_debenceinte ,
S_milenceinte ,
S_finenceinte ,
S_debchateau ,
S_milchateau ,
S_finchateau ,
S_enrouge, /* mise en rouge */
S_superfetatoire, /* Les parentheses */
S_efface,
S_disparu,
S_ajoutscribe,
S_ajoutauteur,
S_overwrite
} Typegroupe;
typedef struct _Signe {
Typesigne type;
Typehachure typehachure;
int size, rotation, reverted;
union _Donnees {
struct {
char * fontName;
int caractere; /* numero dans la fonte */
} hieroglyphe;
char * texte; /* symboles divers directement repre'sente's */
} donnees;
} Signe;
typedef struct _Horliste {
struct _Quadra *un_quadra; /* premie`re ligne */
int kerning; /* kerning vertical */
struct _Horliste * next, * previous, *last; /* les suivantes */
} Horliste;
typedef struct _Quadra {
Typegroupe type;
int kerning; /* kerning horizontal */
Typeseparateur separateur; /* separation d avec le signe suivant */
Shading shading;
union {
Horliste *horizontal; /* liste des lignes du quadra s'il y a lieu */
Signe un_signe;
struct _Quadra * des_quadras; /* quadra imbrique' ! */
} contenu;
struct _Quadra * next, *previous, *last;
} Quadra;
/*
Gestion de la memoire
*/
Quadra *new_quadra();
Quadra *new_signe();
Horliste * new_hor();
void initialise_quadras();
void detruit_quadras();
void libere_quadras();
#endif

BIN
HieroTeX/Seshnesu/quadra.o Normal file

Binary file not shown.

BIN
HieroTeX/Seshnesu/sesh Executable file

Binary file not shown.

1655
HieroTeX/Seshnesu/sesh.c Normal file

File diff suppressed because it is too large Load Diff

BIN
HieroTeX/Seshnesu/sesh.exe Executable file

Binary file not shown.

79
HieroTeX/Seshnesu/sesh.h Normal file
View File

@ -0,0 +1,79 @@
#ifndef BISON_Y_TAB_H
# define BISON_Y_TAB_H
#ifndef YYSTYPE
typedef union {
Quadra * un_quadra;
Horliste* une_horliste;
union _Donnees une_donnee;
Signe un_signe;
int un_entier;
Typehachure une_hachure;
Shading shading;
Typegroupe un_typegroupe;
Typeseparateur un_separateur;
char * chaine;
} yystype;
# define YYSTYPE yystype
# define YYSTYPE_IS_TRIVIAL 1
#endif
# define SIGNDECL 257
# define STRING 258
# define INTEGER 259
# define ENDDECL 260
# define TEXTE 261
# define DEBUTHIEROGS 262
# define FINHIEROGS 263
# define HIEROGLYPHE 264
# define LIGATURE 265
# define POINT 266
# define POINTPOINT 267
# define SMALLSPACE 268
# define KERNING 269
# define DEBUTCONSTRUCTION 270
# define CARTF 271
# define DIEZE0 272
# define DIEZE1 273
# define ROMAIN 274
# define GAUCHEDROITE 275
# define DROITEGAUCHE 276
# define LEFTRIGHT 277
# define RIGHTLEFT 278
# define INTERNALSPACE 279
# define HACHUREGA 280
# define HACHUREVA 281
# define HACHUREHA 282
# define HACHURETA 283
# define HACHUREG 284
# define HACHUREV 285
# define HACHUREH 286
# define HACHURET 287
# define SHADING 288
# define OVERWRITE 289
# define SIZE 290
# define ROTATION 291
# define REVERT 292
# define TEXTESUPER 293
# define POINTROUGE 294
# define POINTNOIR 295
# define COULEUR0 296
# define COULEUR1 297
# define HAPLOGRAPHIE 298
# define LACUNE 299
# define LIGNELACUNE 300
# define DSTSUPERFETATOIRE 301
# define FSTSUPERFETATOIRE 302
# define DSTEFFACE 303
# define FSTEFFACE 304
# define DSTDISPARU 305
# define FSTDISPARU 306
# define DSTRAJOUTSCRIBE 307
# define FSTRAJOUTSCRIBE 308
# define DSTRAJOUTAUTEUR 309
# define FSTRAJOUTAUTEUR 310
# define SEPARATEUR 311
extern YYSTYPE yylval;
#endif /* not BISON_Y_TAB_H */

BIN
HieroTeX/Seshnesu/sesh.o Normal file

Binary file not shown.

409
HieroTeX/Seshnesu/sesh.y Executable file
View File

@ -0,0 +1,409 @@
/****************************************************************************
Sesh Nesout
Un programme d'aide a` la frappe hieroglyphique
utilisant le format du ``MANUEL DE CODAGE''
Serge Rosmorduc
$Id: sesh.y,v 2.5 1995/06/07 11:28:00 rosmord Exp $
****************************************************************************/
%{
#include <malloc.h>
#include "quadra.h"
#include "fonctions.h"
extern void affiche_hiero();
extern void initialise_lex();
#include <stdio.h>
#ifndef NULL
#define NULL 0
#endif
#ifndef TRUE
#define TRUE 1
#define FALSE 0
#endif
%}
%union {
Quadra * un_quadra;
Horliste* une_horliste;
union _Donnees une_donnee;
Signe un_signe;
int un_entier;
Typehachure une_hachure;
Shading shading;
Typegroupe un_typegroupe;
Typeseparateur un_separateur;
char * chaine;
}
%token SIGNDECL STRING INTEGER ENDDECL
%token TEXTE DEBUTHIEROGS FINHIEROGS
%token HIEROGLYPHE LIGATURE
%token POINT
%token POINTPOINT
%token SMALLSPACE
%token KERNING
%token DEBUTCONSTRUCTION CARTF
%token DIEZE0 DIEZE1
%token ROMAIN
%token GAUCHEDROITE DROITEGAUCHE
%token LEFTRIGHT RIGHTLEFT
%token INTERNALSPACE
%token HACHUREGA HACHUREVA HACHUREHA HACHURETA
%token HACHUREG HACHUREV HACHUREH HACHURET
%token SHADING
%token OVERWRITE
%token SIZE ROTATION REVERT
%token TEXTESUPER POINTROUGE POINTNOIR
%token COULEUR0 COULEUR1
%token HAPLOGRAPHIE LACUNE LIGNELACUNE
%token DSTSUPERFETATOIRE FSTSUPERFETATOIRE
%token DSTEFFACE FSTEFFACE
%token DSTDISPARU FSTDISPARU
%token DSTRAJOUTSCRIBE FSTRAJOUTSCRIBE
%token DSTRAJOUTAUTEUR FSTRAJOUTAUTEUR
%token SEPARATEUR
%type <un_quadra> quadras quadra sousquadra inhierliste
%type <un_quadra> hieroglyphe hieroglyphes signe
%type <un_quadra> modificateurs modificateur
%type <un_quadra> construction_parenthesee
%type <une_horliste> sousquadras
%type <un_entier> kerning SIZE ROTATION REVERT
%type <une_hachure> hachure
%type <un_typegroupe> DEBUTCONSTRUCTION
%type <une_donnee> HIEROGLYPHE LIGATURE
%type <une_donnee> TEXTESUPER ROMAIN
%type <un_separateur> SEPARATEUR separateur
%type <shading> optShading SHADING
%type <chaine> STRING
%type <un_entier> INTEGER
%left ':'
%left '*'
%%
tout : tout TEXTE
| tout hierogs
| tout signDecl
| /* empty */
;
signDecl : SIGNDECL STRING STRING INTEGER ENDDECL {
struct caractere * chardef ;
if ($4 > 255 || $4 < 0)
{
yyerror("bad number for char in font in signdecl.\nNumbers should be between 0 and 255.");
YYERROR;
}
chardef= (struct caractere*)malloc(sizeof(struct caractere));
chardef->fontName= $3;
chardef->numero= $4;
fprintf(stderr, "on définit %s", $3);
defineNewChar($2, chardef);
}
;
hierogs : DEBUTHIEROGS separateur quadras separateur FINHIEROGS {
affiche_quadras($3);
}
| DEBUTHIEROGS separateur FINHIEROGS
;
quadras : kerning quadra
{
$$= $2;
$$->kerning= $1; /* nombre de signes de kerning */
}
| quadras separateur kerning quadra
{
$$=$1;
$$->last->next= $4;
$4->previous= $$->last;
$$->last->separateur= $2;
$$->last=$4;
$4->kerning= $3;
}
;
separateur:
/* empty */ { $$= S_intersignes; }
|SEPARATEUR
;
quadra : sousquadras optShading
{
$$= new_quadra(S_quadra);
$$->kerning= 0;
$$->contenu.horizontal= $1;
$$->shading= $2;
}
| ROMAIN
{
$$= new_signe(S_romain);
$$->kerning= 0;
$$->contenu.un_signe.donnees= $1;
}
| HAPLOGRAPHIE
{
$$= new_signe(S_haplographie);
$$->kerning= 0;
}
| GAUCHEDROITE
{
$$= new_signe(S_gauchedroite);
$$->kerning= 0;
}
| DROITEGAUCHE
{
$$= new_signe(S_droitegauche);
$$->kerning= 0;
}
| LACUNE
{
$$= new_signe(S_lacune);
$$->kerning= 0;
}
| LIGNELACUNE
{
$$= new_signe(S_lignelacune);
$$->kerning= 0;
}
| TEXTESUPER
{
$$= new_signe(S_textesuper);
$$->contenu.un_signe.donnees= $1;
$$->kerning= 0;
}
;
sousquadras : sousquadra
{
$$= new_hor();
$$->un_quadra= $1;
}
| sousquadras ':' kerning sousquadra
{
$$=$1;
$$->last->next= new_hor();
$$->last->next->previous= $$->last;
$$->last= $$->last->next;
$$->last->un_quadra= $4;
$$->last->kerning= $3;
}
;
optShading :
SHADING {$$= $1;}
| /*empty*/ {$$= NOSHADING;}
;
sousquadra : sousquadra '*' kerning inhierliste
{
$$= $1;
$$->last->next= $4;
$$->last->separateur= S_intersignes;
$$->last->next->previous= $$->last;
$$->last= $4;
$$->last->kerning= $3;
}
| inhierliste
{
$$= $1;
}
;
inhierliste : hieroglyphes
| POINT
{
$$= new_signe(S_signe);
$$->contenu.un_signe.type= S_point;
$$->kerning= 0;
}
| HACHUREG
{
$$= new_signe(S_signe);
$$->contenu.un_signe.type= S_hachureg;
$$->kerning= 0;
}
| HACHUREH
{
$$= new_signe(S_signe);
$$->contenu.un_signe.type= S_hachureh;
$$->kerning= 0;
}
| HACHUREV
{
$$= new_signe(S_signe);
$$->contenu.un_signe.type= S_hachurev;
$$->kerning= 0;
}
| HACHURET
{
$$= new_signe(S_signe);
$$->contenu.un_signe.type= S_hachuret;
$$->kerning= 0;
}
| DEBUTCONSTRUCTION quadras CARTF
{
$$= new_quadra($1);
$$->contenu.des_quadras= $2;
$$->kerning= 0;
}
| RIGHTLEFT quadras LEFTRIGHT
{
$$= new_quadra(S_rightleft);
$$->contenu.des_quadras= $2;
$$->kerning= 0;
}
| construction_parenthesee
| DIEZE0 quadras DIEZE1
{
$$= new_quadra(S_hachure);
$$->contenu.des_quadras= $2;
$$->kerning= 0;
}
| COULEUR0 quadras COULEUR1
{
$$= new_quadra(S_enrouge);
$$->contenu.des_quadras= $2;
$$->kerning= 0;
}
| POINTPOINT
{
$$= new_signe(S_signe);
$$->contenu.un_signe.type= S_pointpoint;
$$->kerning= 0;
}
| SMALLSPACE
{
$$= new_signe(S_signe);
$$->contenu.un_signe.type= S_smallspace;
$$->kerning= 0;
}
| '(' quadras ')'
{
$$= $2;
}
;
kerning: /* empty */
{
$$ =0;
}
| kerning KERNING
{
$$= $1 + 1;
}
;
hieroglyphes : hieroglyphe
| hieroglyphe OVERWRITE hieroglyphe
{
$$= new_quadra(S_overwrite);
$$->contenu.des_quadras= $1;
$$->contenu.des_quadras->next= $3;
$$->kerning= 0;
}
;
signe : HIEROGLYPHE
{
$$= new_signe(S_hieroglyphe);
$$->contenu.un_signe.donnees= $1;
}
| LIGATURE
{
$$= new_signe(S_ligature);
$$->contenu.un_signe.donnees= $1;
}
| POINTROUGE
{
$$= new_signe(S_pointrouge);
$$->kerning= 0;
}
| POINTNOIR
{
$$= new_signe(S_pointnoir);
$$->kerning= 0;
}
;
hieroglyphe : signe modificateurs hachure
{
$$= $1;
$$->contenu.un_signe.typehachure= $3;
}
;
modificateurs : /* empty */ {$$ = $<un_quadra>0;} /* le signe doit etre repete */
| modificateur modificateurs {$$ = $<un_quadra>0;} /* le signe doit etre repete */
;
modificateur :
SIZE {$$ = $<un_quadra>0; $$->contenu.un_signe.size= $1;} /* le signe */
| ROTATION {$$ = $<un_quadra>0; $$->contenu.un_signe.rotation= $1;}
| REVERT {$$ = $<un_quadra>0; $$->contenu.un_signe.reverted= TRUE;}
;
hachure : /* empty */
{
$$= S_aucune;
}
| HACHUREGA
{
$$= S_ga;
}
| HACHUREHA
{
$$= S_ha;
}
| HACHUREVA
{
$$= S_va;
}
| HACHURETA
{
$$= S_ta;
}
;
construction_parenthesee :
DSTSUPERFETATOIRE quadras FSTSUPERFETATOIRE
{
$$= new_quadra(S_superfetatoire);
$$->contenu.des_quadras= $2;
$$->kerning= 0;
}
| DSTEFFACE quadras FSTEFFACE
{
$$= new_quadra(S_efface);
$$->contenu.des_quadras= $2;
$$->kerning= 0;
}
| DSTDISPARU quadras FSTDISPARU
{
$$= new_quadra(S_disparu);
$$->contenu.des_quadras= $2;
$$->kerning= 0;
}
| DSTRAJOUTSCRIBE quadras FSTRAJOUTSCRIBE
{
$$= new_quadra(S_ajoutscribe);
$$->contenu.des_quadras= $2;
$$->kerning= 0;
}
| DSTRAJOUTAUTEUR quadras FSTRAJOUTAUTEUR
{
$$= new_quadra(S_ajoutauteur);
$$->contenu.des_quadras= $2;
$$->kerning= 0;
}
;
%%

File diff suppressed because it is too large Load Diff

1161
HieroTeX/Seshnesu/seshSource.txt Executable file

File diff suppressed because it is too large Load Diff

2836
HieroTeX/Seshnesu/seshl.c Normal file

File diff suppressed because it is too large Load Diff

359
HieroTeX/Seshnesu/seshl.l Executable file
View File

@ -0,0 +1,359 @@
%{
/* $Id: seshl.l,v 2.5 1995/06/07 11:27:47 rosmord Exp $ */
#include "quadra.h"
#include "sesh.h"
#include "hache.h"
#include "fonctions.h"
#undef YYLMAX
#define YYLMAX 10240
#include <string.h>
#include <strings.h>
#include <stdio.h>
#define G(x) {yylval=find_sign(x); return HIEROGLYPHE;}
#define Commence(x) BEGIN(x); etat=x;
PRIVATE void computeShading(Shading *h);
extern union _Donnees find_sign(char *x, int sens); /* OK, c'est mal */
extern int signe_trouve;
extern TABLE definitions;
void traite();
char * nomdefine;
int dieze=0;
int couleur=0;
int signe_lu= FALSE;
int signe_deja_lu= FALSE;
int etat= INITIAL;
extern int numligne;
void TLIGNE();
/* Les ligatures */
char * les_ligatures[]= {
"\\ligAROBDd ",
"\\ligAROBD",
"\\ligAROBDt",
"\\ligAROBDra",
"\\hierCC",
"\\hierXX"
};
%}
entier ([0-9]+)
INTEGER (-?{entier})
gardiner (([A-Z]|Aa){entier}a*)
ident ([a-zA-Z0-9.'`]+)
ligident ([a-zA-Z0-9.'`&]+)
ESPS ([ _\t\n\015=]+)
ESPSO ([ _\t\n\015=]*)
ESP ([ _\t\n\015=])
ESPSOH ([ _\t\n\015=-]*)
ESPSH ([ _\t\n\015=-]+)
%s DEFINE0 DEFINE1 HieroText TEXTEIMBR COMMENTAIRE InSignDecl
%e 2000
%%
switch(etat)
{ case INITIAL: BEGIN(INITIAL);break;
case HieroText: BEGIN(HieroText);break;
case InSignDecl: fprintf(stderr, "aaa\n"); BEGIN(InSignDecl); ; break;
}
/* infamous trick. # should have ONE meaning */
if ( signe_lu )
{
if (signe_deja_lu)
{ signe_deja_lu = FALSE; signe_lu= FALSE; }
else
{ signe_deja_lu= TRUE;}
}
<INITIAL>(.) {ECHO; return TEXTE;}
<INITIAL>(\n) {ECHO; numligne++; return TEXTE;}
<INITIAL>"\\hieroglyph"[ \n\t]* |
<INITIAL>"\\begin{hieroglyph}"[ \n\t]* { TLIGNE();
Commence(HieroText);
signe_lu= FALSE;
return DEBUTHIEROGS;}
<DEFINE0>{ESPS} BEGIN(DEFINE1);
<DEFINE1>[^#]*"#"{ESP}* { char *pt;
char *s= strdup(yytext);
TLIGNE();
pt= s + yyleng;
while (*(--pt) != '#');
*pt= 0;
stocke(nomdefine, s);
Commence(HieroText);}
<HieroText>{ESP}*"\\endhieroglyph" |
<HieroText>{ESP}*"\\end{hieroglyph}" { TLIGNE(); Commence(INITIAL); return FINHIEROGS;}
<HieroText>"D&d" |
<HieroText>D:d {yylval.une_donnee.texte= les_ligatures[0];
/* mieux vaudrait des noms symboliques */
signe_lu= TRUE;
return LIGATURE;
}
<HieroText>"o" return POINTROUGE;
<HieroText>"O" return POINTNOIR;
<HieroText>D {yylval.une_donnee.texte= les_ligatures[1];
signe_lu= TRUE;
return LIGATURE;}
<HieroText>D:t {yylval.une_donnee.texte= les_ligatures[2];
signe_lu= TRUE;
return LIGATURE;}
<HieroText>D:ra {yylval.une_donnee.texte= les_ligatures[3];
signe_lu= TRUE;
return LIGATURE;}
<HieroText>200 {yylval.une_donnee.texte= les_ligatures[4];
signe_lu= TRUE;
return LIGATURE;}
<HieroText>20 {yylval.une_donnee.texte= les_ligatures[5];
signe_lu= TRUE;
return LIGATURE;}
<HieroText>"aA\\r1" { yylval.une_donnee =find_sign("aAv",0);
if (!signe_trouve) {REJECT }
else { signe_lu= TRUE; return HIEROGLYPHE;}
}
<HieroText>"Y1\\r3" { yylval.une_donnee =find_sign("Y1v",0);
if (!signe_trouve) {REJECT }
else { signe_lu= TRUE; return HIEROGLYPHE;}
}
<HieroText>{ident} |
<HieroText>([A-Z]|Aa){entier}A* { yylval.une_donnee =find_sign(yytext,0);
if (!signe_trouve) {REJECT }
else { signe_lu= TRUE; return HIEROGLYPHE;}
}
<HieroText>","{ident} {traite(yytext+1);}
<INITIAL>"#signdecl" {Commence(InSignDecl); return SIGNDECL;}
<InSignDecl>{entier} {yylval.un_entier= atoi(yytext); fprintf(stderr, "\nHERE\n");return INTEGER;}
<InSignDecl>[a-zA-Z0-9.'`_@]+ {yylval.chaine = strdup(yytext); fprintf(stderr, "\nHERE1\n");return STRING;}
<InSignDecl>"#enddecl" {Commence(INITIAL); return ENDDECL;}
<InSignDecl>" "|\t|\n|\r {fprintf(stderr, "espace\n");}
<InSignDecl>. {fprintf(stderr, "char\n");}
<HieroText>"#def"{ESPS}{ligident} { int i;
for (i=4; yytext[i] && (yytext[i] == ' ' || yytext[i]== '\t');
i++);
if (yytext[i])
{
nomdefine=strdup(yytext+i);
BEGIN (DEFINE0);
}
else
yyerror("Mauvaise definition");
}
<HieroText>"="{ESPSO} |
<HieroText>"-"{ESPSO} {
yylval.un_separateur= S_intersignes;
return SEPARATEUR;
}
<HieroText>{ESPSH} |
<HieroText>{ESPSH}"-" {
TLIGNE();
yylval.un_separateur= S_espace;
return SEPARATEUR;
}
<HieroText>\n {
numligne++;
yylval.un_separateur= S_espace;
return SEPARATEUR;
}
<HieroText>{ESPSOH}"!="{INTEGER}"%"{ESPSOH} |
<HieroText>{ESPSOH}"!"{ESPSOH} {
TLIGNE();
yylval.un_separateur= S_finligne;
return SEPARATEUR;
}
<HieroText>{ESPSOH}"!!="{INTEGER}"%"{ESPSOH} |
<HieroText>{ESPSOH}"!!"{ESPSOH} {
TLIGNE();
yylval.un_separateur= S_finpage;
return SEPARATEUR;
}
<HieroText>{ESPSO}"*"{ESPSO} {TLIGNE(); return '*';}
<HieroText>{ESPSO}":"{ESPSO} {TLIGNE(); {return ':'; }}
<HieroText>"+l" BEGIN(TEXTEIMBR);
<HieroText>"+dg" return DROITEGAUCHE;
<HieroText>"+gd" return GAUCHEDROITE;
<HieroText>{ESPSOH}"+lr" return LEFTRIGHT;
<HieroText>"+rl"{ESPSOH} {TLIGNE(); return RIGHTLEFT;}
<HieroText>"|"[^-]+ { yylval.une_donnee.texte= strdup(yytext+1);
return TEXTESUPER;
}
<HieroText>\\! return KERNING;
<HieroText>"." return POINT;
<HieroText>".." return POINTPOINT;
<HieroText>"01" return SMALLSPACE;
<HieroText>{ligident} {traite(yytext); /* les macros-definitions !!! */}
<HieroText>"//" return HACHUREG;
<HieroText>"h/" return HACHUREH;
<HieroText>"v/" return HACHUREV;
<HieroText>"/" return HACHURET;
<HieroText>"#"{entier} {
computeShading(&(yylval.shading));
return SHADING;
}
<HieroText>"#//" return HACHUREGA;
<HieroText>"#h/" return HACHUREHA ;
<HieroText>"#v/" return HACHUREVA;
<HieroText>"#/" return HACHURETA;
<HieroText>"^" return HAPLOGRAPHIE;
<HieroText>"?" return LACUNE;
<HieroText>"??" return LIGNELACUNE;
<HieroText>"[{"{ESPSOH} {TLIGNE(); return DSTSUPERFETATOIRE;}
<HieroText>{ESPSOH}"}]" {TLIGNE(); return FSTSUPERFETATOIRE;}
<HieroText>"[["{ESPSOH} {TLIGNE(); return DSTEFFACE;}
<HieroText>{ESPSOH}"]]" {TLIGNE(); return FSTEFFACE;}
<HieroText>"[\""{ESPSOH} {TLIGNE(); return DSTDISPARU ;}
<HieroText>{ESPSOH}"\"]" {TLIGNE(); return FSTDISPARU ;}
<HieroText>"['"{ESPSOH} {TLIGNE(); return DSTRAJOUTSCRIBE;}
<HieroText>{ESPSOH}"']" {TLIGNE(); return FSTRAJOUTSCRIBE;}
<HieroText>"[&"{ESPSOH} {TLIGNE(); return DSTRAJOUTAUTEUR;}
<HieroText>{ESPSOH}"&]" {TLIGNE(); return FSTRAJOUTAUTEUR;}
<HieroText>"<"{ESPSOH} {TLIGNE(); yylval.un_typegroupe= S_carto; return DEBUTCONSTRUCTION;}
<HieroText>"<b"{ESPSOH} {TLIGNE(); yylval.un_typegroupe= S_debcarto; return DEBUTCONSTRUCTION;}
<HieroText>"<m"{ESPSOH} {TLIGNE(); yylval.un_typegroupe= S_milcarto; return DEBUTCONSTRUCTION;}
<HieroText>"<e"{ESPSOH} {TLIGNE(); yylval.un_typegroupe= S_fincarto; return DEBUTCONSTRUCTION;}
<HieroText>{ESPSOH}">" {TLIGNE(); return CARTF;}
<HieroText>"<S"{ESPSOH} {TLIGNE(); yylval.un_typegroupe= S_serekh; return DEBUTCONSTRUCTION;}
<HieroText>"<F"{ESPSOH} {TLIGNE(); yylval.un_typegroupe= S_enceinte; return DEBUTCONSTRUCTION;}
<HieroText>"<H"{ESPSOH} {TLIGNE(); yylval.un_typegroupe= S_chateau; return DEBUTCONSTRUCTION;}
<HieroText>"<Sb"{ESPSOH} {TLIGNE(); yylval.un_typegroupe= S_debserekh; return DEBUTCONSTRUCTION;}
<HieroText>"<Sm"{ESPSOH} {TLIGNE(); yylval.un_typegroupe= S_milserekh; return DEBUTCONSTRUCTION;}
<HieroText>"<Se"{ESPSOH} {TLIGNE(); yylval.un_typegroupe= S_finserekh; return DEBUTCONSTRUCTION;}
<HieroText>"<Fb"{ESPSOH} {TLIGNE(); yylval.un_typegroupe= S_debenceinte; return DEBUTCONSTRUCTION;}
<HieroText>"<Fm"{ESPSOH} {TLIGNE(); yylval.un_typegroupe= S_milenceinte; return DEBUTCONSTRUCTION;}
<HieroText>"<Fe"{ESPSOH} {TLIGNE(); yylval.un_typegroupe= S_finenceinte; return DEBUTCONSTRUCTION;}
<HieroText>"<Hb"{ESPSOH} {TLIGNE(); yylval.un_typegroupe= S_debchateau; return DEBUTCONSTRUCTION;}
<HieroText>"<Hm"{ESPSOH} {TLIGNE(); yylval.un_typegroupe= S_milchateau; return DEBUTCONSTRUCTION;}
<HieroText>"<He"{ESPSOH} {TLIGNE(); yylval.un_typegroupe= S_finchateau; return DEBUTCONSTRUCTION;}
<HieroText>{ESPSOH}"#-"{ESPSOH} |
<HieroText>{ESPSOH}"-#"{ESPSOH} |
<HieroText>{ESPSOH}"-#-"{ESPSOH} {TLIGNE(); dieze=1-dieze; /* ne compliquons pas la grammaire */
if (dieze==1) return DIEZE0;
else return DIEZE1;}
<HieroText>"#b"{ESPSOH} {TLIGNE(); if (signe_lu) REJECT; dieze=1-dieze; return DIEZE0;}
<HieroText>{ESPSOH}"#b"{ESPSOH} {TLIGNE(); dieze=1-dieze; return DIEZE0;}
<HieroText>{ESPSOH}"#e"{ESPSOH} {TLIGNE(); dieze=1-dieze; return DIEZE1;}
<HieroText>"#" {if (signe_lu) return OVERWRITE; else REJECT;}
<HieroText>"##" {if (signe_lu) return OVERWRITE; else REJECT;}
<HieroText>{ESPSOH}"$"{ESPSOH} {TLIGNE(); couleur=1-couleur; /* ne compliquons pas la grammaire */
if (couleur==1) return COULEUR0;
else return COULEUR1;}
<HieroText>{ESPSOH}"$b"{ESPSOH} {TLIGNE(); couleur=1; return COULEUR1;}
<HieroText>{ESPSOH}"$r"{ESPSOH} {TLIGNE(); couleur=0; return COULEUR0;}
<HieroText>\\ {return REVERT;}
<HieroText>\\s[0-9] {
yylval.un_entier= atoi(yytext+2);
return SIZE;
}
<HieroText>\\{INTEGER}
<HieroText>\\R{INTEGER} {
yylval.un_entier= atoi(yytext+2);
return ROTATION;
}
<HieroText>\\t{INTEGER}
<HieroText>\\r{INTEGER} {
yylval.un_entier= 360-atoi(yytext+2)* 90;
return ROTATION;
}
<HieroText>"("{ESPSO} {TLIGNE(); return '(';}
<HieroText>{ESPSOH}")"{ESPSO} {TLIGNE(); return ')';}
<HieroText>"+s-"
<HieroText>"+b-"
<HieroText>"+r-"
<HieroText>{ESPSO}"++" {TLIGNE(); BEGIN(COMMENTAIRE);}
<HieroText>\015 ;
<HieroText>(.) return yytext[0];
<TEXTEIMBR>"+s" { yylval.une_donnee.texte= strdup(yytext);
yylval.une_donnee.texte[strlen(yylval.une_donnee.texte)-2]=0;
return ROMAIN;
}
<TEXTEIMBR>(.|\n) {TLIGNE(); yymore(); }
<COMMENTAIRE>(.|\n) {TLIGNE();}
<COMMENTAIRE>"+s"{ESPSOH} {TLIGNE(); BEGIN(HieroText);}
%%
void traite(texte)
char * texte;
{
int i;
char *result;
if ((result= trouve(texte, definitions)))
{
for (i=strlen(result) -1; i> -1; i--)
unput(result[i]);
}
else
{
char toto[300];
sprintf(toto, "texte non reconnu: %s", texte);
yyerror(toto);
}
}
void TLIGNE()
{
char *s;
s= yytext;
while ((s= strchr(s, '\n')))
{
numligne++;
s++;
}
}
PRIVATE void
computeShading(Shading *h)
{
int i;
*h= NOSHADING;
for (i=1; i< yyleng; i++)
switch(yytext[i])
{
case '1':
*h |= SHADING1;
break;
case '2':
*h |= SHADING2;
break;
case '3':
*h |= SHADING3;
break;
case '4':
*h |= SHADING4;
break;
}
}
/*
* Local Variables:
* mode: c
* tab-width: 40
* End:
*/

BIN
HieroTeX/Seshnesu/seshl.o Normal file

Binary file not shown.

View File

@ -0,0 +1 @@

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,771 @@
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/32/}}\end{hieroglyph}}{A1}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/33/}}\end{hieroglyph}}{A2}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/34/}}\end{hieroglyph}}{A3}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/35/}}\end{hieroglyph}}{A4}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/36/}}\end{hieroglyph}}{A5}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/37/}}\end{hieroglyph}}{A6}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/38/}}\end{hieroglyph}}{A7}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/39/}}\end{hieroglyph}}{A8}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/40/}}\end{hieroglyph}}{A9}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/41/}}\end{hieroglyph}}{A10}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/42/}}\end{hieroglyph}}{A11}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/43/}}\end{hieroglyph}}{A12, mSa}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/44/}}\end{hieroglyph}}{A13}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/45/}}\end{hieroglyph}}{A14}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/46/}}\end{hieroglyph}}{A14A}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/47/}}\end{hieroglyph}}{A15, xr}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/48/}}\end{hieroglyph}}{A16}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/49/}}\end{hieroglyph}}{A17, Xrd}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/50/}}\end{hieroglyph}}{A17A}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/51/}}\end{hieroglyph}}{A18}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/52/}}\end{hieroglyph}}{A19}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/53/}}\end{hieroglyph}}{A20}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/54/}}\end{hieroglyph}}{A21, sr}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/55/}}\end{hieroglyph}}{A22}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/56/}}\end{hieroglyph}}{A23}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/57/}}\end{hieroglyph}}{A24}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/58/}}\end{hieroglyph}}{A25}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/60/}}\end{hieroglyph}}{A26}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/61/}}\end{hieroglyph}}{A27}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/62/}}\end{hieroglyph}}{A28}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/63/}}\end{hieroglyph}}{A29}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/64/}}\end{hieroglyph}}{A30}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/65/}}\end{hieroglyph}}{A31}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/66/}}\end{hieroglyph}}{A32}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/67/}}\end{hieroglyph}}{A33, mniw}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/68/}}\end{hieroglyph}}{A34}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/69/}}\end{hieroglyph}}{A35}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/70/}}\end{hieroglyph}}{A36}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/71/}}\end{hieroglyph}}{A37}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/72/}}\end{hieroglyph}}{A38, qiz}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/73/}}\end{hieroglyph}}{A39}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/74/}}\end{hieroglyph}}{A40}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/75/}}\end{hieroglyph}}{A41}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/76/}}\end{hieroglyph}}{A42}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/77/}}\end{hieroglyph}}{A43}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/78/}}\end{hieroglyph}}{A44}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/79/}}\end{hieroglyph}}{A45}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/80/}}\end{hieroglyph}}{A46}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/81/}}\end{hieroglyph}}{A47, iry}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/82/}}\end{hieroglyph}}{A48}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/83/}}\end{hieroglyph}}{A49}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/84/}}\end{hieroglyph}}{A50, Sps}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/85/}}\end{hieroglyph}}{A51, Spsi}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/86/}}\end{hieroglyph}}{A52}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/87/}}\end{hieroglyph}}{A53}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/88/}}\end{hieroglyph}}{A54}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/89/}}\end{hieroglyph}}{A55}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GA/59/}}\end{hieroglyph}}{A59}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GB/32/}}\end{hieroglyph}}{B1}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GB/33/}}\end{hieroglyph}}{B2}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GB/34/}}\end{hieroglyph}}{B3, msi}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GB/35/}}\end{hieroglyph}}{B4}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GB/36/}}\end{hieroglyph}}{B5}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GB/37/}}\end{hieroglyph}}{B6}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GB/38/}}\end{hieroglyph}}{B7}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GC/32/}}\end{hieroglyph}}{C1}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GC/33/}}\end{hieroglyph}}{C2}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GC/34/}}\end{hieroglyph}}{C3, DHwty}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GC/35/}}\end{hieroglyph}}{C4, Xnmw}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GC/36/}}\end{hieroglyph}}{C5}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GC/37/}}\end{hieroglyph}}{C6, inpw}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GC/38/}}\end{hieroglyph}}{C7, stX}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GC/39/}}\end{hieroglyph}}{C8, mnw}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GC/40/}}\end{hieroglyph}}{C9}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GC/41/}}\end{hieroglyph}}{C10, mAat}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GC/42/}}\end{hieroglyph}}{C11, HH}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GC/43/}}\end{hieroglyph}}{C12}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GC/44/}}\end{hieroglyph}}{C17}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GC/45/}}\end{hieroglyph}}{C18}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GC/46/}}\end{hieroglyph}}{C19}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GC/47/}}\end{hieroglyph}}{C20}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GC/48/}}\end{hieroglyph}}{C98}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/32/}}\end{hieroglyph}}{D1, tp}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/33/}}\end{hieroglyph}}{D2, Hr}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/34/}}\end{hieroglyph}}{D3, Sny}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/35/}}\end{hieroglyph}}{D4, ir}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/36/}}\end{hieroglyph}}{D5}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/37/}}\end{hieroglyph}}{D6}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/38/}}\end{hieroglyph}}{D7}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/39/}}\end{hieroglyph}}{D8}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/40/}}\end{hieroglyph}}{D9, rmi}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/41/}}\end{hieroglyph}}{D10, wDAt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/42/}}\end{hieroglyph}}{D11}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/43/}}\end{hieroglyph}}{D12}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/44/}}\end{hieroglyph}}{D13}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/45/}}\end{hieroglyph}}{D14}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/46/}}\end{hieroglyph}}{D15}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/47/}}\end{hieroglyph}}{D16}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/48/}}\end{hieroglyph}}{D17}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/49/}}\end{hieroglyph}}{D18}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/50/}}\end{hieroglyph}}{D19, fnd}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/51/}}\end{hieroglyph}}{D20}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/52/}}\end{hieroglyph}}{r, D21, rA}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/53/}}\end{hieroglyph}}{D22}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/54/}}\end{hieroglyph}}{D23}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/55/}}\end{hieroglyph}}{D24, spt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/56/}}\end{hieroglyph}}{D25, spty}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/57/}}\end{hieroglyph}}{D26}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/58/}}\end{hieroglyph}}{D27, mnD}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/59/}}\end{hieroglyph}}{D27A}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/60/}}\end{hieroglyph}}{D28, kA}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/61/}}\end{hieroglyph}}{D29}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/62/}}\end{hieroglyph}}{D30}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/63/}}\end{hieroglyph}}{D31}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/64/}}\end{hieroglyph}}{D32}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/65/}}\end{hieroglyph}}{D33}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/66/}}\end{hieroglyph}}{D34, aHA}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/67/}}\end{hieroglyph}}{D34A}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/68/}}\end{hieroglyph}}{D35}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/69/}}\end{hieroglyph}}{a, D36}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/70/}}\end{hieroglyph}}{D37}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/71/}}\end{hieroglyph}}{D38}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/72/}}\end{hieroglyph}}{D39}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/73/}}\end{hieroglyph}}{D40}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/74/}}\end{hieroglyph}}{D41}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/75/}}\end{hieroglyph}}{D42}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/76/}}\end{hieroglyph}}{D43}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/77/}}\end{hieroglyph}}{D44}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/78/}}\end{hieroglyph}}{D45, Dsr}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/79/}}\end{hieroglyph}}{d, D46}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/81/}}\end{hieroglyph}}{D46A}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/80/}}\end{hieroglyph}}{D47}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/82/}}\end{hieroglyph}}{D48}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/83/}}\end{hieroglyph}}{D49}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/84/}}\end{hieroglyph}}{D50, Dba}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/85/}}\end{hieroglyph}}{D51}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/86/}}\end{hieroglyph}}{D52, mt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/87/}}\end{hieroglyph}}{D53}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/88/}}\end{hieroglyph}}{D54}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/89/}}\end{hieroglyph}}{D55}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/90/}}\end{hieroglyph}}{D56, rd, sbq, gH, gHs}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/91/}}\end{hieroglyph}}{D57}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/92/}}\end{hieroglyph}}{b, D58}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/93/}}\end{hieroglyph}}{D59, ab}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/94/}}\end{hieroglyph}}{D60, wab}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/95/}}\end{hieroglyph}}{D61, sAH}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/96/}}\end{hieroglyph}}{D62}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GD/97/}}\end{hieroglyph}}{D63}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GE/32/}}\end{hieroglyph}}{E1}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GE/33/}}\end{hieroglyph}}{E2}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GE/34/}}\end{hieroglyph}}{E3}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GE/35/}}\end{hieroglyph}}{E4}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GE/36/}}\end{hieroglyph}}{E5}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GE/37/}}\end{hieroglyph}}{E6, zzmt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GE/38/}}\end{hieroglyph}}{E7}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GE/39/}}\end{hieroglyph}}{E8}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GE/40/}}\end{hieroglyph}}{E8A}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GE/41/}}\end{hieroglyph}}{E9}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GE/42/}}\end{hieroglyph}}{E10}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GE/43/}}\end{hieroglyph}}{E11}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GE/44/}}\end{hieroglyph}}{E12}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GE/45/}}\end{hieroglyph}}{E13}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GE/46/}}\end{hieroglyph}}{E14}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GE/47/}}\end{hieroglyph}}{E15}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GE/48/}}\end{hieroglyph}}{E16}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GE/49/}}\end{hieroglyph}}{E17, zAb}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GE/50/}}\end{hieroglyph}}{E18}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GE/51/}}\end{hieroglyph}}{E19}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GE/52/}}\end{hieroglyph}}{E20}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GE/53/}}\end{hieroglyph}}{E21}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GE/54/}}\end{hieroglyph}}{E22, mAi}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GE/55/}}\end{hieroglyph}}{E23, rw, l}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GE/56/}}\end{hieroglyph}}{E24, Aby}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GE/57/}}\end{hieroglyph}}{E25}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GE/58/}}\end{hieroglyph}}{E26}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GE/59/}}\end{hieroglyph}}{E27}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GE/60/}}\end{hieroglyph}}{E28}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GE/61/}}\end{hieroglyph}}{E29}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GE/62/}}\end{hieroglyph}}{E30}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GE/63/}}\end{hieroglyph}}{E31}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GE/64/}}\end{hieroglyph}}{E32}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GE/65/}}\end{hieroglyph}}{E33}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GE/66/}}\end{hieroglyph}}{E34, wn}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/32/}}\end{hieroglyph}}{F1}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/33/}}\end{hieroglyph}}{F2}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/34/}}\end{hieroglyph}}{F3}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/35/}}\end{hieroglyph}}{F4, HAt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/36/}}\end{hieroglyph}}{F5, SsA}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/37/}}\end{hieroglyph}}{F6}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/38/}}\end{hieroglyph}}{F7}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/39/}}\end{hieroglyph}}{F8}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/40/}}\end{hieroglyph}}{F9}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/41/}}\end{hieroglyph}}{F10}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/42/}}\end{hieroglyph}}{F11}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/43/}}\end{hieroglyph}}{F12, wsr}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/44/}}\end{hieroglyph}}{F13, wp}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/45/}}\end{hieroglyph}}{F14}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/46/}}\end{hieroglyph}}{F15}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/47/}}\end{hieroglyph}}{F16, db}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/48/}}\end{hieroglyph}}{F17}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/49/}}\end{hieroglyph}}{F18, Hw, bH}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/50/}}\end{hieroglyph}}{F19}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/51/}}\end{hieroglyph}}{F20, ns}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/52/}}\end{hieroglyph}}{F21, idn, msDr, sDm, DrD}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/53/}}\end{hieroglyph}}{F22, pH, kfA}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/54/}}\end{hieroglyph}}{F23, xpS}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/55/}}\end{hieroglyph}}{F24}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/56/}}\end{hieroglyph}}{F25, wHm}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/57/}}\end{hieroglyph}}{F26, Xn}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/58/}}\end{hieroglyph}}{F27}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/59/}}\end{hieroglyph}}{F28}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/60/}}\end{hieroglyph}}{F29, sti}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/61/}}\end{hieroglyph}}{F30, Sd}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/62/}}\end{hieroglyph}}{F31, ms}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/63/}}\end{hieroglyph}}{X, F32}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/64/}}\end{hieroglyph}}{F33, sd}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/65/}}\end{hieroglyph}}{F34, ib}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/66/}}\end{hieroglyph}}{F35, nfr}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/67/}}\end{hieroglyph}}{F36, zmA}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/84/}}\end{hieroglyph}}{F37B}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/68/}}\end{hieroglyph}}{F37}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/69/}}\end{hieroglyph}}{F38}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/70/}}\end{hieroglyph}}{F39, imAx}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/71/}}\end{hieroglyph}}{F40, Aw}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/72/}}\end{hieroglyph}}{F41}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/73/}}\end{hieroglyph}}{F42, spr}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/74/}}\end{hieroglyph}}{F43}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/75/}}\end{hieroglyph}}{F44, iwa, isw}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/76/}}\end{hieroglyph}}{F45}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/77/}}\end{hieroglyph}}{F46, pXr, qAb}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/78/}}\end{hieroglyph}}{F47}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/79/}}\end{hieroglyph}}{F48}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/80/}}\end{hieroglyph}}{F49}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/81/}}\end{hieroglyph}}{F50}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/82/}}\end{hieroglyph}}{F51}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GF/83/}}\end{hieroglyph}}{F52}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/32/}}\end{hieroglyph}}{A, G1, A}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/33/}}\end{hieroglyph}}{G2, AA}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/34/}}\end{hieroglyph}}{G3}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/35/}}\end{hieroglyph}}{G4, tyw}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/36/}}\end{hieroglyph}}{G5}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/37/}}\end{hieroglyph}}{G6}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/38/}}\end{hieroglyph}}{G7}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/40/}}\end{hieroglyph}}{G7AA}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/39/}}\end{hieroglyph}}{G7A}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/41/}}\end{hieroglyph}}{G8}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/42/}}\end{hieroglyph}}{G9}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/43/}}\end{hieroglyph}}{G10}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/44/}}\end{hieroglyph}}{G11}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/45/}}\end{hieroglyph}}{G12}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/46/}}\end{hieroglyph}}{G13}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/47/}}\end{hieroglyph}}{G14, mwt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/48/}}\end{hieroglyph}}{G15}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/49/}}\end{hieroglyph}}{G16, nbty}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/50/}}\end{hieroglyph}}{m, G17}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/51/}}\end{hieroglyph}}{G18, mm}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/52/}}\end{hieroglyph}}{G19}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/53/}}\end{hieroglyph}}{G20}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/54/}}\end{hieroglyph}}{G21, nH}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/55/}}\end{hieroglyph}}{G22, Db}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/56/}}\end{hieroglyph}}{G23, rxyt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/57/}}\end{hieroglyph}}{G24}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/58/}}\end{hieroglyph}}{G25, Ax}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/59/}}\end{hieroglyph}}{G26}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/60/}}\end{hieroglyph}}{G26A}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/61/}}\end{hieroglyph}}{G27, dSr}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/62/}}\end{hieroglyph}}{G28, gm}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/63/}}\end{hieroglyph}}{G29, bA}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/64/}}\end{hieroglyph}}{G30, bAw}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/65/}}\end{hieroglyph}}{G31}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/66/}}\end{hieroglyph}}{G32, baHi}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/67/}}\end{hieroglyph}}{G33}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/68/}}\end{hieroglyph}}{G34}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/69/}}\end{hieroglyph}}{G35, aq}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/70/}}\end{hieroglyph}}{G36, wr}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/71/}}\end{hieroglyph}}{G37}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/72/}}\end{hieroglyph}}{G38, gb}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/73/}}\end{hieroglyph}}{G39, zA}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/74/}}\end{hieroglyph}}{G40, pA}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/75/}}\end{hieroglyph}}{G41, xn, pA', pA'}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/76/}}\end{hieroglyph}}{G42, wSA}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/77/}}\end{hieroglyph}}{w, G43}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/78/}}\end{hieroglyph}}{G44, ww}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/79/}}\end{hieroglyph}}{G45}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/80/}}\end{hieroglyph}}{G46, mAw}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/81/}}\end{hieroglyph}}{G47, TA}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/82/}}\end{hieroglyph}}{G48}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/83/}}\end{hieroglyph}}{G49}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/84/}}\end{hieroglyph}}{G50}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/85/}}\end{hieroglyph}}{G51}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/86/}}\end{hieroglyph}}{G52}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/87/}}\end{hieroglyph}}{G53}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GG/88/}}\end{hieroglyph}}{G54, snD}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GH/32/}}\end{hieroglyph}}{H1}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GH/33/}}\end{hieroglyph}}{H2, wSm}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GH/34/}}\end{hieroglyph}}{H3, pAq}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GH/35/}}\end{hieroglyph}}{H4}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GH/36/}}\end{hieroglyph}}{H5}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GH/37/}}\end{hieroglyph}}{H6, Sw}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GH/38/}}\end{hieroglyph}}{H6A}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GH/39/}}\end{hieroglyph}}{H7}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GH/40/}}\end{hieroglyph}}{H8}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GI/32/}}\end{hieroglyph}}{I1, aSA}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GI/33/}}\end{hieroglyph}}{I2, Styw}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GI/34/}}\end{hieroglyph}}{I3, mzH}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GI/36/}}\end{hieroglyph}}{I4, sbk}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GI/37/}}\end{hieroglyph}}{I5, sAq}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GI/35/}}\end{hieroglyph}}{I5A}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GI/38/}}\end{hieroglyph}}{I6, km}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GI/39/}}\end{hieroglyph}}{I7}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GI/40/}}\end{hieroglyph}}{I8, Hfn}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GI/41/}}\end{hieroglyph}}{f, I9}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GI/42/}}\end{hieroglyph}}{D, I10}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GI/43/}}\end{hieroglyph}}{I11, DD}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GI/44/}}\end{hieroglyph}}{I12}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GI/45/}}\end{hieroglyph}}{I13}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GI/46/}}\end{hieroglyph}}{I14}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GI/47/}}\end{hieroglyph}}{I15}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GK/32/}}\end{hieroglyph}}{K1, in}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GK/33/}}\end{hieroglyph}}{K2}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GK/34/}}\end{hieroglyph}}{K3, ad}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GK/35/}}\end{hieroglyph}}{K4, XA}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GK/36/}}\end{hieroglyph}}{K5, bz}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GK/38/}}\end{hieroglyph}}{K6, nSmt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GK/37/}}\end{hieroglyph}}{K7}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GL/32/}}\end{hieroglyph}}{L1, xpr}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GL/33/}}\end{hieroglyph}}{L2, bit}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GL/34/}}\end{hieroglyph}}{L3}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GL/35/}}\end{hieroglyph}}{L4}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GL/36/}}\end{hieroglyph}}{L5}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GL/37/}}\end{hieroglyph}}{L6}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GL/38/}}\end{hieroglyph}}{L7, srqt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/32/}}\end{hieroglyph}}{M1, iAm}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/33/}}\end{hieroglyph}}{M2, Hn}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/34/}}\end{hieroglyph}}{M3, xt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/35/}}\end{hieroglyph}}{M4, rnp}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/36/}}\end{hieroglyph}}{M5}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/37/}}\end{hieroglyph}}{M6, tr}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/38/}}\end{hieroglyph}}{M7}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/39/}}\end{hieroglyph}}{M8, SA}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/40/}}\end{hieroglyph}}{M9, zSn}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/41/}}\end{hieroglyph}}{M10}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/42/}}\end{hieroglyph}}{M11, wdn}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/43/}}\end{hieroglyph}}{M12, xA}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/44/}}\end{hieroglyph}}{M13, wAD}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/45/}}\end{hieroglyph}}{M14}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/46/}}\end{hieroglyph}}{M15}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/47/}}\end{hieroglyph}}{M16, HA}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/48/}}\end{hieroglyph}}{i, M17}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/49/}}\end{hieroglyph}}{M18, ii}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/50/}}\end{hieroglyph}}{M19}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/51/}}\end{hieroglyph}}{M20, sxt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/52/}}\end{hieroglyph}}{M21, sm}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/53/}}\end{hieroglyph}}{M22}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/54/}}\end{hieroglyph}}{M23, sw}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/55/}}\end{hieroglyph}}{M24, rsw}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/56/}}\end{hieroglyph}}{M25}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/57/}}\end{hieroglyph}}{M26, Sma}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/58/}}\end{hieroglyph}}{M27}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/59/}}\end{hieroglyph}}{M28}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/60/}}\end{hieroglyph}}{M29, nDm}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/61/}}\end{hieroglyph}}{M30, bnr}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/62/}}\end{hieroglyph}}{M31}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/63/}}\end{hieroglyph}}{M32}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/64/}}\end{hieroglyph}}{M33}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/65/}}\end{hieroglyph}}{M34, bdt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/66/}}\end{hieroglyph}}{M35}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/67/}}\end{hieroglyph}}{M36, Dr}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/68/}}\end{hieroglyph}}{M37}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/69/}}\end{hieroglyph}}{M38}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/70/}}\end{hieroglyph}}{M39}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/71/}}\end{hieroglyph}}{M40, iz}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/72/}}\end{hieroglyph}}{M41}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/73/}}\end{hieroglyph}}{M42}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/74/}}\end{hieroglyph}}{M43}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GM/75/}}\end{hieroglyph}}{M44}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/32/}}\end{hieroglyph}}{N1, pt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/33/}}\end{hieroglyph}}{N2}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/34/}}\end{hieroglyph}}{N3}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/35/}}\end{hieroglyph}}{N4, iAdt, idt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/36/}}\end{hieroglyph}}{N5, ra, zw, hrw}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/37/}}\end{hieroglyph}}{N6}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/38/}}\end{hieroglyph}}{N7}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/39/}}\end{hieroglyph}}{N8, Hnmmt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/40/}}\end{hieroglyph}}{N9, pzD}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/41/}}\end{hieroglyph}}{N10}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/42/}}\end{hieroglyph}}{N11, Abd, iaH}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/43/}}\end{hieroglyph}}{N12}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/44/}}\end{hieroglyph}}{N13}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/45/}}\end{hieroglyph}}{N14, dwA, sbA}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/46/}}\end{hieroglyph}}{N15, dwAt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/47/}}\end{hieroglyph}}{N16, tA}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/48/}}\end{hieroglyph}}{N17}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/49/}}\end{hieroglyph}}{N18, iw}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/50/}}\end{hieroglyph}}{N19}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/51/}}\end{hieroglyph}}{N20, wDb, idb}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/52/}}\end{hieroglyph}}{N21}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/53/}}\end{hieroglyph}}{N22}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/54/}}\end{hieroglyph}}{N23}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/55/}}\end{hieroglyph}}{N24, spAt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/56/}}\end{hieroglyph}}{N25, xAst}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/57/}}\end{hieroglyph}}{N26, Dw}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/58/}}\end{hieroglyph}}{N27, Axt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/59/}}\end{hieroglyph}}{N28, xa}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/60/}}\end{hieroglyph}}{q, N29}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/61/}}\end{hieroglyph}}{N30, iAt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/62/}}\end{hieroglyph}}{N31}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/63/}}\end{hieroglyph}}{N32}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/64/}}\end{hieroglyph}}{N33}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GZ/36/}}\end{hieroglyph}}{N33A}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/65/}}\end{hieroglyph}}{N34}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/66/}}\end{hieroglyph}}{n, N35}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/67/}}\end{hieroglyph}}{N35A, mw}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/68/}}\end{hieroglyph}}{N36}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/69/}}\end{hieroglyph}}{S, N37}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/70/}}\end{hieroglyph}}{N38}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/71/}}\end{hieroglyph}}{N39}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/72/}}\end{hieroglyph}}{N40, Sm}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GN/73/}}\end{hieroglyph}}{N41, id, N42}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/32/}}\end{hieroglyph}}{O1, pr}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/33/}}\end{hieroglyph}}{O2}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/34/}}\end{hieroglyph}}{O3}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/35/}}\end{hieroglyph}}{h, O4}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/36/}}\end{hieroglyph}}{O5}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/37/}}\end{hieroglyph}}{O6, Hwt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/38/}}\end{hieroglyph}}{O7}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/39/}}\end{hieroglyph}}{O8}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/40/}}\end{hieroglyph}}{O9}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/41/}}\end{hieroglyph}}{O10}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/42/}}\end{hieroglyph}}{O11, aH}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/43/}}\end{hieroglyph}}{O12}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/44/}}\end{hieroglyph}}{O13}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/45/}}\end{hieroglyph}}{O14}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/46/}}\end{hieroglyph}}{O15, wsxt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/47/}}\end{hieroglyph}}{O16}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/48/}}\end{hieroglyph}}{O17}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/49/}}\end{hieroglyph}}{O18, kAr}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/50/}}\end{hieroglyph}}{O19}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/51/}}\end{hieroglyph}}{O20}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/52/}}\end{hieroglyph}}{O21}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/53/}}\end{hieroglyph}}{O22, zH}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/54/}}\end{hieroglyph}}{O23}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/55/}}\end{hieroglyph}}{O24}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/56/}}\end{hieroglyph}}{O25, txn}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/57/}}\end{hieroglyph}}{O26}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/58/}}\end{hieroglyph}}{O27}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/59/}}\end{hieroglyph}}{O28, iwn}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/60/}}\end{hieroglyph}}{O29, aA}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/83/}}\end{hieroglyph}}{aAv, O29v}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/61/}}\end{hieroglyph}}{O30, zxnt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/62/}}\end{hieroglyph}}{O31}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/63/}}\end{hieroglyph}}{O32}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/64/}}\end{hieroglyph}}{O33}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/65/}}\end{hieroglyph}}{z, O34}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/66/}}\end{hieroglyph}}{O35, zb}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/67/}}\end{hieroglyph}}{O36, inb}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/68/}}\end{hieroglyph}}{O37}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/69/}}\end{hieroglyph}}{O38}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/70/}}\end{hieroglyph}}{O39, inr}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/71/}}\end{hieroglyph}}{O40}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/72/}}\end{hieroglyph}}{O41}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/73/}}\end{hieroglyph}}{O42, Ssp, Szp}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/74/}}\end{hieroglyph}}{O43}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/75/}}\end{hieroglyph}}{O44}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/76/}}\end{hieroglyph}}{O45, ipt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/77/}}\end{hieroglyph}}{O46}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/78/}}\end{hieroglyph}}{O47, nxn}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/79/}}\end{hieroglyph}}{O48}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/80/}}\end{hieroglyph}}{O49, niwt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/81/}}\end{hieroglyph}}{O50, zp}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GO/82/}}\end{hieroglyph}}{O51, Snwt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GP/32/}}\end{hieroglyph}}{P1}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GP/33/}}\end{hieroglyph}}{P1A}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GP/34/}}\end{hieroglyph}}{P2}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GP/35/}}\end{hieroglyph}}{P3}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GP/36/}}\end{hieroglyph}}{P4, wHa}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GP/37/}}\end{hieroglyph}}{P5, TAw, nfw}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GP/38/}}\end{hieroglyph}}{P6, aHa}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GP/39/}}\end{hieroglyph}}{P7}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GP/40/}}\end{hieroglyph}}{P8, xrw}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GP/41/}}\end{hieroglyph}}{P9}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GP/42/}}\end{hieroglyph}}{P10}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GP/43/}}\end{hieroglyph}}{P11}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GQ/32/}}\end{hieroglyph}}{Q1, st}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GQ/33/}}\end{hieroglyph}}{Q2, wz}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GQ/34/}}\end{hieroglyph}}{p, Q3, p}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GQ/35/}}\end{hieroglyph}}{Q4}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GQ/36/}}\end{hieroglyph}}{Q5}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GQ/37/}}\end{hieroglyph}}{Q6, qrsw, qrs}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GQ/38/}}\end{hieroglyph}}{Q7}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GR/32/}}\end{hieroglyph}}{R1, xAwt, xAt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GR/33/}}\end{hieroglyph}}{R2}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GR/34/}}\end{hieroglyph}}{R3}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GR/35/}}\end{hieroglyph}}{R4, Htp}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GR/36/}}\end{hieroglyph}}{R5, kAp, kp}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GR/37/}}\end{hieroglyph}}{R6}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GR/38/}}\end{hieroglyph}}{R7, snTr}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GR/39/}}\end{hieroglyph}}{R8, nTr}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GR/40/}}\end{hieroglyph}}{R9, bd}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GR/41/}}\end{hieroglyph}}{R10}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GR/42/}}\end{hieroglyph}}{R11, dd, Dd}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GR/43/}}\end{hieroglyph}}{R12}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GR/44/}}\end{hieroglyph}}{R13}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GR/45/}}\end{hieroglyph}}{R14, imnt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GR/46/}}\end{hieroglyph}}{R15, iAb}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GR/47/}}\end{hieroglyph}}{R16, wx}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GR/48/}}\end{hieroglyph}}{R17}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GR/49/}}\end{hieroglyph}}{R18}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GR/50/}}\end{hieroglyph}}{R19}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GR/51/}}\end{hieroglyph}}{R20}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GR/52/}}\end{hieroglyph}}{R21}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GR/53/}}\end{hieroglyph}}{R22, xm}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GR/54/}}\end{hieroglyph}}{R23}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GR/55/}}\end{hieroglyph}}{R24}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GR/56/}}\end{hieroglyph}}{R25}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/32/}}\end{hieroglyph}}{S1, HDt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/33/}}\end{hieroglyph}}{S2}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/34/}}\end{hieroglyph}}{N, S3, dSrt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/35/}}\end{hieroglyph}}{S4}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/36/}}\end{hieroglyph}}{S5}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/37/}}\end{hieroglyph}}{S6, sxmty}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/38/}}\end{hieroglyph}}{S7, xprS}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/39/}}\end{hieroglyph}}{S8, Atf}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/40/}}\end{hieroglyph}}{S9, Swty}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/41/}}\end{hieroglyph}}{S10, mDH}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/42/}}\end{hieroglyph}}{S11, wsx}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/43/}}\end{hieroglyph}}{S12, nbw}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/44/}}\end{hieroglyph}}{S13}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/45/}}\end{hieroglyph}}{S14}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/46/}}\end{hieroglyph}}{S14A}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/47/}}\end{hieroglyph}}{S15, tHn, THn}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/48/}}\end{hieroglyph}}{S16}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/49/}}\end{hieroglyph}}{S17}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/55/}}\end{hieroglyph}}{S17A}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/50/}}\end{hieroglyph}}{S18, mnit}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/51/}}\end{hieroglyph}}{S19, sDAw}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/52/}}\end{hieroglyph}}{S20, xtm}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/53/}}\end{hieroglyph}}{S21}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/54/}}\end{hieroglyph}}{S22, sT}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/56/}}\end{hieroglyph}}{S23, dmD}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/57/}}\end{hieroglyph}}{S24, Tz}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/58/}}\end{hieroglyph}}{S25}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/59/}}\end{hieroglyph}}{S26, Sndyt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/61/}}\end{hieroglyph}}{S27, mnxt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/62/}}\end{hieroglyph}}{S28}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/63/}}\end{hieroglyph}}{s, S29}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/64/}}\end{hieroglyph}}{S30, sf}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/65/}}\end{hieroglyph}}{S31}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/66/}}\end{hieroglyph}}{S32, siA}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/67/}}\end{hieroglyph}}{S33, Tb}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/68/}}\end{hieroglyph}}{S34, anx}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/70/}}\end{hieroglyph}}{S35, Swt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/71/}}\end{hieroglyph}}{S36}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/72/}}\end{hieroglyph}}{S37, xw}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/73/}}\end{hieroglyph}}{S38, HqA}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/74/}}\end{hieroglyph}}{S39, awt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/75/}}\end{hieroglyph}}{S40, wAs}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/76/}}\end{hieroglyph}}{S41, Dam}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/77/}}\end{hieroglyph}}{S42, abA, sxm, xrp}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/78/}}\end{hieroglyph}}{S43, md}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/79/}}\end{hieroglyph}}{S44, Ams}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/80/}}\end{hieroglyph}}{S45, nxxw}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/32/}}\end{hieroglyph}}{T1}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/33/}}\end{hieroglyph}}{T2}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/34/}}\end{hieroglyph}}{T3, HD}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/35/}}\end{hieroglyph}}{T4}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/36/}}\end{hieroglyph}}{T5}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/37/}}\end{hieroglyph}}{T6, HDD}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/38/}}\end{hieroglyph}}{T7}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/39/}}\end{hieroglyph}}{T7A}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/40/}}\end{hieroglyph}}{T8}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/41/}}\end{hieroglyph}}{T8A}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/42/}}\end{hieroglyph}}{T9, pd}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/43/}}\end{hieroglyph}}{T9A}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/44/}}\end{hieroglyph}}{T10, pD}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/46/}}\end{hieroglyph}}{T11, zin, zwn, sXr}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/47/}}\end{hieroglyph}}{T12, Ai, Ar, rwd, rwD}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/48/}}\end{hieroglyph}}{T13, rs}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/49/}}\end{hieroglyph}}{T14, qmA}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/50/}}\end{hieroglyph}}{T15}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/51/}}\end{hieroglyph}}{T16}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/52/}}\end{hieroglyph}}{T17, wrrt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/53/}}\end{hieroglyph}}{T18, Sms}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/54/}}\end{hieroglyph}}{T19, qs}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/55/}}\end{hieroglyph}}{T20}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/56/}}\end{hieroglyph}}{T21, wa}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/57/}}\end{hieroglyph}}{T22, sn}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/58/}}\end{hieroglyph}}{T23}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/59/}}\end{hieroglyph}}{T24, iH}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/60/}}\end{hieroglyph}}{T25, DbA}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/61/}}\end{hieroglyph}}{T26}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/62/}}\end{hieroglyph}}{T27}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/63/}}\end{hieroglyph}}{T28, Xr}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/64/}}\end{hieroglyph}}{T29, nmt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/65/}}\end{hieroglyph}}{T30}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/66/}}\end{hieroglyph}}{T31, sSm}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/67/}}\end{hieroglyph}}{T32}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/68/}}\end{hieroglyph}}{T33}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/69/}}\end{hieroglyph}}{T34, nm}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/70/}}\end{hieroglyph}}{T35}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/32/}}\end{hieroglyph}}{U1, mA}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/33/}}\end{hieroglyph}}{U2}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/34/}}\end{hieroglyph}}{U3}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/35/}}\end{hieroglyph}}{U4}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/36/}}\end{hieroglyph}}{U5}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/37/}}\end{hieroglyph}}{U6, mr}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/38/}}\end{hieroglyph}}{U7}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/39/}}\end{hieroglyph}}{U8}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/40/}}\end{hieroglyph}}{U9}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/41/}}\end{hieroglyph}}{U10, it}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/42/}}\end{hieroglyph}}{U11, HqAt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/43/}}\end{hieroglyph}}{U12}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/45/}}\end{hieroglyph}}{U13, hb, Sna}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/46/}}\end{hieroglyph}}{U14}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/47/}}\end{hieroglyph}}{U15, tm}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/48/}}\end{hieroglyph}}{U16, biA}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/49/}}\end{hieroglyph}}{U17, grg}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/50/}}\end{hieroglyph}}{U18}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/51/}}\end{hieroglyph}}{U19}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/52/}}\end{hieroglyph}}{U20}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/53/}}\end{hieroglyph}}{U21, stp}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/54/}}\end{hieroglyph}}{U22, mnx}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/55/}}\end{hieroglyph}}{U23, Ab}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/56/}}\end{hieroglyph}}{U24, Hmt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/57/}}\end{hieroglyph}}{U25}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/58/}}\end{hieroglyph}}{U26, wbA}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/59/}}\end{hieroglyph}}{U27}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/60/}}\end{hieroglyph}}{U28, DA}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/61/}}\end{hieroglyph}}{U29}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/62/}}\end{hieroglyph}}{U30}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/63/}}\end{hieroglyph}}{U31, rtH}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/64/}}\end{hieroglyph}}{U32, zmn}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/65/}}\end{hieroglyph}}{U33, ti}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/66/}}\end{hieroglyph}}{U34, xsf}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/67/}}\end{hieroglyph}}{U35}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/70/}}\end{hieroglyph}}{U36, Hm}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/71/}}\end{hieroglyph}}{U37}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/72/}}\end{hieroglyph}}{U38, mxAt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/73/}}\end{hieroglyph}}{U39}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/74/}}\end{hieroglyph}}{U40}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/75/}}\end{hieroglyph}}{U41}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/32/}}\end{hieroglyph}}{V1, St, Snt, 100}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/33/}}\end{hieroglyph}}{V2, sTA}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/34/}}\end{hieroglyph}}{V3, sTAw}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/35/}}\end{hieroglyph}}{V4, wA}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/36/}}\end{hieroglyph}}{V5, snT}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/37/}}\end{hieroglyph}}{V6, Ss}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/38/}}\end{hieroglyph}}{V7, Sn}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/39/}}\end{hieroglyph}}{V8}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/40/}}\end{hieroglyph}}{V9}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/41/}}\end{hieroglyph}}{V10}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/42/}}\end{hieroglyph}}{V11}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/43/}}\end{hieroglyph}}{V12, arq}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/44/}}\end{hieroglyph}}{T, V13, T}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/45/}}\end{hieroglyph}}{V14}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/46/}}\end{hieroglyph}}{V15, iTi}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/47/}}\end{hieroglyph}}{V16}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/48/}}\end{hieroglyph}}{V17}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/49/}}\end{hieroglyph}}{V18}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/50/}}\end{hieroglyph}}{V19, mDt, XAr, TmA}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/51/}}\end{hieroglyph}}{V20, 10, mD}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/52/}}\end{hieroglyph}}{V21}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/53/}}\end{hieroglyph}}{V22, mH}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/54/}}\end{hieroglyph}}{V23}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/55/}}\end{hieroglyph}}{V24, wD}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/56/}}\end{hieroglyph}}{V25}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/57/}}\end{hieroglyph}}{V26, aD}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/58/}}\end{hieroglyph}}{V27}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/59/}}\end{hieroglyph}}{H, V28}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/60/}}\end{hieroglyph}}{V29, wAH, sk}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/61/}}\end{hieroglyph}}{V30, nb}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/62/}}\end{hieroglyph}}{k, V31}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/63/}}\end{hieroglyph}}{V31A, k'}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/64/}}\end{hieroglyph}}{V32, msn}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/65/}}\end{hieroglyph}}{V33, sSr}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/66/}}\end{hieroglyph}}{V34}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/67/}}\end{hieroglyph}}{V35}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/68/}}\end{hieroglyph}}{V36}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/69/}}\end{hieroglyph}}{V37, idr}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GV/70/}}\end{hieroglyph}}{V38}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GS/69/}}\end{hieroglyph}}{V39}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GW/32/}}\end{hieroglyph}}{W1}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GW/33/}}\end{hieroglyph}}{W2, bAs}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GW/34/}}\end{hieroglyph}}{W3, Hb}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GW/35/}}\end{hieroglyph}}{W4}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GW/36/}}\end{hieroglyph}}{W5}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GW/37/}}\end{hieroglyph}}{W6}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GW/38/}}\end{hieroglyph}}{W7}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GW/39/}}\end{hieroglyph}}{W8}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GW/40/}}\end{hieroglyph}}{W9, Xnm}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GW/41/}}\end{hieroglyph}}{W10, iab}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GW/42/}}\end{hieroglyph}}{W10A}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GW/44/}}\end{hieroglyph}}{g, W11, nst}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GW/45/}}\end{hieroglyph}}{W12}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GW/46/}}\end{hieroglyph}}{W13}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GW/47/}}\end{hieroglyph}}{W14, Hz}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GW/48/}}\end{hieroglyph}}{W15}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GW/49/}}\end{hieroglyph}}{W16}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GW/50/}}\end{hieroglyph}}{W17, xnt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GW/51/}}\end{hieroglyph}}{W18}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GW/52/}}\end{hieroglyph}}{W19, mi}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GW/53/}}\end{hieroglyph}}{W20}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GW/54/}}\end{hieroglyph}}{W21}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GW/55/}}\end{hieroglyph}}{W22, Hnqt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GW/56/}}\end{hieroglyph}}{W23}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GW/57/}}\end{hieroglyph}}{W24, nw}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GW/58/}}\end{hieroglyph}}{W25, ini}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GX/32/}}\end{hieroglyph}}{t, X1}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GX/33/}}\end{hieroglyph}}{X2}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GX/34/}}\end{hieroglyph}}{X3}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GX/35/}}\end{hieroglyph}}{X4}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GX/37/}}\end{hieroglyph}}{X5}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GX/38/}}\end{hieroglyph}}{X6}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GX/39/}}\end{hieroglyph}}{X7}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GX/40/}}\end{hieroglyph}}{X8, rdi, di}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GY/40/}}\end{hieroglyph}}{Y1v}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GY/32/}}\end{hieroglyph}}{Y1, mDAt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GY/33/}}\end{hieroglyph}}{Y2}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GY/34/}}\end{hieroglyph}}{Y3, zS, mnhd}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GY/35/}}\end{hieroglyph}}{Y4}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GY/36/}}\end{hieroglyph}}{Y5, mn}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GY/37/}}\end{hieroglyph}}{Y6, ibA}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GY/38/}}\end{hieroglyph}}{Y7}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GY/39/}}\end{hieroglyph}}{Y8, zSSt}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GZ/32/}}\end{hieroglyph}}{Z1, 1}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GZ/33/}}\end{hieroglyph}}{Z2, 3}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GZ/34/}}\end{hieroglyph}}{Z3}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GZ/35/}}\end{hieroglyph}}{Z3A}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GZ/37/}}\end{hieroglyph}}{Z4, y}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GZ/38/}}\end{hieroglyph}}{Z5}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GZ/39/}}\end{hieroglyph}}{Z6}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GZ/40/}}\end{hieroglyph}}{W, Z7}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GZ/41/}}\end{hieroglyph}}{Z8}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GZ/44/}}\end{hieroglyph}}{Z9}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GZ/45/}}\end{hieroglyph}}{Z10}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GZ/46/}}\end{hieroglyph}}{Z11, imi, wnm}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GZ/50/}}\end{hieroglyph}}{Z12}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GZ/47/}}\end{hieroglyph}}{`, Z98A}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GZ/43/}}\end{hieroglyph}}{spd, Z99A}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GAa/32/}}\end{hieroglyph}}{x, Aa1}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GAa/33/}}\end{hieroglyph}}{Aa2}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GAa/34/}}\end{hieroglyph}}{Aa3}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GW/43/}}\end{hieroglyph}}{Aa4}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GAa/35/}}\end{hieroglyph}}{Aa5, Hp}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GAa/36/}}\end{hieroglyph}}{Aa6}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GAa/37/}}\end{hieroglyph}}{Aa7}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GAa/38/}}\end{hieroglyph}}{Aa8, qn}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GAa/39/}}\end{hieroglyph}}{Aa9}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GAa/40/}}\end{hieroglyph}}{Aa10}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GAa/41/}}\end{hieroglyph}}{Aa11, mAa}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GAa/42/}}\end{hieroglyph}}{Aa12}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GAa/43/}}\end{hieroglyph}}{M, Aa13, im, gs}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GAa/44/}}\end{hieroglyph}}{Aa14}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GAa/45/}}\end{hieroglyph}}{Aa15}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GAa/46/}}\end{hieroglyph}}{Aa16}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GAa/47/}}\end{hieroglyph}}{Aa17, sA}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GAa/48/}}\end{hieroglyph}}{Aa18}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GAa/49/}}\end{hieroglyph}}{Aa19}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GAa/50/}}\end{hieroglyph}}{Aa20, apr}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GAa/51/}}\end{hieroglyph}}{Aa21, wDa}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GAa/52/}}\end{hieroglyph}}{Aa22}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/68/}}\end{hieroglyph}}{Aa23}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GU/69/}}\end{hieroglyph}}{Aa24}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GAa/53/}}\end{hieroglyph}}{Aa25}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GAa/54/}}\end{hieroglyph}}{Aa26}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GAa/55/}}\end{hieroglyph}}{Aa27, nD}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GAa/56/}}\end{hieroglyph}}{Aa28, qd}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GAa/57/}}\end{hieroglyph}}{Aa29}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GAa/58/}}\end{hieroglyph}}{Aa30, Xkr}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GAa/59/}}\end{hieroglyph}}{Aa31}
\showHvalue{\begin{hieroglyph}{\leavevmode \loneSign{\Aca GT/45/}}\end{hieroglyph}}{Aa32}

View File

@ -0,0 +1,21 @@
\documentclass{article}
\usepackage{hiero}
\declareHieroGlyphicFont{UUU}{titi}
\begin{document}
#signdecl User04 UUU 32 #enddecl
#signdecl User05 UUU 33 #enddecl
#signdecl User06 UUU 34 #enddecl
\begin{hieroglyph}
\end{hieroglyph}
\begin{hieroglyph}
User04-User06-User05
\end{hieroglyph}
\end{document}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% End:

View File

@ -0,0 +1,13 @@
% This file defines the Metafont font titi
true_design_size# := 14.000pt#;
input Hibzrstp;
font_coding_scheme := "Egyptian font titi";
font_identifier := "titi";
input titi_font.mf;
def mamodif= identity reflectedabout((w/2,h), (w/2,0)); enddef;
def depart= 128 -31; enddef;
input titi_font.mf;
bye.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,91 @@
% teTeX's config.ps. Thomas Esser, 1998, public domain.
% Memory available. Download the three-line PostScript file:
% %! Hey, we're PostScript
% /Times-Roman findfont 30 scalefont setfont 144 432 moveto
% vmstatus exch sub 40 string cvs show pop showpage
% to determine this number. (It will be the only thing printed.)
m 3500000
% How to print, maybe with lp instead lpr, etc. If commented-out, output
% will go into a file by default.
o |lpr
% Default resolution of this device, in dots per inch.
D 600
X 600
Y 600
% Metafont mode. (This is completely different from the -M command-line
% option, which controls whether MakeTeXPK is invoked.) Get
% @url{ftp://ftp.tug.org/tex/modes.mf} for a list of mode names. This mode
% and the D number above must agree, or MakeTeXPK will get confused.
M ljfour
% Also look for this list of resolutions.
R 300 600
% Correct printer offset. You can use testpage.tex from the LaTeX
% distribution to find these numbers.
O 0pt,0pt
% With a high resolution and a RISC cpu, better to compress the bitmaps.
% PS files are much more compact, but can sometimes cause trouble.
Z
% Partially download Type 1 fonts by default. Only reason not to do
% this is if you encounter bugs. (Please report them to
% @email{tex-k@@mail.tug.org} if you do.)
j
% Configuration of postscript type 1 fonts:
p psfonts.map
% This shows how to add your own map file.
% Remove the comment and adjust the name:
p +hierofonts.map
@ A4size 210mm 297mm
@+ %%PaperSize: A4
@ letterSize 8.5in 11in
@ letter 8.5in 11in
@+ %%BeginPaperSize: Letter
@+ letter
@+ %%EndPaperSize
@ legal 8.5in 14in
@+ ! %%DocumentPaperSizes: Legal
@+ %%BeginPaperSize: Legal
@+ legal
@+ %%EndPaperSize
@ ledger 17in 11in
@+ ! %%DocumentPaperSizes: Ledger
@+ %%BeginPaperSize: Ledger
@+ ledger
@+ %%EndPaperSize
@ tabloid 11in 17in
@+ ! %%DocumentPaperSizes: Tabloid
@+ %%BeginPaperSize: Tabloid
@+ 11x17
@+ %%EndPaperSize
@ a4 210mm 297mm
@+ ! %%DocumentPaperSizes: a4
@+ %%BeginPaperSize: a4
@+ a4
@+ %%EndPaperSize
@ a3 297mm 420mm
@+ ! %%DocumentPaperSizes: a3
@+ %%BeginPaperSize: a3
@+ a3
@+ %%EndPaperSize
@ unknown 0in 0in
@+ statusdict /setpageparams known { hsize vsize 0 1 statusdict begin {
@+ setpageparams } stopped end } { true } ifelse { statusdict /setpage known
@+ { hsize vsize 1 statusdict begin { setpage } stopped pop end } if } if

View File

@ -0,0 +1,4 @@
diacr10 <diacr.pfa
diacrb10 <diacrb10.pfa
diacr12 <diacr12.pfa
Egyp <Egyp.pfa

View File

@ -0,0 +1,27 @@
HieroA HieroA <HieroA.pfa
HieroAa HieroAa <HieroAa.pfa
HieroB HieroB <HieroB.pfa
HieroC HieroC <HieroC.pfa
HieroD HieroD <HieroD.pfa
HieroE HieroE <HieroE.pfa
HieroExt HieroExt <HieroExt.pfa
HieroF HieroF <HieroF.pfa
HieroG HieroG <HieroG.pfa
HieroH HieroH <HieroH.pfa
HieroI HieroI <HieroI.pfa
HieroK HieroK <HieroK.pfa
HieroL HieroL <HieroL.pfa
HieroM HieroM <HieroM.pfa
HieroN HieroN <HieroN.pfa
HieroO HieroO <HieroO.pfa
HieroP HieroP <HieroP.pfa
HieroQ HieroQ <HieroQ.pfa
HieroR HieroR <HieroR.pfa
HieroS HieroS <HieroS.pfa
HieroT HieroT <HieroT.pfa
HieroU HieroU <HieroU.pfa
HieroV HieroV <HieroV.pfa
HieroW HieroW <HieroW.pfa
HieroX HieroX <HieroX.pfa
HieroY HieroY <HieroY.pfa
HieroZ HieroZ <HieroZ.pfa

View File

@ -0,0 +1,208 @@
% Symboles divers
if unknown cmbase: input cmbase fi
font_identifier:="EGYP"; font_size 12pt#;
u#:=23.5/36pt#; % unit width
width_adj#:=0pt#; % width adjustment for certain characters
serif_fit#:=0pt#; % extra sidebar near lowercase serifs
cap_serif_fit#:=5.8/36pt#; % extra sidebar near uppercase serifs
letter_fit#:=0pt#; % extra space added to all sidebars
body_height#:=324/36pt#; % height of tallest characters
asc_height#:=300/36pt#; % height of lowercase ascenders
cap_height#:=295.2/36pt#; % height of caps
fig_height#:=278.4/36pt#; % height of numerals
x_height#:=186/36pt#; % height of lowercase without ascenders
math_axis#:=108/36pt#; % axis of symmetry for math symbols
bar_height#:=104.4/36pt#; % height of crossbar in lowercase e
comma_depth#:=84/36pt#; % depth of comma below baseline
desc_depth#:=84/36pt#; % depth of lowercase descenders
crisp#:=0pt#; % diameter of serif corners
tiny#:=8/36pt#; % diameter of rounded corners
fine#:=7/36pt#; % diameter of sharply rounded corners
thin_join#:=7.5/36pt#; % width of extrafine details
hair#:=9.5/36pt#; % lowercase hairline breadth
stem#:=28/36pt#; % lowercase stem breadth
curve#:=33/36pt#; % lowercase curve breadth
ess#:=30/36pt#; % breadth in middle of lowercase s
flare#:=36/36pt#; % diameter of bulbs or breadth of terminals
dot_size#:=42/36pt#; % diameter of dots
cap_hair#:=11.5/36pt#; % uppercase hairline breadth
cap_stem#:=35/36pt#; % uppercase stem breadth
cap_curve#:=40/36pt#; % uppercase curve breadth
cap_ess#:=38/36pt#; % breadth in middle of uppercase s
rule_thickness#:=.44pt#; % thickness of lines in math symbols
dish#:=1/36pt#; % amount erased at top or bottom of serifs
bracket#:=24/36pt#; % vertical distance from serif base to tangent
jut#:=33/36pt#; % protrusion of lowercase serifs
cap_jut#:=41/36pt#; % protrusion of uppercase serifs
beak_jut#:=11.4/36pt#; % horizontal protrusion of beak serifs
beak#:=84/36pt#; % vertical protrusion of beak serifs
vair#:=8.5/36pt#; % vertical diameter of hairlines
notch_cut#:=12pt#; % maximum breadth above or below notches
bar#:=12.5/36pt#; % lowercase bar thickness
slab#:=12.5/36pt#; % serif and arm thickness
cap_bar#:=12.5/36pt#; % uppercase bar thickness
cap_band#:=12.5/36pt#; % uppercase thickness above/below lobes
cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
serif_drop#:=4.8/36pt#; % vertical drop of sloped serifs
stem_corr#:=1/36pt#; % for small refinements of stem breadth
vair_corr#:=1/36pt#; % for small refinements of hairline height
apex_corr#:=0pt#; % extra width at diagonal junctions
o#:=9/36pt#; % amount of overshoot for curves
apex_o#:=9/36pt#; % amount of overshoot for diagonal junctions
slant:=0; % tilt ratio $(\Delta x/\Delta y)$
fudge:=1; % factor applied to weights of heavy characters
math_spread:=-0.2; % extra openness of math symbols
superness:=1/sqrt2; % parameter for superellipses
superpull:=1/6; % extra openness inside bowls
beak_darkness:=11/30; % fraction of triangle inside beak serifs
ligs:=2; % level of ligatures to be included
square_dots:=false; % should dots be square?
hefty:=false; % should we try hard not to be overweight?
serifs:=true; % should serifs and bulbs be attached?
monospace:=false; % should all characters have the same width?
math_fitting:=false; % should math-mode spacing be used?
mode_setup; font_setup;
cmchar "Hachures 1/4 quadra";
beginchar("C", 0.75x_height#, 0.75x_height#, 0u#);
pickup pencircle scaled 0.5pt;
z0=(0,0); z1= (w,h);
draw z0--z1;
penlabels(0,1);
endchar;
thickness#:= 0.3mm#;
thickness:=ceiling(thickness#*hppp); % the way rules thicknesses are done
numeric correc;
correc:= 0.5 thickness;
cmchar "1/4 cartouche";
beginchar("1", 1.5x_height#, 1.5x_height#, 0u#);
pickup pencircle scaled thickness;
z0=(correc,0);
z1=(w,h-correc);
z3=(correc,h);
draw z0{up}..(z0+z1+2z3)/4..z1{right};
penlabels(0,1,3);
endchar;
cmchar "1/4 cartouche";
beginchar("2", 1.5x_height#, 1.5x_height#, 0u#);
pickup pencircle scaled thickness;
z0=(correc,h);
z1=(w,correc);
z3=(correc,correc);
draw z0{down}..(z0+z1+2z3)/4..z1{right};
penlabels(0,1,3);
endchar;
cmchar "1/4 cartouche";
beginchar("3", 1.5x_height#, 1.5x_height#, 0u#);
pickup pencircle scaled thickness;
z0=(0,correc);
z1=(w-correc,h);
z3=(w-correc,correc);
draw z0{right}..(z0+z1+2z3)/4..z1{up};
penlabels(0,1,3);
endchar;
cmchar "1/4 cartouche";
beginchar("4", 1.5x_height#, 1.5x_height#, 0u#);
pickup pencircle scaled thickness;
z0=(w-correc,0);
z1=(0,h-correc);
z3=(w-correc,h-correc);
draw z0{up}..(z0+z1+2z3)/4..z1{left};
penlabels(0,1,3);
endchar;
cmchar "Noeud du Cartouche";
beginchar("5", 0.5x_height#, 3x_height#, 0u#);
pickup pensquare scaled thickness;
z0=(-0.5correc,0);
z1=(-0.5correc,h);
draw z0---z1;
pickup pencircle scaled thickness;
z2=(0,-1.5 thickness);
z3=(1.5 thickness,0);
z4=(- thickness, h/2);
draw z4---z4+z3;
draw (z4-z2)---((z4-z2)+z3);
draw (z4+z2)---((z4+z2)+z3);
penlabels(0,1,3,4,);
endchar;
cmchar "Noeud du Cartouche horizontal";
beginchar("6", 3x_height#, 0.5x_height#, 0u#);
pickup pensquare scaled thickness;
z0=(0, -0.5correc);
z1=(w, -0.5correc);
draw z0---z1;
pickup pencircle scaled thickness;
z2=(-1.5 thickness,0);
z3=(0,1.5 thickness);
z4=(w/2,-0.5correc);
draw (z4-z3)---(z4+z3);
draw ((z4-z2)-z3)---((z4-z2)+z3);
draw ((z4+z2)-z3)---((z4+z2)+z3);
penlabels(0,1,3,4,);
endchar;
cmchar "Noeud du Cartouche, d->g";
beginchar("7", 0.5x_height#, 3x_height#, 0u#);
pickup pensquare scaled thickness;
z0=(w+0.5correc,0);
z1=(w+0.5correc,h);
draw z0---z1;
pickup pencircle scaled thickness;
z2=(0,-1.5 thickness);
z3=(1.5 thickness,0);
z4=( w-thickness, h/2);
draw z4---z4+z3;
draw (z4-z2)---((z4-z2)+z3);
draw (z4+z2)---((z4+z2)+z3);
penlabels(0,1,3,4,);
endchar;
cmchar "chateau";
beginchar("8", 1.5x_height#, 1.5x_height#, 0u#);
pickup pensquare scaled thickness;
z0=(0+correc,0+correc);
z1=(0+correc,w-correc);
z2=(w-correc,w-correc);
z3=(w-correc,0+correc);
draw z0--z1--z2--z3--z0;
endchar;
cmchar "point rouge";
beginchar("o", x_height#, x_height#, 0u#);
pickup pencircle scaled thickness;
z0=(correc,h/2);
z1=(w/2,h-correc);
z2=(w-correc,h/2);
z3=(w/2,correc);
draw z0{up}..z1..z2..z3..cycle;
penlabels(0,1,2,3);
endchar;
cmchar "point noir";
beginchar("O", x_height#, x_height#, 0u#);
pickup pencircle scaled thickness;
z0=(correc,h/2);
z1=(w/2,h-correc);
z2=(w-correc,h/2);
z3=(w/2,correc);
filldraw z0{up}..z1..z2..z3..cycle;
penlabels(0,1,2,3);
endchar;
bye.

View File

@ -0,0 +1,237 @@
%
% THIS FILE was patched (1993) by S. Rosmorduc to allow both left-to-right and
% right-to-left drawing with the same MF sources.
% This patch is probably of no interest for non-hieroglyphic fonts.
%
% bzrsetup.mf: interesting and/or necessary things for bzrto's Metafont output.
%
% Copyright (C) 1992 Free Software Foundation, Inc.
%
% This program is free software; you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation; either version 2, or (at your option)
% any later version.
%
% This program is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with this program; if not, write to the Free Software
% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
% |true_design_size| must be set before this file is input. It is
% supposed to be the design size of the original font. If the user does
% not set |designsize| on the command line, we default to the following.
default_design_size# := 10pt#;
if designsize = 0: designsize := default_design_size#; fi;
% It's pointless to actually produce different TFM files for different
% design sizes: we have only one set of outlines, after all. So we
% adjust the resolution to account for different sizes, by setting
% |mag|. Then we reset |designsize| to the default.
if unknown mag: mag := 1; fi;
mag := mag * designsize / default_design_size#;
% So we can produce output at varying sizes, all our dimensions are
% output in terms of the ad hoc parameter |u|.
%
u# := default_design_size# / true_design_size#;
designsize := default_design_size#;
% Macros from page 289 of {\sl The Metafontbook} for short-circuit evaluation.
%
def cand (text q) = startif true q else: false fi enddef;
def cor (text q) = startif true true else: q fi enddef;
tertiarydef p startif true = if p: enddef;
% The proof resolution of 2601.72 pixels per inch established by plain
% \MF\ does not always work, because the characters might be too large
% (or small, for that matter) for the paper size. So, here we change
% the proof resolution to fit the design size of the font into
% |proof_size| inches. To do this, we must know the resolution of the
% device the proof output will be printed on; we make |proof_resolution|
% default to 300.
%
if unknown mode cor ((mode = proof) or (mode = smoke)):
% Given in inches:
if unknown proof_size: proof_size := 7; fi;
% Given in pixels per inch:
if unknown proof_resolution: proof_resolution := 300; fi;
% Set up the new mode to be the same as the old one, except for the
% resolution.
original_mode := if known mode: mode else: proof fi;
mode_def bzr_proof_mode =
if original_mode = proof:
proof_;
else:
smoke_;
fi;
pixels_per_inch
:= (proof_size * proof_resolution)
* (72.27 / proof_resolution)
* (72.27 / designsize);
enddef;
mode := bzr_proof_mode;
fi;
% Set up the device values for this run. Since we allow a nonstandard
% value of |proofing| (see below), we must save its value, if it has
% already been assigned.
%
if (known proofing) cand (proofing > 2):
save_proofing := proofing;
fi
mode_setup;
if known save_proofing:
proofing := save_proofing;
fi;
% We can't define the pixel-oriented version of |u| until after
% |mode_setup| has been called.
define_pixels (u);
% Use a font that blends better with the \MF\ logo for the title line.
%
special "titlefont cmss8";
% If we are doing smoke proofs, put the character at its actual size on
% the output; if we're doing gray proofs, use a smaller font for the
% labels.
%
% Produce a |makelabel| command for each |z| point in |point_list| and
% each suffix in |suffixes|.
%
def general_label (text point_list, suffixes) =
forsuffixes point_suffix = ,suffixes:
forsuffixes point = point_list:
% Unfortunately, the way in which the |str| operator formats its
% argument (which is an arbitrary suffix) cannot be changed, so
% the proofsheets end up showing "0 0" for the variable |z[0][0]|.
makelabel (str point.point_suffix, z.point.point_suffix);
endfor
endfor
enddef;
% Define our labels for the proofsheets. The person running Metafont
% can also see the control points on each spline, by setting
% |proofing>2| at the beginning. (The {\tt plain.mf} macros only
% distinguish between |proofing=0|, |proofing>0| and |proofing>1|, so we
% are not disturbing them.)
%
def proof_labels (text t) =
% We need to delimit the arguments here, so \MF\ knows where the
% second |text| argument begins. Our output uses the suffix |"s"| for
% startpoints of segments, and the suffixes |"c1"| and |"c2"| for
% control points.
if proofing > 1: general_label (t) (s); fi;
if proofing > 2: general_label (t) (c1,c2); fi;
enddef;
% We define our characters as filled outlines; page 206 of {\sl The
% Metafontbook} suggests disabling \MF's |autorounding| and
% |smoothing| features in that case.
%
autorounding := 0; % 0 avant pour les deux!
%%% granularity:=0;
smoothing := 0;
% Sometimes we want to fill our paths, other times unfill them,
% depending on whether the winding number is positive or negative. We
% could be absolutely safe here, and declare |temp_path| inside a group,
% at every invocation of |fill_or_unfill|; but this would waste time and
% space to no advantage, since we know exactly what kind of \MF\
% programs we output, and the variable |temp_path| is not used in them.
%
% Incidentally, we need a variable in the first place only because it is more
% efficient to avoid evaluating long paths more than once.
%
path temp_path;
def fill_or_unfill expr p =
temp_path := p;
if turningnumber temp_path > 0: fill else: unfill fi temp_path;
enddef;
% Since we can assume the font fills all cycles counterclockwise
% (because PostScript requires this), we want to disable the
% |turningnumber| checking which generates the `Strange path' errors.
% See p.112 and p.119 of the Metafontbook.
%
% (By the way, setting |turningcheck := 0| makes Metafont always use the
% filling rule for positive turning number, i.e., always |fill| and
% never |unfill|. When would this be useful?)
%
turningcheck := 1;
% When we don't know the dimensions of the character we're defining
% before we define it, we have to use these to begin it:
def begin_no_dimen_char (expr c) =
begingroup
transform save_currenttransform;
save_currenttransform := currenttransform;
charcode:=if known c: byte c else: 0 fi;
charic:=0; clearxy; clearit; clearpen; scantokens extra_beginchar;
enddef;
def end_no_dimen_char =
currenttransform := save_currenttransform;
endchar;
enddef;
% When use the above to start a character, must call this before `endchar'.
%
def set_char_dimens (expr w_sharp,h_sharp,d_sharp) =
charwd:=w_sharp; charht:=h_sharp; chardp:=d_sharp;
w:=hround(charwd*hppp); h:=vround(charht*hppp); d:=vround(chardp*hppp);
enddef;
% Move by shifting the current transform matrix.
%
def move (expr h_amount, v_amount) =
currenttransform := currenttransform shifted (h_amount, v_amount);
enddef;
def hmove (expr amount) = move (amount, 0); enddef;
def vmove (expr amount) = move (0, amount); enddef;
%%
%% BEGINNING OF PATCH
%%
%%def depart= -31; enddef;
def depart= 0; enddef;
transform modif;
modif := identity;
def mamodif= identity; enddef;
def beginchar(expr c,w_sharp,h_sharp,d_sharp) =
begingroup
charcode:=c + depart;
charwd:=w_sharp; charht:=h_sharp; chardp:=d_sharp;
w:=hround(charwd*hppp); h:=vround(charht*hppp); d:=vround(chardp*hppp);
charic:=0; clearxy; clearit; clearpen; scantokens extra_beginchar;
transform save_currenttransform;
save_currenttransform= currenttransform;
modif:= mamodif;
currenttransform:= currenttransform transformed modif;
enddef;
def endchar =
scantokens extra_endchar;
if proofing>0: makebox(proofrule); fi
chardx:=w; % desired width of the character in pixels
shipit;
if displaying>0: makebox(screenrule); showit; fi
currenttransform:= save_currenttransform;
endgroup enddef;

View File

@ -0,0 +1,59 @@
% This file defines characters common to roman and italic text fonts
% that appear only when |ligs>0|.
% Character codes \0042, \0055, \0134, \0173, and \0174 are generated.
ligtable "`": "`"=:oct"134";
ligtable "'": "'"=:oct"042", "?" kern 2u#, "!" kern 2u#;
ligtable "-": "-"=:oct"173";
ligtable oct"173": "-"=:oct"174";
cmchar "Closing quotes";
beginchar(oct"042",7u#+max(2u#,dot_size#),asc_height#,0);
italcorr asc_height#*slant+dot_size#-4.1u#;
adjust_fit(0,0);
x1-.5dot_size=hround .6u; y2+.5dot_size=h;
x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1;
comma(1,a,dot_size,.25u,comma_depth); % left dot and tail
comma(2,b,dot_size,.25u,comma_depth); % right dot and tail
penlabels(1,2); endchar;
cmchar "Hyphen";
beginchar("-",6u#,x_height#,0);
italcorr .5x_height#*slant-.5u#;
adjust_fit(0,0);
numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(w-u)+eps;
if monospace: x2=w-x1 else: lft x1=hround .2u-eps fi;
filldraw stroke z1e--z2e; % bar
penlabels(1,2); endchar;
cmchar "Opening quotes";
beginchar(oct"134",7u#+max(2u#,dot_size#),asc_height#,0);
italcorr asc_height#*slant-.1u#;
adjust_fit(0,0);
x2+.5dot_size=hround(w-.6u); y1+.5dot_size=h-comma_depth;
x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1;
ammoc(1,a,dot_size,.25u,comma_depth); % left dot and tail
ammoc(2,b,dot_size,.25u,comma_depth); % right dot and tail
penlabels(1,2); endchar;
cmchar "En dash";
beginchar(oct"173",9u#,x_height#,0);
italcorr .61803x_height#*slant+.5u#;
adjust_fit(0,0);
pickup crisp.nib; pos1(vair,90); pos2(vair,90);
top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
filldraw stroke z1e--z2e; % bar
penlabels(1,2); endchar;
cmchar "Em dash";
beginchar(oct"174",18u#,x_height#,0);
italcorr .61803x_height#*slant+.5u#;
adjust_fit(letter_fit#,letter_fit#);
pickup crisp.nib; pos1(vair,90); pos2(vair,90);
top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
filldraw stroke z1e--z2e; % bar
penlabels(1,2); endchar;

View File

@ -0,0 +1,77 @@
% fontes diacritiques bas'ees sur Computer Modern Text Italic 10 point
if unknown cmbase: input cmbase fi
font_identifier:="DIACR"; font_size 10pt#;
u#:=18.4/36pt#; % unit width
width_adj#:=0pt#; % width adjustment for certain characters
serif_fit#:=0pt#; % extra sidebar near lowercase serifs
cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
letter_fit#:=9.2/36pt#; % extra space added to all sidebars
body_height#:=270/36pt#; % height of tallest characters
asc_height#:=250/36pt#; % height of lowercase ascenders
cap_height#:=246/36pt#; % height of caps
fig_height#:=232/36pt#; % height of numerals
x_height#:=155/36pt#; % height of lowercase without ascenders
math_axis#:=90/36pt#; % axis of symmetry for math symbols
bar_height#:=87/36pt#; % height of crossbar in lowercase e
comma_depth#:=70/36pt#; % depth of comma below baseline
desc_depth#:=70/36pt#; % depth of lowercase descenders
crisp#:=12/36pt#; % diameter of serif corners (8)
tiny#:=12/36pt#; % diameter of rounded corners (8)
fine#:=11/36pt#; % diameter of sharply rounded corners (7)
thin_join#:=11/36pt#; % width of extrafine details (7)
hair#:=20/36pt#; % lowercase hairline breadth (11)
stem#:=23/36pt#; % lowercase stem breadth
curve#:=28/36pt#; % lowercase curve breadth
ess#:=27/36pt#; % breadth in middle of lowercase s
flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
dot_size#:=38/36pt#; % diameter of dots
cap_hair#:=11/36pt#; % uppercase hairline breadth
cap_stem#:=29/36pt#; % uppercase stem breadth
cap_curve#:=34/36pt#; % uppercase curve breadth
cap_ess#:=31/36pt#; % breadth in middle of uppercase s
rule_thickness#:=.4pt#; % thickness of lines in math symbols
dish#:=1/36pt#; % amount erased at top or bottom of serifs
bracket#:=20/36pt#; % vertical distance from serif base to tangent
jut#:=30/36pt#; % protrusion of lowercase serifs
cap_jut#:=34/36pt#; % protrusion of uppercase serifs
beak_jut#:=9/36pt#; % horizontal protrusion of beak serifs
beak#:=70/36pt#; % vertical protrusion of beak serifs
vair#:=20/36pt#; % vertical diameter of hairlines (8)
notch_cut#:=10pt#; % maximum breadth above or below notches
bar#:=20/36pt#; % lowercase bar thickness (11)
slab#:=20/36pt#; % serif and arm thickness (11)
cap_bar#:=20/36pt#; % uppercase bar thickness (11)
cap_band#:=20/36pt#; % uppercase thickness above/below lobes (11)
cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
serif_drop#:=4/36pt#; % vertical drop of sloped serifs
stem_corr#:=1/36pt#; % for small refinements of stem breadth
vair_corr#:=1/36pt#; % for small refinements of hairline height
apex_corr#:=0pt#; % extra width at diagonal junctions
o#:=8/36pt#; % amount of overshoot for curves
apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
fudge:=1; % factor applied to weights of heavy characters
math_spread:=0; % extra openness of math symbols
superness:=1/sqrt2; % parameter for superellipses
superpull:=1/6; % extra openness inside bowls
beak_darkness:=11/30; % fraction of triangle inside beak serifs
ligs:=2; % level of ligatures to be included
square_dots:=false; % should dots be square?
hefty:=false; % should we try hard not to be overweight?
serifs:=true; % should serifs and bulbs be attached?
monospace:=false; % should all characters have the same width?
variant_g:=true; % should an italic-style g be used?
low_asterisk:=false; % should the asterisk be centered at the axis?
math_fitting:=false; % should math-mode spacing be used?
generate textdiacr % switch to the driver file
\bye

View File

@ -0,0 +1,76 @@
% Computer Modern Text Italic 12 point
if unknown cmbase: input cmbase fi
font_identifier:="DIACR"; font_size 12pt#;
u#:=21.6/36pt#; % unit width
width_adj#:=0pt#; % width adjustment for certain characters
serif_fit#:=0pt#; % extra sidebar near lowercase serifs
cap_serif_fit#:=5.8/36pt#; % extra sidebar near uppercase serifs
letter_fit#:=10.8/36pt#; % extra space added to all sidebars
body_height#:=324/36pt#; % height of tallest characters
asc_height#:=300/36pt#; % height of lowercase ascenders
cap_height#:=295.2/36pt#; % height of caps
fig_height#:=278.4/36pt#; % height of numerals
x_height#:=186/36pt#; % height of lowercase without ascenders
math_axis#:=108/36pt#; % axis of symmetry for math symbols
bar_height#:=104.4/36pt#; % height of crossbar in lowercase e
comma_depth#:=84/36pt#; % depth of comma below baseline
desc_depth#:=84/36pt#; % depth of lowercase descenders
crisp#:=8/36pt#; % diameter of serif corners
tiny#:=8/36pt#; % diameter of rounded corners
fine#:=7/36pt#; % diameter of sharply rounded corners
thin_join#:=7.5/36pt#; % width of extrafine details
hair#:=12/36pt#; % lowercase hairline breadth
stem#:=26/36pt#; % lowercase stem breadth
curve#:=31/36pt#; % lowercase curve breadth
ess#:=29/36pt#; % breadth in middle of lowercase s
flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
dot_size#:=42/36pt#; % diameter of dots
cap_hair#:=11.5/36pt#; % uppercase hairline breadth
cap_stem#:=32/36pt#; % uppercase stem breadth
cap_curve#:=37/36pt#; % uppercase curve breadth
cap_ess#:=34/36pt#; % breadth in middle of uppercase s
rule_thickness#:=.44pt#; % thickness of lines in math symbols
dish#:=1/36pt#; % amount erased at top or bottom of serifs
bracket#:=24/36pt#; % vertical distance from serif base to tangent
jut#:=35/36pt#; % protrusion of lowercase serifs
cap_jut#:=38/36pt#; % protrusion of uppercase serifs
beak_jut#:=10.4/36pt#; % horizontal protrusion of beak serifs
beak#:=84/36pt#; % vertical protrusion of beak serifs
vair#:=8.5/36pt#; % vertical diameter of hairlines
notch_cut#:=12pt#; % maximum breadth above or below notches
bar#:=12.5/36pt#; % lowercase bar thickness
slab#:=12.5/36pt#; % serif and arm thickness
cap_bar#:=12.5/36pt#; % uppercase bar thickness
cap_band#:=12.5/36pt#; % uppercase thickness above/below lobes
cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
serif_drop#:=4.8/36pt#; % vertical drop of sloped serifs
stem_corr#:=1/36pt#; % for small refinements of stem breadth
vair_corr#:=1/36pt#; % for small refinements of hairline height
apex_corr#:=0pt#; % extra width at diagonal junctions
o#:=9/36pt#; % amount of overshoot for curves
apex_o#:=9/36pt#; % amount of overshoot for diagonal junctions
slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
fudge:=1; % factor applied to weights of heavy characters
math_spread:=-0.2; % extra openness of math symbols
superness:=1/sqrt2; % parameter for superellipses
superpull:=1/6; % extra openness inside bowls
beak_darkness:=11/30; % fraction of triangle inside beak serifs
ligs:=2; % level of ligatures to be included
square_dots:=false; % should dots be square?
hefty:=false; % should we try hard not to be overweight?
serifs:=true; % should serifs and bulbs be attached?
monospace:=false; % should all characters have the same width?
variant_g:=true; % should an italic-style g be used?
low_asterisk:=false; % should the asterisk be centered at the axis?
math_fitting:=false; % should math-mode spacing be used?
generate textdiacr % switch to the driver file
\bye

View File

@ -0,0 +1,80 @@
% fontes diacritiques bas'ees sur Computer Modern Text Italic 9 point
if unknown cmbase: input cmbase fi
% Computer Modern Text Italic 8 point
if unknown cmbase: input cmbase fi
font_identifier:="DIACR"; font_size 8pt#;
u#:=15.8/36pt#; % unit width
width_adj#:=0pt#; % width adjustment for certain characters
serif_fit#:=0pt#; % extra sidebar near lowercase serifs
cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
letter_fit#:=7.9/36pt#; % extra space added to all sidebars
body_height#:=216/36pt#; % height of tallest characters
asc_height#:=200/36pt#; % height of lowercase ascenders
cap_height#:=196.8/36pt#; % height of caps
fig_height#:=185.6/36pt#; % height of numerals
x_height#:=124/36pt#; % height of lowercase without ascenders
math_axis#:=72/36pt#; % axis of symmetry for math symbols
bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
comma_depth#:=56/36pt#; % depth of comma below baseline
desc_depth#:=56/36pt#; % depth of lowercase descenders
crisp#:=8/36pt#; % diameter of serif corners
tiny#:=8/36pt#; % diameter of rounded corners
fine#:=7/36pt#; % diameter of sharply rounded corners
thin_join#:=7/36pt#; % width of extrafine details
hair#:=11/36pt#; % lowercase hairline breadth
stem#:=20/36pt#; % lowercase stem breadth
curve#:=23.5/36pt#; % lowercase curve breadth
ess#:=23/36pt#; % breadth in middle of lowercase s
flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
dot_size#:=32/36pt#; % diameter of dots
cap_hair#:=11/36pt#; % uppercase hairline breadth
cap_stem#:=23.5/36pt#; % uppercase stem breadth
cap_curve#:=27/36pt#; % uppercase curve breadth
cap_ess#:=24/36pt#; % breadth in middle of uppercase s
rule_thickness#:=.36pt#; % thickness of lines in math symbols
dish#:=1/36pt#; % amount erased at top or bottom of serifs
bracket#:=16/36pt#; % vertical distance from serif base to tangent
jut#:=24/36pt#; % protrusion of lowercase serifs
cap_jut#:=27/36pt#; % protrusion of uppercase serifs
beak_jut#:=7.9/36pt#; % horizontal protrusion of beak serifs
beak#:=56/36pt#; % vertical protrusion of beak serifs
vair#:=8/36pt#; % vertical diameter of hairlines
notch_cut#:=8pt#; % maximum breadth above or below notches
bar#:=9.5/36pt#; % lowercase bar thickness
slab#:=9.5/36pt#; % serif and arm thickness
cap_bar#:=9.5/36pt#; % uppercase bar thickness
cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
stem_corr#:=1/36pt#; % for small refinements of stem breadth
vair_corr#:=1/36pt#; % for small refinements of hairline height
apex_corr#:=0pt#; % extra width at diagonal junctions
o#:=6/36pt#; % amount of overshoot for curves
apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
fudge:=1; % factor applied to weights of heavy characters
math_spread:=.4; % extra openness of math symbols
superness:=1/sqrt2; % parameter for superellipses
superpull:=1/6; % extra openness inside bowls
beak_darkness:=11/30; % fraction of triangle inside beak serifs
ligs:=2; % level of ligatures to be included
square_dots:=false; % should dots be square?
hefty:=false; % should we try hard not to be overweight?
serifs:=true; % should serifs and bulbs be attached?
monospace:=false; % should all characters have the same width?
variant_g:=true; % should an italic-style g be used?
low_asterisk:=false; % should the asterisk be centered at the axis?
math_fitting:=false; % should math-mode spacing be used?
generate textdiacr
\bye

View File

@ -0,0 +1,77 @@
% fontes diacritiques bas'ees sur Computer Modern Text Italic 9 point
if unknown cmbase: input cmbase fi
font_identifier:="DIACR"; font_size 9pt#;
u#:=17/36pt#; % unit width
width_adj#:=0pt#; % width adjustment for certain characters
serif_fit#:=0pt#; % extra sidebar near lowercase serifs
cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
letter_fit#:=8.5/36pt#; % extra space added to all sidebars
body_height#:=243/36pt#; % height of tallest characters
asc_height#:=225/36pt#; % height of lowercase ascenders
cap_height#:=221.4/36pt#; % height of caps
fig_height#:=208.8/36pt#; % height of numerals
x_height#:=139.5/36pt#; % height of lowercase without ascenders
math_axis#:=81/36pt#; % axis of symmetry for math symbols
bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
comma_depth#:=63/36pt#; % depth of comma below baseline
desc_depth#:=63/36pt#; % depth of lowercase descenders
crisp#:=8/36pt#; % diameter of serif corners
tiny#:=8/36pt#; % diameter of rounded corners
fine#:=7/36pt#; % diameter of sharply rounded corners
thin_join#:=7/36pt#; % width of extrafine details
hair#:=11/36pt#; % lowercase hairline breadth
stem#:=22/36pt#; % lowercase stem breadth
curve#:=26/36pt#; % lowercase curve breadth
ess#:=25/36pt#; % breadth in middle of lowercase s
flare#:=26/36pt#; % diameter of bulbs or breadth of terminals
dot_size#:=35/36pt#; % diameter of dots
cap_hair#:=11/36pt#; % uppercase hairline breadth
cap_stem#:=26/36pt#; % uppercase stem breadth
cap_curve#:=30/36pt#; % uppercase curve breadth
cap_ess#:=27/36pt#; % breadth in middle of uppercase s
rule_thickness#:=.38pt#; % thickness of lines in math symbols
dish#:=1/36pt#; % amount erased at top or bottom of serifs
bracket#:=18/36pt#; % vertical distance from serif base to tangent
jut#:=27/36pt#; % protrusion of lowercase serifs
cap_jut#:=30.5/36pt#; % protrusion of uppercase serifs
beak_jut#:=8.5/36pt#; % horizontal protrusion of beak serifs
beak#:=63/36pt#; % vertical protrusion of beak serifs
vair#:=8/36pt#; % vertical diameter of hairlines
notch_cut#:=9pt#; % maximum breadth above or below notches
bar#:=10/36pt#; % lowercase bar thickness
slab#:=10/36pt#; % serif and arm thickness
cap_bar#:=10/36pt#; % uppercase bar thickness
cap_band#:=10/36pt#; % uppercase thickness above/below lobes
cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
stem_corr#:=1/36pt#; % for small refinements of stem breadth
vair_corr#:=1/36pt#; % for small refinements of hairline height
apex_corr#:=0pt#; % extra width at diagonal junctions
o#:=7/36pt#; % amount of overshoot for curves
apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
fudge:=1; % factor applied to weights of heavy characters
math_spread:=.2; % extra openness of math symbols
superness:=1/sqrt2; % parameter for superellipses
superpull:=1/6; % extra openness inside bowls
beak_darkness:=11/30; % fraction of triangle inside beak serifs
ligs:=2; % level of ligatures to be included
square_dots:=false; % should dots be square?
hefty:=false; % should we try hard not to be overweight?
serifs:=true; % should serifs and bulbs be attached?
monospace:=false; % should all characters have the same width?
variant_g:=true; % should an italic-style g be used?
low_asterisk:=false; % should the asterisk be centered at the axis?
math_fitting:=false; % should math-mode spacing be used?
generate textdiacr
\bye

View File

@ -0,0 +1,77 @@
% Computer Modern Bold Extended Text Italic 10 point
if unknown cmbase: input cmbase fi
font_identifier:="DIACRB"; font_size 10pt#;
u#:=21.2/36pt#; % unit width
width_adj#:=11/36pt#; % width adjustment for certain characters
serif_fit#:=0pt#; % extra sidebar near lowercase serifs
cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
letter_fit#:=11/36pt#; % extra space added to all sidebars
body_height#:=270/36pt#; % height of tallest characters
asc_height#:=250/36pt#; % height of lowercase ascenders
cap_height#:=247/36pt#; % height of caps
fig_height#:=232/36pt#; % height of numerals
x_height#:=160/36pt#; % height of lowercase without ascenders
math_axis#:=90/36pt#; % axis of symmetry for math symbols
bar_height#:=85/36pt#; % height of crossbar in lowercase e
comma_depth#:=70/36pt#; % depth of comma below baseline
desc_depth#:=70/36pt#; % depth of lowercase descenders
crisp#:=13/36pt#; % diameter of serif corners
tiny#:=13/36pt#; % diameter of rounded corners
fine#:=10/36pt#; % diameter of sharply rounded corners
thin_join#:=10/36pt#; % width of extrafine details
hair#:=20/36pt#; % lowercase hairline breadth
stem#:=38/36pt#; % lowercase stem breadth
curve#:=43/36pt#; % lowercase curve breadth
ess#:=35/36pt#; % breadth in middle of lowercase s
flare#:=42/36pt#; % diameter of bulbs or breadth of terminals
dot_size#:=53/36pt#; % diameter of dots
cap_hair#:=22/36pt#; % uppercase hairline breadth
cap_stem#:=49/36pt#; % uppercase stem breadth
cap_curve#:=52/36pt#; % uppercase curve breadth
cap_ess#:=50/36pt#; % breadth in middle of uppercase s
rule_thickness#:=.6pt#; % thickness of lines in math symbols
dish#:=1/36pt#; % amount erased at top or bottom of serifs
bracket#:=10/36pt#; % vertical distance from serif base to tangent
jut#:=27/36pt#; % protrusion of lowercase serifs
cap_jut#:=39/36pt#; % protrusion of uppercase serifs
beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
beak#:=70/36pt#; % vertical protrusion of beak serifs
vair#:=13/36pt#; % vertical diameter of hairlines
notch_cut#:=10pt#; % maximum breadth above or below notches
bar#:=17/36pt#; % lowercase bar thickness
slab#:=17/36pt#; % serif and arm thickness
cap_bar#:=17/36pt#; % uppercase bar thickness
cap_band#:=17/36pt#; % uppercase thickness above/below lobes
cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
serif_drop#:=3/36pt#; % vertical drop of sloped serifs
stem_corr#:=2/36pt#; % for small refinements of stem breadth
vair_corr#:=1.5/36pt#; % for small refinements of hairline height
apex_corr#:=0pt#; % extra width at diagonal junctions
o#:=6/36pt#; % amount of overshoot for curves
apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
fudge:=1; % factor applied to weights of heavy characters
math_spread:=.5; % extra openness of math symbols
superness:=8/11; % parameter for superellipses
superpull:=1/8; % extra openness inside bowls
beak_darkness:=.4; % fraction of triangle inside beak serifs
ligs:=2; % level of ligatures to be included
square_dots:=false; % should dots be square?
hefty:=false; % should we try hard not to be overweight?
serifs:=true; % should serifs and bulbs be attached?
monospace:=false; % should all characters have the same width?
variant_g:=true; % should an italic-style g be used?
low_asterisk:=false; % should the asterisk be centered at the axis?
math_fitting:=false; % should math-mode spacing be used?
generate textdiacr % switch to the driver file
\bye

View File

@ -0,0 +1,77 @@
% Computer Modern Bold Extended Text Italic 12 point
if unknown cmbase: input cmbase fi
font_identifier:="DIACRB"; font_size 10pt#;
u#:=24.9/36pt#; % unit width
width_adj#:=13/36pt#; % width adjustment for certain characters
serif_fit#:=0pt#; % extra sidebar near lowercase serifs
cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
letter_fit#:=12.5/36pt#; % extra space added to all sidebars
body_height#:=324/36pt#; % height of tallest characters
asc_height#:=300/36pt#; % height of lowercase ascenders
cap_height#:=296.4/36pt#; % height of caps
fig_height#:=278.8/36pt#; % height of numerals
x_height#:=192/36pt#; % height of lowercase without ascenders
math_axis#:=108/36pt#; % axis of symmetry for math symbols
bar_height#:=102/36pt#; % height of crossbar in lowercase e
comma_depth#:=84/36pt#; % depth of comma below baseline
desc_depth#:=84/36pt#; % depth of lowercase descenders
crisp#:=13/36pt#; % diameter of serif corners
tiny#:=13/36pt#; % diameter of rounded corners
fine#:=10/36pt#; % diameter of sharply rounded corners
thin_join#:=10.5/36pt#; % width of extrafine details
hair#:=21.5/36pt#; % lowercase hairline breadth
stem#:=44/36pt#; % lowercase stem breadth
curve#:=49/36pt#; % lowercase curve breadth
ess#:=41/36pt#; % breadth in middle of lowercase s
flare#:=48/36pt#; % diameter of bulbs or breadth of terminals
dot_size#:=59/36pt#; % diameter of dots
cap_hair#:=23/36pt#; % uppercase hairline breadth
cap_stem#:=55/36pt#; % uppercase stem breadth
cap_curve#:=59/36pt#; % uppercase curve breadth
cap_ess#:=54/36pt#; % breadth in middle of uppercase s
rule_thickness#:=.66pt#; % thickness of lines in math symbols
dish#:=1/36pt#; % amount erased at top or bottom of serifs
bracket#:=12/36pt#; % vertical distance from serif base to tangent
jut#:=32/36pt#; % protrusion of lowercase serifs
cap_jut#:=46/36pt#; % protrusion of uppercase serifs
beak_jut#:=11.3/36pt#; % horizontal protrusion of beak serifs
beak#:=84/36pt#; % vertical protrusion of beak serifs
vair#:=14.3/36pt#; % vertical diameter of hairlines
notch_cut#:=12pt#; % maximum breadth above or below notches
bar#:=18.5/36pt#; % lowercase bar thickness
slab#:=18.5/36pt#; % serif and arm thickness
cap_bar#:=18.5/36pt#; % uppercase bar thickness
cap_band#:=18.5/36pt#; % uppercase thickness above/below lobes
cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
stem_corr#:=2/36pt#; % for small refinements of stem breadth
vair_corr#:=1.5/36pt#; % for small refinements of hairline height
apex_corr#:=0pt#; % extra width at diagonal junctions
o#:=7/36pt#; % amount of overshoot for curves
apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
fudge:=1; % factor applied to weights of heavy characters
math_spread:=.4; % extra openness of math symbols
superness:=8/11; % parameter for superellipses
superpull:=1/8; % extra openness inside bowls
beak_darkness:=.4; % fraction of triangle inside beak serifs
ligs:=2; % level of ligatures to be included
square_dots:=false; % should dots be square?
hefty:=false; % should we try hard not to be overweight?
serifs:=true; % should serifs and bulbs be attached?
monospace:=false; % should all characters have the same width?
variant_g:=true; % should an italic-style g be used?
low_asterisk:=false; % should the asterisk be centered at the axis?
math_fitting:=false; % should math-mode spacing be used?
generate textdiacr % switch to the driver file
\bye

View File

@ -0,0 +1,259 @@
% This file contains the ten digits in so-called italic style.
% Character codes \0060 through \0071 are generated.
% The characters all have the same italic correction.
cmchar "Italic numeral 0";
beginchar("0",9u#,fig_height#,0);
italcorr fig_height#*slant-.5u#;
adjust_fit(0,0);
penpos1(vair,90); penpos3(vair,-90); penpos2(curve,180); penpos4(curve,0);
if not monospace: interim superness:=sqrt(more_super*hein_super); fi
x2r=hround(1.5u-.5curve); x4r=w-x2r; x1=x3=.5w;
y1r=h+o; y3r=-o; y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
& pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
penlabels(1,2,3,4); endchar;
cmchar "Italic numeral 1";
beginchar("1",9u#,fig_height#,0);
italcorr fig_height#*slant-.5u#;
adjust_fit(0,0); pickup tiny.nib;
numeric light_stem; light_stem=hround .4[stem',cap_stem'];
pos1(light_stem,0); pos2(light_stem,0);
lft x1l=lft x2l=hround(.5(w+.5u)-.5cap_stem'); top y1=h+apex_o; bot y2=0;
filldraw stroke z1e--z2e; % stem
dish_serif(2,1,a,1/3,min(2.25u,lft x2l-1.5u),
b,1/3,min(2.25u,w-1.25u-rt x2r)); % serif
pickup crisp.nib; pos3(slab,-90); pos4(bar,-90);
top y3l=h+apex_o; top y4l=.8h+apex_o;
lft x4=max(1.25u,tiny.lft x1l-2.35u); tiny.rt x1r=lft x3+.25[tiny,hair];
erase fill z3l{x4l-x3l,3(y4l-y3l)}...z4l{left}
--(x4l,h+apex_o+1)--(x3l,h+apex_o+1)--cycle; % erase excess at top
filldraw stroke z3e{x4e-x3e,3(y4e-y3e)}..{left}z4e; % point
penlabels(1,2,3,4); endchar;
cmchar "Italic numeral 2";
beginchar("2",9u#,fig_height#,0);
italcorr fig_height#*slant-.5u#;
adjust_fit(0,0); pickup fine.nib;
pos1(vair,45); pos2(vair,0); pos3(vair,-90); pos4(hair,-180);
pos5(vair,-270); pos6(curve,-360); pos7(hair,-405); pos8(hair,-360);
x1=x2-.5u; rt x2r=hround(3.5u+.5vair);
x3=.6[x2,x4]; lft x4r=hround(u-.5hair);
x5=x7=.5w-.5u; rt x6r=hround(w-u); lft x8l=hround(1.5u-.5hair);
y1=.5[x_height,h]; y2=1/3[y1,y3]; y4=x_height; bot y3r=vround .78y4;
top y5r=h+o; y6=.5[y5,y7]; y7=.52y4; bot y8=-o;
filldraw stroke if not hefty:z1e{2(x2-x1),y2-y1}...{down}z2e...{left}z3e...fi
z4e{up}...pulled_arc.e(5,6)
...z7e{2(x7-x6),y7-y6}...{down}z8e; % main stroke
pos9(vair,-90); pos10(vstem+curve-stem,-90); pos11(hair,0);
x9=w-x10=2.5u; rt x11r=hround(w-.5u+.5hair);
y9=.25[y10,y7]; bot y10r=-o; y11=.38x_height;
filldraw stroke z8e{up}...z9e{right}..{right}z10e...{up}z11e; % bar
penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
cmchar "Italic numeral 3";
beginchar("3",9u#,fig_height#,0);
italcorr fig_height#*slant-.5u#;
adjust_fit(0,0); pickup fine.nib;
pos1(vair,45); pos2(vair,0); pos3(vair,-90); pos4(hair,-180);
pos5(vair,-270); pos6(stem,-360); pos7(bar,-450); pos8(bar,-450);
x1=x2-.5u; rt x2r=hround(3.5u+.5vair); x3=.5[x2,x4]; lft x4r=hround u;
x5=x7=.5w; rt x6r=hround(w-u); x8=x7-u;
y1=.5[x_height,h]; y2=.5[y1,y3]; y7=y8=.52h; bot y3r=vround 1/4[y7,h];
y4=1/3[y3,y5]; top y5r=h+o; y6=.5[y5,y7];
filldraw stroke if not hefty: z1e{2(x2-x1),y2-y1}...{down}z2e...{left}z3e...fi
z4e{up}...pulled_arc.e(5,6) & pulled_arc.e(6,7)..z8e; % upper arc
pos7'(vair,90); z7'l=z7r;
pos9(curve,0); pos10(vair,-90); pos11(hair,-180); pos12(flare,-180);
rt x9r=hround(w-u); x10=.5w-.5u; lft x11r=hround .75u;
y9=.25h; bot y10r=-o; y11=1/3x_height; bulb(10,11,12); % bulb
filldraw stroke pulled_arc.e(7',9) & pulled_arc.e(9,10); % lower arc
penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
cmchar "Italic numeral 4";
beginchar("4",9u#,fig_height#,desc_depth#);
italcorr fig_height#*slant-.5u#;
adjust_fit(0,0); pickup fine.nib;
pos1(stem,0); pos6(stem,0); pos7(stem,0);
pos2(bar,-45); pos3(bar,-90); pos4(bar,-90); pos5(bar,-45);
rt x1r=hround(.5w+.5u+.5stem); lft x2l=hround .25u;
x3=2.75u; x4=w-2u; rt x5r=hround(w-.25u);
rt x6r=rt x7r=hround(2/3w+.5stem);
y1+.5stem=h+o; bot y2r=0; bot y3r=vround(.08h-.5bar);
bot y4r=vround-.5bar; bot y5r=vround(.03h-.5bar);
y6+.5stem=bar_height; y7-.5stem=-d;
filldraw circ_stroke z1e{down}...{3(x2-x1),y2-y1}z2e; % diagonal
filldraw stroke z2e{z1-z2}...z3e{right}..{right}z4e
...{x5-x4,2(y5-y4)}z5e; % bar
filldraw z6l---z7l..z7r---z6r..cycle; % stem
penlabels(1,2,3,4,5,6,7); endchar;
cmchar "Italic numeral 5";
beginchar("5",9u#,fig_height#,0);
italcorr fig_height#*slant-.5u#;
adjust_fit(0,0);
numeric bot_thickness,light_hair;
bot_thickness=max(fine.breadth,vround(slab-vair_corr));
light_hair=hround(cap_hair if hefty: -\\2stem_corr fi);
pickup tiny.nib; pos5(vair,180); pos6(vair,90);
bot y5=vround(.53h-vair); top y6r=max(vround .61803h+o,top y6r+y5+eps-y6l);
pos3(light_hair,0); pos4(light_hair,0);
lft x3l=max(1.35u,2.1u-.5light_hair); x3=x4=x5; y4=y5;
top y3=h if not hefty: +\\o fi;
filldraw stroke z3e--z4e; % thin stem
penpos7(cap_stem-fine,0); penpos8(bot_thickness-fine,-90);
fine.rt x7r=hround(w-.9u); x8=.5[u,x7]; x6=.5[x5,x7];
erase fill z5--bot z5--(x6,bot y5)--z6{left}
..tension .9 and 1..{x5-x6,3(y5-y6)}cycle; % erase excess in middle
filldraw stroke z6e{left}..tension .9 and 1..{x5-x6,3(y5-y6)}z5e; % link
pickup fine.nib; pos6'(vair,90); z6'=z6;
y7=.5[y6,y8]; bot y8r=-o;
filldraw stroke pulled_arc.e(6',7) & pulled_arc.e(7,8); % bowl
if serifs: pos9(hair,-180); y9=.5y5; lft x9r=hround .9u;
pos10(flare+1/3(cap_stem-stem),-180); bulb(8,9,10); % bulb
else: pos9(3/7[bot_thickness,flare],angle(-7u,-h));
lft x9r=hround(tiny.lft x3l-.75u); bot y9r=vround .15h-o;
x9l:=good.x x9l; y9l:=good.y y9l;
filldraw stroke term.e(8,9,left,1,4); fi % terminal
if hefty: pickup crisp.nib; pos1(slab,90); pos2(hair,0);
top y1r=h; x1=x4; rt x2r=hround(w-1.5u); y2=y1l-eps;
arm(1,2,a,0,0); % arm
else: numeric flag_breadth; flag_breadth=7/8[vair,cap_curve];
pos1(flag_breadth,90); pos2(flag_breadth,60);
pos0(vair,90); top y1r=tiny.top y3; top y2r=vround .95h+o; y0r=y1r;
lft x1=tiny.lft x3l; x2r=.5[x1,x0]; rt x0=hround(w-1.6u);
erase fill top z1r--z1r...{right}z2r
--(x2r,top y1r)--cycle; % erase excess at top
filldraw stroke z1e...{right}z2e...z0e; fi % flag
penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
cmchar "Italic numeral 6";
beginchar("6",9u#,fig_height#,0);
italcorr fig_height#*slant-.5u#;
adjust_fit(0,0);
numeric top_thickness,bot_thickness,side_thickness,pull;
top_thickness=max(fine.breadth,vround(slab-2vair_corr));
bot_thickness=max(fine.breadth,vround(slab-vair_corr));
side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
pull=min(.25,1.5superpull);
pickup fine.nib; pos2(top_thickness,-270);
pos3(side_thickness,-180); pos4(bot_thickness,-90);
pos5(side_thickness,0); pos6(vair,90);
lft x3r=w-rt x5r=hround max(.75u,1.5u-.5side_thickness);
x4=x6-.1u=x2-u=.5w;
top y2r=h+o; y3=.5[y2,y4]; bot y4r=-o;
y5=.5[y4,y6]; top y6=vround 5/8h+o;
path p; p=pulled_super_arc.l(3,4)(pull);
numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
pos7(thin_join,180); z7l=point t of p;
(x,y6r)=whatever[z7l,z6l]; x6r:=min(x,.5[x5r,x6]);
filldraw stroke pulled_super_arc.e(2,3)(pull)
& {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
& {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
& z6e{left}...{direction t of p}z7e; % arc and bowl
if serifs: pos1(hair,-360); pos0(flare,-360);
rt x0r=max(rt x2+eps,hround(w-1.2u));
y0=vround min(.9h-.5flare,.85h+.5flare)+o;
{{less_tense; bulb(2,1,0)}}; % arc and bulb
else: pos1(vround .1[top_thickness,flare],90);
top y1r=vround .97h+o; rt x1=hround(x5-.5);
filldraw stroke term.e(2,1,right,.9,4); fi % terminal
penlabels(0,1,2,3,4,5,6,7); endchar;
cmchar "Italic numeral 7";
beginchar("7",9u#,fig_height#,desc_depth#);
italcorr fig_height#*slant-.5u#;
adjust_fit(0,0); pickup fine.nib;
numeric fat_curve; fat_curve=1.4[stem,curve];
pos1(hair,0); pos2(hair,0); pos3(vstem+curve-stem,-90);
pos4(vair,-90); pos5(hair,0); pos6(fat_curve,0);
top y1=h+o; y2=x_height; y3l=y5=y1;
bot y4r=vround(.5[y2,h]-.5vair); y6-.5fat_curve=-o;
lft x2l=hround(.5u-.5hair); x3=.5w-.5u; x4=2/3w;
rt x5r=hround(w-.75u+.5hair); rt x6r=hround(.5w+u+.5fat_curve);
z1=z2+whatever*(z5-z6); filldraw stroke z1e--z2e; % serif
filldraw stroke z2e{z1-z2}...z3e{right}..{right}z4e
...{2(x5-x6),y5-y6}z5e; % bar
filldraw circ_stroke z6e{up}...{2(x5-x6),y5-y6}z5e; % diagonal
penlabels(1,2,3,4,5,6); endchar;
cmchar "Italic numeral 8";
beginchar("8",9u#,fig_height#,0);
italcorr fig_height#*slant-.5u#;
adjust_fit(0,0);
numeric top_thickness,mid_thickness,bot_thickness,upper_side,lower_side,theta;
top_thickness=max(fine.breadth,vround(slab-2vair_corr));
bot_thickness=max(fine.breadth,vround(slab-vair_corr));
x0=.5w; y0=.54h;
if hefty: mid_thickness=vround 2/3vair; upper_side=hround(stem-3stem_corr);
lower_side=hround min(.5[curve,cap_curve]-stem_corr,upper_side+.25u);
penpos1(top_thickness,90); penpos2(upper_side,180);
penpos3(mid_thickness,270); penpos8(upper_side,360);
penpos4(mid_thickness,90); penpos7(lower_side,180);
penpos6(bot_thickness,270); penpos5(lower_side,360);
penpos0(vair,90); z3l=z0r; z4l=z0l;
x1=x6=.5w; x2r=w-x8r=hround u; x7r=w-x5r=hround .75u;
top y1r=h+o; bot y6r=-o; y2=y8=.5[y1l,y3l]; y7=y5=.5[y4l,y6l];
filldraw stroke pulled_arc.e(1,2)
& pulled_arc.e(2,3); % left half of upper bowl
filldraw stroke pulled_arc.e(4,5)
& pulled_arc.e(5,6); % right half of lower bowl
filldraw stroke pulled_arc.e(6,7)
& pulled_arc.e(7,4); % left half of lower bowl
filldraw stroke pulled_arc.e(3,8)
& pulled_arc.e(8,1); % right half of upper bowl
else: pickup fine.nib; theta=90-angle(18u,h); slope:=-h/18u;
upper_side=max(fine.breadth,hround(.5[hair,stem]-stem_corr));
lower_side=hround(.5[hair,stem]+stem_corr);
if lower_side>1.2upper_side: upper_side:=lower_side; fi
pos1(top_thickness,-90); pos6(bot_thickness,-90);
x1=x6=.5w; top y1l=h+o; bot y6r=-o; pos0(cap_stem,theta);
lft x2l=w-rt x8l=hround 1.25u; lft x7r=w-rt x5r=hround .75u;
x2r-x2l=upper_side-fine; x5r-x5l=lower_side-fine;
ellipse_set(1l,2l,3l,0l); ellipse_set(1r,2r,3r,0r);
ellipse_set(6l,5l,4l,0l); ellipse_set(6r,5r,4r,0r);
numeric tau; tau=max(.8,.20710678/(superness-.5));
filldraw stroke z1e{left}..tension atleast tau..z2e{down}
..z3e---z4e..z5e{down}..tension atleast tau..z6e{left}; % S stroke
pos7(lower_side,180); pos8(upper_side,180);
y7=.5[y5l,y5r]; y8=.5[y2l,y2r]; pos9(vair,90); z9=z0;
filldraw stroke z1e{right}..tension atleast tau..z8e{down}
..tension atleast tau and atleast 1..{-18u,-.618h}z9e; % upper right stroke
filldraw stroke z6e{left}..tension atleast tau..z7e{up}
..tension atleast tau and atleast 1..{18u,.5h}z9e; fi % lower left stroke
penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
cmchar "Italic numeral 9";
beginchar("9",9u#,fig_height#,0);
italcorr fig_height#*slant-.5u#;
adjust_fit(0,0);
numeric top_thickness,bot_thickness,side_thickness,pull;
top_thickness=max(fine.breadth,vround(slab-2vair_corr));
bot_thickness=max(fine.breadth,vround(slab-vair_corr));
side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
pull=min(.25,1.5superpull);
pickup fine.nib; pos2(bot_thickness,-90);
pos3(side_thickness,0); pos4(top_thickness,90);
pos5(side_thickness,180); pos6(vair,270);
w-rt x3r=lft x5r=hround max(.75u,1.5u-.5side_thickness);
x4-.1u=x6+.1u=x2+.75u=.5w;
bot y2r=-o; y3=.5[y2,y4]; top y4r=h+o;
y5=.5[y4,y6]; bot y6=vround 3/8h-o;
path p; p=pulled_super_arc.l(3,4)(pull);
numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
pos7(thin_join,360); z7l=point t of p;
(x,y6r)=whatever[z7l,z6l]; x6r:=max(x,.5[x5r,x6]);
filldraw stroke pulled_super_arc.e(2,3)(pull)
& {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
& {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
& z6e{right}...{direction t of p}z7e; % arc and bowl
if serifs: pos1(hair,-180); pos0(flare,-180);
lft x0r=min(lft x2-eps,hround 1.2u);
y0=vround max(.1h+.5flare,.15h-.5flare)-o;
{{less_tense; bulb(2,1,0)}}; % arc and bulb
else: pos1(.1[bot_thickness,flare],-120);
bot y1r=vround .07h-o; lft x1r=hround 1.3u;
filldraw stroke term.e(2,1,left,.9,4); fi % terminal
penlabels(0,1,2,3,4,5,6,7); endchar;

View File

@ -0,0 +1,97 @@
% This file contains `\$' and `\&' and `?' in the so-called italic style.
% Codes \0044, \0046, and \0077 are generated, as well as code |spanish_query|
% (for a Spanish question mark) if that code value is known.
cmchar "Sterling sign";
beginchar("$",12u#,asc_height#,0);
adjust_fit(0,.75asc_height#*slant-.5u#); pickup fine.nib;
pos0(flare,0); pos1(hair,0); pos2(vair,90); pos3(stem,180);
pos4(stem,180); pos4'(stem,0); pos5(vair,-90); z4'=z4;
x2=2/3w-.5u; rt x3l=rt x4l=hround(.5w-u+.5stem); x5=2.5u;
y1=y3=.75h; top y2=h+oo; y4=.25h; bot y5r=-oo;
rt x1r=hround(w-1.5u); bulb(2,1,0); % bulb
filldraw stroke pulled_arc.e(2,3)..z4e; % stem
numeric light_stem; light_stem=2/3[vair,vstem];
pos6(.5[hair,light_stem],-180); pos7(light_stem,-300);
pos8(light_stem,-300); pos9(hair,-180);
lft x6r=hround u; x7=3u; x8=w-3.5u; rt x9r=hround(w-u);
y6=.4[y5,y7]; top y7r=vround .2h; bot y8l=-oo; y9=good.y .2h;
filldraw stroke pulled_arc.e(4',5)...z6e{up}...z7e{right}
..{right}z8e...{up}z9e; % loop and arm
pos10(bar,90); pos11(bar,90); x10=3u; x11=w-4.5u;
top y10r=top y11r=vround(.5h+.5bar); filldraw stroke z10e--z11e; % bar
penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
cmchar "Italic ampersand";
beginchar("&",14u#,asc_height#,0);
italcorr asc_height#*slant-1.5u#;
adjust_fit(if monospace:-u#,-2u# else: 0,0 fi); pickup fine.nib;
pos1(flare,0); pos2(hair,0); pos3(vair,90);
rt x2r=hround.5w; x3=1/3(w-u);
top y3r=h+o; y2=.5[x_height,h]; bulb(3,2,1); % left bulb
pos4(stem,180); pos5(vair,270); pos6(hair,360); pos7(vair,450);
pos8(curve,540); pos9(vair,630); pos10(hair,720);
lft x4r=hround 1.25u; x5=x7=x3+1/6u; rt x6r=hround(x5+1.5u);
lft x8r=hround u; x9=.5w; rt x10r=hround(w-1.5u);
y4=.5[y3,y5]; top y5l=vround .77x_height; y6=.5[y5,y7];
y7l=good.y 1/3[y5,y3]; y8=.5[y7,y9]; bot y9r=-o; y10=bar_height;
pos12(hair,0); pos13(curve,0); pos14(hair,0); pos15(vair,90); pos16(curve,90);
rt x12r=rt x13r=hround(w-2u); lft x14l=hround(.5w+.5u);
x15=x16=rt x14r+u;
y12=y13=h-.5curve; y14=.5[bar_height,x_height];
bot y15l=bot y16l=vround y10;
numeric theta; theta=angle((z12-z14)xscaled 2);
pos11(hair,theta); x11=w-4u; y11=.5[y13,y16];
filldraw stroke pulled_arc.e(3,4) & pulled_arc.e(4,5) & pulled_arc.e(5,6)
& pulled_arc.e(6,7) & pulled_arc.e(7,8) & pulled_arc.e(8,9)
& {{interim superness:=more_super; pulled_arc.e(9,10)}}
..tension .9 and 1..{dir(theta+100)}z11e; % bowls, loop, and stem
pos11'(hair,theta-90); z11'=z11;
forsuffixes $=l,r: path p$;
p$=z12${down}..z11'${-dir theta}..{down}z14$...{right}z15$; endfor
filldraw p.l--reverse p.r--cycle; % arms
path q[]; q1=z13r{up}..z13l{down}..cycle;
q2=z16l{right}..z16r{left}..cycle;
filldraw subpath(0,ypart(p.l intersectiontimes q1)) of q1--cycle; % upper bulb
filldraw subpath(0,ypart(p.r intersectiontimes q2)) of q2--cycle; % lower bulb
penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); endchar;
cmchar "Italic question mark";
beginchar("?",9u#,asc_height#,0);
italcorr asc_height#*slant-u#;
adjust_fit(0,0); pickup tiny.nib; pos10(dot_size,0); pos11(dot_size,90);
lft x10l=hround(.5w-.5dot_size); bot y11l=0; z10=z11; dot(10,11); % dot
pickup fine.nib; pos1(flare,180); pos2(hair,180); pos3(vair,90);
lft x1r=hround u; x3=.5w;
y1-.5flare=x_height; top y3r=h+o; bulb(3,2,1); % bulb
pos8(vair,-90); x8=.5w; bot y8r=.25[top y11r,x_height]+1;
numeric theta; theta=90+angle(10u,y3-y8); slope:=(y3-y8)/10u;
pos3'(vair,-90); z3'=z3; pos0(vstem,theta); x0=x3; y0=1/3[y8,y3];
rt x4l=hround(w-1.5u); lft x7r=hround 1/3w;
x4l-x4r=x7l-x7r=hround .5[vair,vstem]-fine;
ellipse_set(3'l,4l,5l,0l); ellipse_set(3'r,4r,5r,0r); y4=y4r;
ellipse_set(8l,7l,6l,0l); ellipse_set(8r,7r,6r,0r); y7=y7r;
pos9(hair,0); rt x9r=hround(2/3w+.5hair); y9=good.y .5[y8,y0];
filldraw stroke super_arc.e(3',4) & z4e{down}
..z5e---z6e..z7e{down} & super_arc.e(7,8)...{up}z9e; % main stroke
penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
iff known spanish_query: cmchar "Spanish open italic question mark";
beginchar(spanish_query,9u#,asc_height#-desc_depth#,desc_depth#);
adjust_fit(0,0); pickup tiny.nib; pos10(dot_size,0); pos11(dot_size,90);
lft x10l=hround(.5w-.5dot_size); top y11r=h; z10=z11; dot(10,11); % dot
pickup fine.nib; pos1(flare,0); pos2(hair,0); pos3(vair,-90);
rt x1r=hround(w-u); x3=.5w; y1+.5flare=asc_height-x_height-d;
bot y3r=-d-o; bulb(3,2,1); % bulb
pos8(vair,90); x8=.5w; top y8r=.25[bot y11l,y1+.5flare]-1;
numeric theta; theta=angle(10u,y8-y3)-90; slope:=(y8-y3)/10u;
pos3'(vair,90); z3'=z3; pos0(vstem,theta); x0=x3; y0=1/3[y8,y3];
lft x4l=hround 1.5u; rt x7r=hround 2/3w;
x4r-x4l=x7r-x7l=hround .5[vair,vstem]-fine;
ellipse_set(3'l,4l,5l,0l); ellipse_set(3'r,4r,5r,0r); y4=y4r;
ellipse_set(8l,7l,6l,0l); ellipse_set(8r,7r,6r,0r); y7=y7r;
pos9(hair,180); lft x9r=hround(1/3w-.5hair); y9=good.y .5[y8,y0];
filldraw stroke super_arc.e(3',4) & z4e{up}
..z5e---z6e..z7e{up} & super_arc.e(7,8)...{down}z9e; % main stroke
penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;

View File

@ -0,0 +1,284 @@
% This file contains punctuation marks common to roman and italic styles.
% Codes \0041, \0043, \0045, \0047--\0054,\ %
%% \0056, \0057, \0072, \0073, \0075, \0100,\par
% \0133, \0135, and \0140 are generated, as well as code |spanish_shriek|
% (for a Spanish exclamation point) if that code value is known.
cmchar "Exclamation point";
beginchar("!",5u#+width_adj#,asc_height#,0);
italcorr asc_height#*slant-2u#-.5width_adj#+.5dot_size#;
adjust_fit(0,0);
pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
lft x3l=hround(.5w-.5dot_size); bot y4l=0; z3=z4; dot(3,4); % dot
numeric bot_width;
bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
pickup fine.nib; pos1(dot_size,0); pos2(bot_width,0);
x1=x2=x3; bot y2=.25[top y4r,x_height]+1;
if square_dots: top y1=h;
filldraw stroke z1e--z2e; % stem
else: top z0=(x1,h+o); y1+.5dot_size=h+o;
filldraw z1r...z0...z1l---z2l--z2r---cycle; fi % stem and bulb
penlabels(0,1,2,3,4); endchar;
iff known spanish_shriek: cmchar "Spanish open exclamation point";
beginchar(spanish_shriek,5u#+width_adj#,asc_height#-desc_depth#,desc_depth#);
italcorr h#*slant-2u#-.5width_adj#+.5dot_size#;
adjust_fit(0,0);
pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
lft x3l=hround(.5w-.5dot_size); top y4r=h; z3=z4; dot(3,4); % dot
numeric top_width;
top_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
pickup fine.nib; pos1(dot_size,0); pos2(top_width,0);
x1=x2=x3; top y2=.25[bot y4l,h-x_height]-1;
if square_dots: bot y1=-d;
filldraw stroke z1e--z2e; % stem
else: bot z0=(x1,-d-o); y1-.5dot_size=-d-o;
filldraw z1l...z0...z1r---z2r--z2l---cycle; fi % stem and bulb
penlabels(0,1,2,3,4); endchar;
cmchar "Hash mark (number sign)";
if monospace: compute_spread(.6x_height#,.7x_height#);
else: compute_spread(.45x_height#,.55x_height#); fi
beginchar("#",15u#,asc_height#,asc_depth#);
italcorr (math_axis#+.5(spread#+rule_thickness#))*slant-.5u#;
adjust_fit(0,0);
pickup rule.nib; lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
draw z1--z2; % upper bar
draw z3--z4; % lower bar
lft x6=hround 3u; rt x7=hround(w-3u); x5-x6=x7-x8;
x8=good.x if monospace: .6 else: .5 fi\\w;
top y5=top y7=h+eps; bot y6=bot y8=-d-eps;
y15=y1; z15=whatever[z5,z6]; y36=y3; z36=whatever[z5,z6];
y27=y2; z27=whatever[z7,z8]; y48=y4; z48=whatever[z7,z8];
draw z5--if x5>x6+1:(good.x(x15+.5),y1)--(good.x(x15-.5),y1)
--(good.x(x36+.5),y3)--(good.x(x36-.5),y3)--fi\\z6; % left diagonal
draw z7--if x7>x8+1:(good.x(x27+.5),y2)--(good.x(x27-.5),y2)
--(good.x(x48+.5),y4)--(good.x(x48-.5),y4)--fi\\z8; % right diagonal
labels(1,2,3,4,5,6,7,8,15,27,36,48); endchar;
cmchar "Per cent sign";
beginchar("%",9u#+max(6u#,2fudge*(hair#+stem#)),
body_height#,body_height#-asc_height#);
italcorr if hefty: .4asc_height#*slant-.5u# else: h#*slant-u# fi;
adjust_fit(0,0); pickup fine.nib;
numeric left_curve,right_curve;
left_curve=hround 5/6[fudged.hair,fudged.stem];
right_curve=max(fine.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
pos1(vair,90); pos2(left_curve,180); pos3(vair,270); pos4(right_curve,360);
top y1r=h; lft x2r=hround u; rt x4r=hround(.5w-1.5u);
bot y3r=floor(if monospace: .7 else: .5 fi\\ asc_height);
x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
filldraw stroke pulled_super_arc.e(1,2)(superpull)
& pulled_super_arc.e(2,3)(superpull); % left half of upper bowl
filldraw stroke super_arc.e(3,4) & super_arc.e(4,1); % right half of upper bowl
pos5(vair,90); pos6(left_curve,180); pos7(vair,270); pos8(right_curve,360);
bot y7r=-d; rt x8r=hround(w-u); lft x6r=hround(.5w+1.5u);
top y5r=vround(if monospace: .3 else: .5 fi\\ asc_height);
x5=x7=.5[x6,x8]; y6=y8=.5[y5,y7];
filldraw stroke pulled_super_arc.e(5,6)(superpull)
& pulled_super_arc.e(6,7)(superpull); % left half of lower bowl
filldraw stroke super_arc.e(7,8) & super_arc.e(8,5); % right half of lower bowl
pickup rule.nib; top y9=h; bot y10=-d;
if hefty: x9=good.x(x5-eps); x10=good.x(x1+eps);
draw z9--z10; % diagonal
else: rt x9=hround(w-2.5u); lft x10=hround 2.5u; draw z9--z10; % diagonal
pickup fine.nib; pos9(rule_thickness,angle(z9-z10)+90);
pos11(vair,angle(z1r-z4r)-90); pos12(vair,angle(z9-z10)+90);
path p; p=super_arc.r(1,4); z11r=point 2/3 of p; z12r=z9r;
filldraw stroke z11e{direction 2/3 of p}...{z9-z10}z12e; fi % link
penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
cmchar "Apostrophe";
beginchar("'",5u#,asc_height#,0);
italcorr asc_height#*slant+.5dot_size#-2u#;
adjust_fit(0,0);
x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h;
if monospace: comma(1,a,dot_size,.28u,vround 1.5comma_depth); % large comma
else: comma(1,a,dot_size,.25u,comma_depth); fi % comma with increased jut
penlabels(1); endchar;
cmchar "Left parenthesis";
beginchar("(",7u# if monospace: -u# fi,body_height#,paren_depth#);
italcorr body_height#*slant-.5u#;
adjust_fit(0,0); pickup fine.nib;
pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
rt x1r=rt x3r=hround(w-u); lft x2l=hround(x1-4u if monospace: +4/3u fi);
top y1=h; y2=.5[y1,y3]=math_axis;
filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
...{3(x3e-x2e),y3-y2}z3e; % arc
penlabels(1,2,3); endchar;
cmchar "Right parenthesis";
beginchar(")",7u# if monospace: -u# fi,body_height#,paren_depth#);
italcorr math_axis#*slant-.5u#;
adjust_fit(0,0); pickup fine.nib;
pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
lft x1l=lft x3l=hround u; rt x2r=hround(x1+4u if monospace: -4/3u fi);
top y1=h; y2=.5[y1,y3]=math_axis;
filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
...{3(x3e-x2e),y3-y2}z3e; % arc
penlabels(1,2,3); endchar;
cmchar "Asterisk";
beginchar("*",9u#,
if low_asterisk:math_axis#+.5x_height# else: body_height# fi,0);
italcorr h#*slant-.75u#;
adjust_fit(0,0);
numeric ast_flare; ast_flare=hround .7[thin_join,stem];
x0=.5w; y0=h-.5x_height;
for d=-150 step 60 until 150: z[d]=z0+.5dir d xscaled 7.5u yscaled x_height;
numeric theta; theta=angle(z[d]-z0);
fill z0+.5(0,-thin_join)rotated theta
---z[d]+.5(-ast_flare,-ast_flare)rotated theta
..z[d]..z[d]+.5(-ast_flare,ast_flare)rotated theta
---z0+.5(0,thin_join)rotated theta--cycle; endfor % diagonal at angle |d|
labels(0,[-150],[-90],[-30],30,90,150); endchar;
cmchar "Plus sign";
beginarithchar("+"); pickup rule.nib;
x1=x2=good.x .5w; top y1=h+eps; .5[y1,y2]=math_axis;
lft x3=hround u-eps; x4=w-x3; y3=y4=math_axis;
draw z1--z2; % stem
draw z3--z4; % crossbar
labels(1,2,3,4); endchar;
cmchar "Comma";
numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
define_whole_blacker_pixels(dot_diam);
beginchar(",",5u#,dot_diam#,comma_depth#);
adjust_fit(0,0);
x1-.5dot_diam=hround(.5w-.5dot_diam); y1-.5dot_diam=0;
comma(1,a,dot_diam,.2u,comma_depth); % dot and tail
penlabels(1); endchar;
cmchar "Period";
numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
define_whole_blacker_pixels(dot_diam);
beginchar(".",5u#,dot_diam#,0);
adjust_fit(0,0); pickup fine.nib;
pos1(dot_diam,0); pos2(dot_diam,90);
lft x1l=hround(.5w-.5dot_diam); bot y2l=0; z1=z2; dot(1,2); % dot
penlabels(1,2); endchar;
cmchar "Virgule (slash)";
beginchar("/",9u#,body_height#,paren_depth#);
italcorr body_height#*slant-.5u#;
adjust_fit(0,0); pickup rule.nib;
rt x1=hround(w-u)+eps; top y1=h+eps;
lft x2=hround u-eps; bot y2=-d-eps;
draw z1--z2; % diagonal
penlabels(1,2); endchar;
cmchar "Colon";
numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
define_whole_blacker_pixels(dot_diam);
beginchar(":",5u#,x_height#,0);
italcorr x_height#*slant+.5dot_diam#-2u#;
adjust_fit(0,0); pickup fine.nib;
pos1(dot_diam,0); pos2(dot_diam,90);
lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
pos3(dot_diam,0); pos4(dot_diam,90);
x3=x1; bot y4l=0; z3=z4; dot(3,4); % lower dot
penlabels(1,2,3,4); endchar;
cmchar "Semicolon";
numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
define_whole_blacker_pixels(dot_diam);
beginchar(";",5u#,x_height#,comma_depth#);
italcorr x_height#*slant+.5dot_diam#-2u#;
adjust_fit(0,0); pickup fine.nib;
pos1(dot_diam,0); pos2(dot_diam,90);
lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
x3-.5dot_diam=hround(.5w-.5dot_diam); y3-.5dot_diam=0;
comma(3,a,dot_diam,.05u,comma_depth); % lower dot and tail
penlabels(1,2,3); endchar;
cmchar "Equals sign";
compute_spread(.45x_height#,.55x_height#);
beginchar("=",14u#,v_center(spread#+rule_thickness#));
italcorr h#*slant-.5u#;
adjust_fit(0,0); pickup rule.nib;
lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
draw z1--z2; % upper bar
draw z3--z4; % lower bar
labels(1,2,3,4); endchar;
cmchar "At sign";
beginchar("@",14u#,asc_height#,0);
italcorr .7asc_height#*slant-.5u#;
adjust_fit(0,if hefty or monospace:-2u# else: 0 fi);
pickup fine.nib; pos0(fudged.hair,0); pos1(vair,90);
pos2(fudged.stem,180); pos3(vair,270);
pos4(fudged.stem,-180); pos5(fudged.stem,-180);
pos6(vair,-90); pos7(fudged.hair,0);
pos8(vair,90); pos9(fudged.hair,180);
pos10(vair,270); pos11(.5[vair,flare],360);
x1=x3=.5[x0,x2]; y0=y2=.5[y1,y3];
x8=x10=.5w; y7=y9=.5[y8,y10];
lft x9r=hround u; x7=w-x9; top y8r=h+oo; bot y10r=-oo;
top y1r=vround(.8[y10,y8]+.5vair); bot y3r=vround(.2[y10,y8]-.5vair);
x6l=1/3[x5l,x7l]; y6=y3; y11=good.y(.1[y10,y8]-.5);
x0=x4=x5; y4=.8[y3,y1]; y5=2/3[y7,y6];
if hefty or monospace: lft x2r=hround(5u-.5fudged.stem);
rt x0r=hround(w-3u); x11r=x0r;
else: lft x2r=hround 3.4u; x0=w-x2; x11r=x7r; fi
filldraw stroke super_arc.e(1,2) & super_arc.e(2,3); % left inner bowl
filldraw stroke super_arc.e(3,0) & super_arc.e(0,1); % right inner bowl
filldraw stroke super_arc.e(8,9) & super_arc.e(9,10)
& term.e(10,11,right,1,4); % left outer bowl and terminal
if hefty or monospace: {{interim superness:=hein_super;
filldraw stroke super_arc.e(0,8)}}; % link
else: (x,y6r)=whatever[z6l,z7l]; x6r:=x;
filldraw stroke z4e---z5e...z6e{right}...{up}z7e
& super_arc.e(7,8); fi % stem and link
penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
cmchar "Left bracket";
numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
beginchar("[",wd#,body_height#,paren_depth#);
italcorr body_height#*slant;
adjust_fit(0,0);
numeric top_thickness,side_thickness;
if hefty: top_thickness=vair;
side_thickness=max(crisp.breadth,stem-2stem_corr);
else: top_thickness=side_thickness=rule_thickness; fi;
pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
top y1=h; bot y2=-d; lft x1l=lft x2l=hround(2.5u-.5side_thickness)-1-eps;
filldraw stroke z1e--z2e; % stem
pos3(top_thickness,90); pos4(top_thickness,90);
pos5(top_thickness,90); pos6(top_thickness,90);
x3=x5=x1l; rt x4=rt x6=ceiling(w-.4u)+eps; y3r=y4r=y1; y5l=y6l=y2;
filldraw stroke z3e--z4e; % upper bar
filldraw stroke z5e--z6e; % lower bar
penlabels(1,2,3,4,5,6); endchar;
cmchar "Right bracket";
numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
beginchar("]",wd#,body_height#,paren_depth#);
italcorr body_height#*slant-2u#+.5if hefty:stem# else:rule_thickness# fi;
adjust_fit(0,0);
numeric top_thickness,side_thickness;
if hefty: top_thickness=vair;
side_thickness=max(crisp.breadth,stem-2stem_corr);
else: top_thickness=side_thickness=rule_thickness; fi;
pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
top y1=h; bot y2=-d; rt x1r=rt x2r=hround(w-2.5u+.5side_thickness)+1+eps;
filldraw stroke z1e--z2e; % stem
pos3(top_thickness,90); pos4(top_thickness,90);
pos5(top_thickness,90); pos6(top_thickness,90);
x3=x5=x1r; lft x4=lft x6=floor .4u-eps; y3r=y4r=y1; y5l=y6l=y2;
filldraw stroke z3e--z4e; % upper bar
filldraw stroke z5e--z6e; % lower bar
penlabels(1,2,3,4,5,6); endchar;
cmchar "Reverse apostrophe";
beginchar("`",5u#,asc_height#,0);
italcorr asc_height#*slant+.5dot_size#-2u#;
adjust_fit(0,0);
x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h-comma_depth;
if monospace: ammoc(1,a,dot_size,.28u,vround 1.5comma_depth); % large ammoc
else: ammoc(1,a,dot_size,.25u,comma_depth); fi % normal ammoc
penlabels(1); endchar;

View File

@ -0,0 +1,588 @@
% The Computer Modern Text Italic family (by D. E. Knuth, 1979--1985)
mode_setup; font_setup;
% DEBUT computer Modern Italic lower case:
% This lowercase italic alphabet was prepared by D. E. Knuth in December, 1979,
% inspired by the Monotype faces used in {\sl The Art of Computer Programming}.
% The programs were revised for the new \MF\ conventions in 1985.
% Character codes \0141 through \0172 are generated.
cmchar "Italic letter r";
beginchar("r",5.5u#+max(1.75u#,flare#),x_height#,0);
italcorr x_height#*slant;
adjust_fit(if monospace:.25u#,.5u# else: 0,0 fi); pickup fine.nib;
x0=0; x2=x3; pos3(stem,0); lft x3l=hround(2.5u-.5stem); y3-.5stem=-oo;
hook_in(0,1,2); % opening hook
filldraw circ_stroke z3e--z2e; % left stem
pos3'(hair,180); z3'=z3; pos4(vair,90); pos5(hair,0); pos6(flare,0);
x4=w-.5u-max(1.75u,flare); rt x5r=hround(r-.5u); top y4r=h+oo;
filldraw stroke z3'e{up}...z4e{right}; % link
y6+.5flare=vround(bot y4l-.03x_height); bulb(4,5,6); % bulb
math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#-.5u#);
penlabels(0,1,2,3,4,5,6); endchar;
cmchar "Italic letter tj";
beginchar("T",5.5u#,min(asc_height#,10/7x_height#),desc_depth#);
italcorr max(1/3x_height#*slant+.5hair#+.5u#,x_height#*slant-.25u#);
adjust_fit(if monospace:u#,u# else:0,0 fi); pickup fine.nib;
pos1(stem,0); lft x1l=hround(2u-.5stem); y1+.5stem=h+oo;
x2=x1; x4=w; hook_out(2,3,4); % closing hook
filldraw circ_stroke z1e--z2e; % stem
pickup crisp.nib; pos5(bar,90); pos6(bar,90);
lft x5=hround-.75u; rt x6=hround(w-.75u); top y5r=top y6r=x_height;
filldraw stroke z5e--z6e; % crossbar
pickup crisp.nib;
pos20(vround 1/3[vair,stem],-90);
pos22(vround 1/3[vair,stem],-90);
x20= x2-u; x22= x4r;
y20=y22=-1/2desc_depth;
filldraw stroke z20e---z22e;
math_fit(1.25u#-x_height#*slant,ic#); penlabels(1,2,3,4,5,6); endchar;
cmchar "Italic letter dj";
beginchar("D",9u#,asc_height#,desc_depth#);
italcorr max(1/3x_height#*slant+.5hair#+.5u#,
h#*slant+.5stem#-2u#) if math_fitting:-.5u# fi;
adjust_fit(0,0); pickup fine.nib;
pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
x4+.5stem=hround(w-2.5u+.5stem);
top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
& pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
x5=x0; x7=w; hook_out(5,6,7); % closing hook
pickup tiny.nib; pos5'(stem,0); pos4(stem,0);
z5'=z5; top y4=h; filldraw stroke z4e--z5'e; % stem
sloped_serif.l(4,5',a,1/3,jut,serif_drop); % serif
math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
pickup crisp.nib;
pos20(vround 1/3[vair,stem],-90);
pos22(vround 1/3[vair,stem],-90);
x20= x2r; x22= x6;
y20=y22=-1/2desc_depth;
filldraw stroke z20e---z22e;
penlabels(0,1,2,3,4,5,6,7); endchar;
cmchar "Italic letter s check";
beginchar("S",5.25u#+max(1.75u#,flare#),x_height#,0);
italcorr x_height#*slant-.5u#;
adjust_fit(0,0); pickup fine.nib;
numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
pos2(vair,-90); pos0(max(fine.breadth,ess),theta); pos7(vair,-90);
x2l=x0=x7=.5w; top y2l=h+oo; bot y7r=-oo;
y0-.5ess=y7l+.55(y2r-y7l-ess);
lft x3l=hround u-eps; rt x6r=hround(w-.5u)+eps;
x3r-x3l=x6r-x6l=hround .5[vair,ess]-fine;
ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
interim superness:=more_super;
filldraw stroke super_arc.e(2,3) & z3e{down}
..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
pos1(hair,0); pos10(hround .75[hair,flare],0);
pos2'(vair,90); z2'=z2;
pos8(hair,-180); pos9(flare,-180);
rt x10r=hround(w-u)+2eps; lft x9r=hround .5u-2eps; y10=.78h; y9=.25h;
bulb(2',1,10); bulb(7,8,9); % bulbs
h':=vround min(asc_height,2x_height); % height of circumflex being inverted
pickup crisp.nib; pos22'(.5[vair,curve],90); top y22'r=asc_height;
pos22(.5[vair,curve],90); x22=.5w;
x21=w-x23=good.x 2.25u; top y21=top y23=asc_height; y21-y22=.5(y22'-x_height);
pos21(hair,angle(z22-z21)+90); pos23(hair,angle(z23-z22)+90);
filldraw stroke z21e--z22e--z23e; % diagonals
math_fit(0,ic#); penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
cmchar "Italic letter q";
beginchar("q",8u#,asc_height#,desc_depth#);
italcorr x_height#*slant;
adjust_fit(0,0); pickup tiny.nib;
pos1(stem,0); pos2(stem,0); x1=x2;
lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo;
filldraw circ_stroke z2e--z1e; % left stem
sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
pickup fine.nib; pos3(vair,90); x3=x1; y3=bar_height;
pos4(vair,90); x4=w-2u; top y4r=x_height+oo;
filldraw stroke z3e{right}..{right}z4e; % upper diagonal
pos5(hair,0); pos6(flare,0);
rt x5r=hround(w-.5u); y5+.5flare=vround(bot y4l-.03x_height);
bulb(4,5,6); % bulb
pos7(stem,0); pos8(vair,90); pos9(hair,180);
x9+.5hair=hround(w+.5hair-eps); y9=1/3x_height;
lft x7l=hround(w-2.75u-.5stem); y7=1/2y3; x8=w-1.2u; bot y8l=-oo;
filldraw stroke z3e{right}...z7e{down}
...z8e{right}...{up}z9e; % lower diagonal
math_fit(0,1/3x_height#*slant+.5hair#+.5u#);
pos20(flare,0); pos21(flare,90);
x20=2/3[x2,x7]; y20= -flare; z21= z20;
dot(20,21);
penlabels(1,2,3,4,5,6,7,8,9); endchar;
cmchar "Italic letter h trait";
beginchar("X",9u#,asc_height#,desc_depth#);
italcorr 1/3x_height#*slant+.5hair#+.5u#;
adjust_fit(0,0); pickup tiny.nib;
pos1(stem,0); pos2(stem,0); x1=x2;
lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo;
filldraw circ_stroke z2e--z1e; % left stem
sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
pickup fine.nib; x4+.5stem=hround(w-2.5u+.5stem);
x5=x4-.25u; ital_arch(2,3,4); % arch
x7=w; hook_out(5,6,7)(skewed); % closing hook
filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
pickup crisp.nib;
pos20(vround 1/3[vair,stem],-90);
pos22(vround 1/3[vair,stem],-90);
x20= x2; x22= x4r;
y20=y22=-1/2desc_depth;
filldraw stroke z20e---z22e;
math_fit(0,ic#); penlabels(1,2,3,4,5,6,7); endchar;
cmchar "Italic letter h halfcircle";
beginchar("x",9u#,asc_height#,desc_depth#);
italcorr 1/3x_height#*slant+.5hair#+.5u#;
adjust_fit(0,0); pickup tiny.nib;
pos1(stem,0); pos2(stem,0); x1=x2;
lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo;
filldraw circ_stroke z2e--z1e; % left stem
sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
pickup fine.nib; x4+.5stem=hround(w-2.5u+.5stem);
x5=x4-.25u; ital_arch(2,3,4); % arch
x7=w; hook_out(5,6,7)(skewed); % closing hook
filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
pickup crisp.nib;
pos20(vair,180); pos22(vair,0); pos21(vround 1/3[vair,stem], -90);
x20= x2+u; x22= x5; x21=1/2[x20,x22];
y22= y20=-1/8desc_depth; y21=-1/2desc_depth;
filldraw stroke z20e{down}...z21e{right}...{up}z22e;
math_fit(0,ic#); penlabels(1,2,3,4,5,6,7); endchar;
cmchar "Italic letter h point";
beginchar("H",9u#,asc_height#,desc_depth#);
italcorr 1/3x_height#*slant+.5hair#+.5u#;
adjust_fit(0,0); pickup tiny.nib;
pos1(stem,0); pos2(stem,0); x1=x2;
lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo;
filldraw circ_stroke z2e--z1e; % left stem
sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
pickup fine.nib; x4+.5stem=hround(w-2.5u+.5stem);
x5=x4-.25u; ital_arch(2,3,4); % arch
x7=w; hook_out(5,6,7)(skewed); % closing hook
filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
pos20(flare,0); pos21(flare,90);
x20=x3; y20= -flare; z21= z20;
dot(20,21);
math_fit(0,ic#); penlabels(1,2,3,4,5,6,7); endchar;
cmchar "Italic Ayn";
beginchar("a",4u#,asc_height#,0);
italcorr max(1/3x_height#*slant+.5hair#+.5u#,h#*slant+.5flare#-2u#);
adjust_fit(0,0); pickup fine.nib;
x10= x8=.5w -.4(h-x_height)*slant ;
x9= x8-2u;
top y10=h+1;
y8= x_height;
y9= .5[y8,y10];
pos8(vair,-90);
pos9((flare+hair)/2, 180);
pos10(flare,90);
filldraw stroke z8e..z9e..z10e;
math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
penlabels(0,1,2,3,4,5,8,9); endchar;
cmchar "Italic letter i";
beginchar("i",5u#,asc_height#,0);
italcorr max(1/3x_height#*slant+.5hair#+.5u#,h#*slant+.5flare#-2u#);
adjust_fit(0,0); pickup fine.nib;
x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
hook_in(0,1,2)(skewed); hook_out(3,4,5)(skewed); % hooks
filldraw stroke z2e--z3e; % stem
%pos8(hair,-90);
%pos9(2vair, 0);
%pos10(flare, 0);
%x8=.5w -.4(h-x_height)*slant ;
%x9= x8+ 2u;
%top y10=h+1;
%y8= x_height +2u;
%bulb(8,9,10); % accent
x10= x8=.5w -.4(h-x_height)*slant ;
x9= x8+2u;
top y10=h+1;
y8= x_height +2u;
y9= .5[y8,y10];
pos8(vair,-90);
pos9((flare+hair)/2, 0);
pos10(flare,90);
filldraw stroke z8e..z9e..z10e;
math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
penlabels(0,1,2,3,4,5,8,9); endchar;
cmchar "Italic Aleph";
beginchar("A",8u#,fig_height#,0);
italcorr fig_height#*slant-.5u#;
adjust_fit(0,0); pickup fine.nib;
pos5(stem,45);
pos6(stem,0); pos7(bar,-90); pos8(bar,-90);
x1=x2-.5u; rt x2r=hround(3.5u+.5vair); x3=.5[x2,x4]; lft x4r=hround u;
x5=x7=.5w; rt x6r=hround(w-u); x8=x7-u;
y1=.5[x_height,h]; y2=.5[y1,y3]; y7=y8=.52h; bot y3r=vround 1/4[y7,h];
y4=1/3[y3,y5]; top y5r=h+o; y6=.5[y5,y7];
filldraw stroke
pulled_arc.e(5,6) & pulled_arc.e(6,7)..z8e; % upper arc
pos7'(vair,90); z7'l=z7r;
pos9(curve,0); pos10(stem,-135); pos11(hair,-180); pos12(flare,-180);
rt x9r=hround(w-u); x10=.5w-.5u; lft x11r=hround .75u;
y9=.25h; bot y10r=-o;
%y11=1/3x_height; bulb(10,11,12); % bulb
filldraw stroke pulled_arc.e(7',9) & pulled_arc.e(9,10); % lower arc
penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
cmchar "Italic letter b";
beginchar("b",8u#,asc_height#,0);
italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
adjust_fit(0,0); pickup tiny.nib;
pos1(stem,0); pos2(stem,0); x1=x2;
lft x1l=hround(1.5u-.5stem); top y1=h; y2=.5x_height;
filldraw stroke z1e--z2e; % stem
sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
pickup fine.nib; pos2'(stem,-180); pos3(vair,-90);
pos4(curve,0); pos5(vair,90); pos0(hair,180);
z0=z2=z2'; x3=x5=.5[x2,x4]; rt x4r=hround(w-1.5u+.5curve);
bot y3r=-oo; top y5r=x_height+oo; y4=y2;
filldraw stroke pulled_arc.e(2',3) & pulled_arc.e(3,4)
& pulled_arc.e(4,5) & super_arc.e(5,0); % bowl
math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
penlabels(0,1,2,3,4,5); endchar;
cmchar "Italic letter d";
beginchar("d",9u#,asc_height#,0);
italcorr max(1/3x_height#*slant+.5hair#+.5u#,
h#*slant+.5stem#-2u#) if math_fitting:-.5u# fi;
adjust_fit(0,0); pickup fine.nib;
pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
x4+.5stem=hround(w-2.5u+.5stem);
top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
& pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
x5=x0; x7=w; hook_out(5,6,7); % closing hook
pickup tiny.nib; pos5'(stem,0); pos4(stem,0);
z5'=z5; top y4=h; filldraw stroke z4e--z5'e; % stem
sloped_serif.l(4,5',a,1/3,jut,serif_drop); % serif
math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
penlabels(0,1,2,3,4,5,6,7); endchar;
cmchar "Italic letter f";
beginchar("f",max(1.5u#,stem#)+max(3.5u#,2flare#),asc_height#,desc_depth#);
italcorr asc_height#*slant+.75u#;
adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
numeric theta; z88=(.5w-.5u,h); z89=(.5w+.5u,-d); theta=angle(z88-z89);
pos0(flare,0); pos1(hair,0); pos2(vair,90);
pos3(.5[hair,stem],180); pos4(stem,theta+90);
pos5(stem,theta-90); pos6(.5[hair,stem],0);
pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
rt x1r=hround(w+.25u); lft x8r=hround-.35u; x2=.6[x1,x4]; x7=.6[x8,x5];
y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
y4=.25[x_height,h]; y5=.5[-d,y4];
z4=whatever[z88,z89]; z5=whatever[z88,z89];
x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
bulb(2,1,0); bulb(7,8,9); % bulbs
filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper arc
filldraw z4r--z5l--z5r--z4l--cycle; % stem
filldraw stroke z5e{z89-z88}...z6e...{left}z7e; % lower arc
pickup crisp.nib; pos20(bar,90); pos21(bar,90);
top y20r=top y21r=x_height;
lft x20=lft x4r-.5stem-u; rt x21=rt x4l+.5stem+1.5u;
filldraw stroke z20e--z21e; % crossbar
math_fit(desc_depth#*slant+u#,x_height#*slant);
penlabels(0,1,2,3,4,5,6,7,8,9,20,21,88,89); endchar;
cmchar "Italic letter g";
beginchar("g",8u#,x_height#,desc_depth#);
italcorr x_height#*slant+.5stem#-u#;
adjust_fit(0,0); pickup fine.nib;
pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
x4+.5stem=hround(w-1.5u+.5stem);
top y1r=h+oo; bot y3r=0; y0=y2=.5[y1,y3];
filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
& pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
pos4(stem,0); y4+.5stem=vround .98h;
pos5(stem,0); x5=x4; y5=-1/3d;
pos6(vair,-90); pos7(hair,-180); pos8(flare,-180);
bot y6r=-d-oo; y8-.5flare=vround -.9d;
lft x8r=hround(2u-.5flare); x6=x1; bulb(6,7,8); % bulb
filldraw circ_stroke z4e---z5e...{left}z6e; % stem and arc
math_fit(-min(.3x_height#*slant+.5curve#-u#,1.5u#-desc_depth#*slant),
ic#-1/3x_height#*slant); penlabels(0,1,2,3,4,5,6,7,8); endchar;
cmchar "Italic letter h";
beginchar("h",9u#,asc_height#,0);
italcorr 1/3x_height#*slant+.5hair#+.5u#;
adjust_fit(0,0); pickup tiny.nib;
pos1(stem,0); pos2(stem,0); x1=x2;
lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo;
filldraw circ_stroke z2e--z1e; % left stem
sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
pickup fine.nib; x4+.5stem=hround(w-2.5u+.5stem);
x5=x4-.25u; ital_arch(2,3,4); % arch
x7=w; hook_out(5,6,7)(skewed); % closing hook
filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
math_fit(0,ic#); penlabels(1,2,3,4,5,6,7); endchar;
cmchar "Italic letter j";
beginchar("j",5u#,min(asc_height#,10/7x_height#+.5flare#),desc_depth#);
italcorr h#*slant+.5stem#-u#;
adjust_fit(if monospace:2u#,.5u# else: 0,0 fi); pickup fine.nib;
x0=0; x2=x3; pos3(stem,0); lft x3l=hround(w-1.5u-.5stem);
hook_in(0,1,2); % opening hook
pos4(vair,-90); pos5(hair,-180); pos6(flare,-180);
bot y3=-1/3d; bot y4r=-d-oo; y6-.5flare=-vround.9d;
x4=1/3(w-u); lft x5r=min(hround-.5u,lft x5r+x4-x5l-eps);
filldraw stroke z2e---z3e...{left}z4e; % stem and arc
bulb(4,5,6); % bulb
pos8(flare,0); pos9(flare,90);
rt x8r=rt x2r if not monospace:-.6(h-x_height)*slant fi; top y9r=h+1;
if bot y9l-top y1<slab: y9l:=min(y9r-eps,y1+fine+slab); fi
x8=x9; y8=.5[y9l,y9r]; dot(8,9); % dot
math_fit(desc_depth#*slant,x_height#*slant+.5stem#-u#);
penlabels(0,1,2,3,4,5,6,8,9); endchar;
cmchar "Italic letter k";
beginchar("k",8u#,asc_height#,0);
italcorr x_height#*slant;
adjust_fit(0,0); pickup tiny.nib;
pos1(stem,0); pos2(stem,0); x1=x2;
lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo;
filldraw circ_stroke z2e--z1e; % left stem
sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
pickup fine.nib; pos3(vair,90); x3=x1; y3=bar_height;
pos4(vair,90); x4=w-2u; top y4r=x_height+oo;
filldraw stroke z3e{right}..{right}z4e; % upper diagonal
pos5(hair,0); pos6(flare,0);
rt x5r=hround(w-.5u); y5+.5flare=vround(bot y4l-.03x_height);
bulb(4,5,6); % bulb
pos7(stem,0); pos8(vair,90); pos9(hair,180);
x9+.5hair=hround(w+.5hair-eps); y9=1/3x_height;
lft x7l=hround(w-2.75u-.5stem); y7=1/2y3; x8=w-1.2u; bot y8l=-oo;
filldraw stroke z3e{right}...z7e{down}
...z8e{right}...{up}z9e; % lower diagonal
math_fit(0,1/3x_height#*slant+.5hair#+.5u#);
penlabels(1,2,3,4,5,6,7,8,9); endchar;
cmchar "Italic letter l";
beginchar("l",4u#,asc_height#,0); l_width#:=4u#;
italcorr max(1/3x_height#*slant+.5hair#+.5u#,
asc_height#*slant+.5stem#-2u#) if math_fitting:+.5u# fi;
adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
x2-.5stem=hround(1.5u-.5stem); x4=w; hook_out(2,3,4); % closing hook
pickup tiny.nib; pos1(stem,0); pos2'(stem,0); z2'=z2;
top y1=h; x1=x2; filldraw stroke z1e--z2'e; % stem
sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
math_fit(-.5u#,1/3x_height#*slant+.5hair#+u#); penlabels(1,2,3,4); endchar;
cmchar "Italic letter m";
beginchar("m",15u#,x_height#,0);
italcorr 1/3x_height#*slant+.5hair#+.5u#;
adjust_fit(if monospace:-1.5u#,-2u# else: 0,0 fi); pickup fine.nib;
numeric shaved_stem; shaved_stem=mfudged.stem;
save stem; stem=shaved_stem;
pos2(stem,0); x1=x2;
if monospace: pos1(stem,0); lft x1l=hround(2.5u-.5stem); top y1=h;
else: x0=0; lft x2l=hround(2.5u-.5stem);
hook_in(0,a,1); fi % opening hook
y2-.5stem=-oo; filldraw circ_stroke z2e--z1e; % left stem
x4+.5stem=hround(.5w+.5stem); ital_arch(2,3,4); % left arch
pos5(stem,0); y5=y2; x5=x4;
filldraw circ_stroke z5e--z4e; % middle stem
x7+.5stem=hround(w-2.5u+.5stem);
x8=x7-.25u; ital_arch(5,6,7); % right arch
if monospace: pos9(vair,90); x9=good.x .5[x8,w]; bot y9l=0; y8=1/3h;
pos8(stem,0); filldraw stroke z8e{-u,-x_height}...{right}z9e; % terminal
else: x9=w; hook_out(8,b,9)(skewed); fi % closing hook
filldraw stroke z7e{down}..{-u,-x_height}z8e; % right stem
math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
penlabels(0,a,1,2,3,4,5,6,7,8,9); endchar;
cmchar "Italic letter n";
beginchar("n",10u#,x_height#,0);
italcorr 1/3x_height#*slant+.5hair#+.5u#;
adjust_fit(0,0); pickup fine.nib;
x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
hook_in(0,a,1); % opening hook
filldraw circ_stroke z2e--z1e; % left stem
x4+.5stem=hround(w-2.5u+.5stem); x5=x4-.25u; ital_arch(2,3,4); % arch
x7=w; hook_out(5,6,7)(skewed); % closing hook
filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
penlabels(0,a,1,2,3,4,5,6,7); endchar;
cmchar "Italic letter p";
beginchar("p",9u#,x_height#,desc_depth#);
italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
adjust_fit(0,0); pickup fine.nib;
x0=0; x2-.5stem=hround(2.5u-.5stem); hook_in(0,1,2); % opening hook
pos4(hair,-180); pos5(vair,-90); pos6(curve,0); pos7(vair,90);
x4=x2; rt x6r=hround(w-1.5u+.5curve); x5=x7=.5[x4,x6];
bot y5r=-oo; top y7r=h+oo; y4=y6=.5[y5,y7];
filldraw stroke super_arc.e(4,5) & pulled_arc.e(5,6)
& pulled_arc.e(6,7) & super_arc.e(7,4); % bowl
pickup tiny.nib; pos2'(stem,0); pos3(stem,0);
z2=z2'; x3=x2; bot y3=-d; filldraw stroke z2'e--z3e; % stem
dish_serif(3,2',a,1/3,.75jut,b,1/3,jut); % serif
math_fit(-min(2/3x_height#*slant-.5hair#-.5u#,
2u#-.5stem#-desc_depth#*slant),ic#);
penlabels(0,1,2,3,4,5,6,7); endchar;
cmchar "Italic letter s";
beginchar("s",5.25u#+max(1.75u#,flare#),x_height#,0);
italcorr x_height#*slant-.5u#;
adjust_fit(0,0); pickup fine.nib;
numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
pos2(vair,-90); pos0(max(fine.breadth,ess),theta); pos7(vair,-90);
x2l=x0=x7=.5w; top y2l=h+oo; bot y7r=-oo;
y0-.5ess=y7l+.55(y2r-y7l-ess);
lft x3l=hround u-eps; rt x6r=hround(w-.5u)+eps;
x3r-x3l=x6r-x6l=hround .5[vair,ess]-fine;
ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
interim superness:=more_super;
filldraw stroke super_arc.e(2,3) & z3e{down}
..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
pos1(hair,0); pos10(hround .75[hair,flare],0);
pos2'(vair,90); z2'=z2;
pos8(hair,-180); pos9(flare,-180);
rt x10r=hround(w-u)+2eps; lft x9r=hround .5u-2eps; y10=.78h; y9=.25h;
bulb(2',1,10); bulb(7,8,9); % bulbs
math_fit(0,ic#); penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
cmchar "Italic letter t";
beginchar("t",5.5u#,min(asc_height#,10/7x_height#),0);
italcorr max(1/3x_height#*slant+.5hair#+.5u#,x_height#*slant-.25u#);
adjust_fit(if monospace:u#,u# else:0,0 fi); pickup fine.nib;
pos1(stem,0); lft x1l=hround(2u-.5stem); y1+.5stem=h+oo;
x2=x1; x4=w; hook_out(2,3,4); % closing hook
filldraw circ_stroke z1e--z2e; % stem
pickup crisp.nib; pos5(bar,90); pos6(bar,90);
lft x5=hround-.75u; rt x6=hround(w-.75u); top y5r=top y6r=x_height;
filldraw stroke z5e--z6e; % crossbar
math_fit(1.25u#-x_height#*slant,ic#); penlabels(1,2,3,4,5,6); endchar;
cmchar "Italic letter w";
beginchar("w",12u#,x_height#,0);
italcorr x_height#*slant;
adjust_fit(if monospace:-1.5u#,-u# else: 0,0 fi);
pickup fine.nib; interim superness:=more_super; begingroup
forsuffixes $=hair,stem: shaved$:=mfudged$; save $; $=shaved$; endfor
x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
if monospace: pos1(vair,90); x1=good.x .5[x0,x2]; top y1r=h; y2=2/3h;
pos2(stem,0); filldraw stroke z1e{right}...{-u,-x_height}z2e;
else: hook_in(0,1,2)(skewed); fi % opening hook
pos2'(stem,-180); z2'=z2;
pos4(vair,-90); pos5(hair,0);
x4=.6[x2,x5]; x5=x6=x7; pos6(stem,-180); pos7(stem,-180);
y3=.7[y4,y5]; bot y4r=-oo; y5=.57h;
rt x6l=hround(rt x6l+.5w+.75u-x6); y6+.5stem=h; y7=y3;
pos8(vair,-90); pos9(hair,0);
x8=w-2.75u; rt x9r=hround(w-.5u); bot y8r=-oo; y9=y5;
filldraw stroke z2'e{-u,-x_height}
...super_arc.e(3,4)...{up}z5e; % left stem and arc
filldraw circ_stroke z6e..super_arc.e(7,8)...{up}z9e; % middle stem and arc
v_bulb(9,10); % closing bulb
endgroup; math_fit(-2/3x_height#*slant+.5hair#+.5u#,3/4ic#);
penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
cmchar "Italic letter y";
beginchar("y",8.5u#,x_height#,desc_depth#);
italcorr x_height#*slant+.5stem#-u#;
adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
hook_in(0,1,2)(skewed); % opening hook
pos2'(stem,-180); z2'=z2;
pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
pos6(stem,0); rt x6r=hround(w-1.5u+.5stem);
pos7(stem,0); pos8(vair,-90);
y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
y7=0; bot y8r=-d-oo; x5=x6=x7; x8=.5w;
pos9(hair,-180); pos10(flare,-180); y9=-.5d;
lft x9r=hround(2.75u-.5flare); bulb(8,9,10); % bulb
filldraw stroke z2'e{-u,-x_height}
...super_arc.e(3,4)...{up}z5e; % left stem and arc
filldraw circ_stroke z6e---z7e...{left}z8e; % right stem and link
math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#-1/3x_height#*slant);
penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
cmchar "Italic letter z";
beginchar("z",5.5u#+max(1.5u#,stem#),x_height#,0);
italcorr x_height#*slant+.5hair#;
adjust_fit(if monospace:.5u#,.5u# else: 0,0 fi); pickup fine.nib;
pos1(hair,0); pos2(stem,-90); pos3(vair,-90); pos4(hair,0);
lft x1l=hround(u-.5hair); x2=2.5u; x3=w-2u; rt x4r=hround(w-.5u);
top y1=.78h; top y2l=top y4=h+oo; y3=.825h;
pos5(hair,0); pos6(vair,-90); pos7(stem,-90); pos8(hair,0);
x5=x1; x6=2.5u; x7=w-2u; x8+.5hair=hround(w+.5hair-eps);
bot y5=bot y7r=-oo; y6=.175h; bot y8=.31h;
pair p; p=(z4-z5) yscaled 2;
filldraw stroke z1e{up}...z2e{right}..z3e{right}...{p}z4e; % upper bar
filldraw stroke z5e{p}...z6e{right}..{right}z7e...{up}z8e; % lower bar
filldraw stroke z5e{p}..{p}z4e; % diagonal
math_fit(0,1/3x_height#*slant+.5hair#+.5u#);
penlabels(1,2,3,4,5,6,7,8); endchar;
%FIN DES MINUSCULES
font_slant slant; font_x_height x_height#;
if monospace: font_normal_space 9u#; % no stretching or shrinking
font_quad 18u#;
font_extra_space 9u#;
letter_fit#:=letter_fit:=0;
else: font_normal_space 6u#+2letter_fit#;
font_normal_stretch 3u#; font_normal_shrink 2u#;
font_quad 18u#+4letter_fit#;
font_extra_space 2u#; fi
input itald; % numerals
input italp; % ampersand, question marks, currency sign
input punct; % punctuation symbols common to roman and italic text
if ligs>0: input comlig; fi % ligatures common with roman text
if ligs<=1: input romsub; fi % substitutes for ligatures
if not monospace:
k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
ligtable "d": "w": "l": "l" kern +u#;
ligtable "n": "'" kern kkk#; fi
% there are ligature/kern programs for |"f"| in the {\tt romlig} file
% and for |"-"|, |"`"|, and |"'"| in the {\tt comlig} file

View File

@ -0,0 +1,14 @@
% This file defines the Metafont font mf/A.mf.tmp.
% {limn output Aug 20 18:49:00 1994 from imageto output Aug 20 18:46:06 1994}
% Generated Thu Mar 27 22:58:42 1997.
% This font is in the public domain.
true_design_size# := 14.000pt#;
input Hibzrstp;
font_coding_scheme := "Egyptian font A";
font_identifier := "mf/A.mf.tmp";
input HieroFonteA_font.mf;
def mamodif= identity reflectedabout((w/2,h), (w/2,0)); enddef;
def depart= 128; enddef;
input HieroFonteA_font.mf;
bye.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
% This file defines the Metafont font mf/Aa.mf.tmp.
% {limn output Mar 18 13:34:55 1993 from imageto output Mar 18 13:34:10 1993}
% Generated Thu Mar 27 23:11:17 1997.
% This font is in the public domain.
true_design_size# := 14.000pt#;
input Hibzrstp;
font_coding_scheme := "Egyptian font Aa";
font_identifier := "mf/Aa.mf.tmp";
input HieroFonteAa_font.mf;
def mamodif= identity reflectedabout((w/2,h), (w/2,0)); enddef;
def depart= 128; enddef;
input HieroFonteAa_font.mf;
bye.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
% This file defines the Metafont font mf/B.mf.tmp.
% {limn output Aug 20 21:02:42 1994 from imageto output Aug 20 18:54:50 1994}
% Generated Thu Mar 27 23:00:26 1997.
% This font is in the public domain.
true_design_size# := 14.000pt#;
input Hibzrstp;
font_coding_scheme := "Egyptian font B";
font_identifier := "mf/B.mf.tmp";
input HieroFonteB_font.mf;
def mamodif= identity reflectedabout((w/2,h), (w/2,0)); enddef;
def depart= 128; enddef;
input HieroFonteB_font.mf;
bye.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
% This file defines the Metafont font mf/C.mf.tmp.
% {limn output Aug 20 21:19:04 1994 from imageto output Aug 20 19:00:24 1994}
% Generated Thu Mar 27 23:01:07 1997.
% This font is in the public domain.
true_design_size# := 14.000pt#;
input Hibzrstp;
font_coding_scheme := "Egyptian font C";
font_identifier := "mf/C.mf.tmp";
input HieroFonteC_font.mf;
def mamodif= identity reflectedabout((w/2,h), (w/2,0)); enddef;
def depart= 128; enddef;
input HieroFonteC_font.mf;
bye.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
% This file defines the Metafont font mf/D.mf.tmp.
% {limn output Mar 25 12:32:58 1993 from imageto output Mar 25 12:31:30 1993}
% Generated Thu Mar 27 23:01:24 1997.
% This font is in the public domain.
true_design_size# := 14.000pt#;
input Hibzrstp;
font_coding_scheme := "Egyptian font D";
font_identifier := "mf/D.mf.tmp";
input HieroFonteD_font.mf;
def mamodif= identity reflectedabout((w/2,h), (w/2,0)); enddef;
def depart= 128; enddef;
input HieroFonteD_font.mf;
bye.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
% This file defines the Metafont font mf/E.mf.tmp.
% {limn output Aug 21 02:52:22 1994 from imageto output Aug 21 02:51:06 1994}
% Generated Thu Mar 27 23:01:53 1997.
% This font is in the public domain.
true_design_size# := 14.000pt#;
input Hibzrstp;
font_coding_scheme := "Egyptian font E";
font_identifier := "mf/E.mf.tmp";
input HieroFonteE_font.mf;
def mamodif= identity reflectedabout((w/2,h), (w/2,0)); enddef;
def depart= 128; enddef;
input HieroFonteE_font.mf;
bye.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
% This file defines the Metafont font mf/F.mf.tmp.
% {limn output Mar 23 18:20:35 1993 from imageto output Mar 23 18:15:52 1993}
% Generated Thu Mar 27 23:02:20 1997.
% This font is in the public domain.
true_design_size# := 14.000pt#;
input Hibzrstp;
font_coding_scheme := "Egyptian font F";
font_identifier := "mf/F.mf.tmp";
input HieroFonteF_font.mf;
def mamodif= identity reflectedabout((w/2,h), (w/2,0)); enddef;
def depart= 128; enddef;
input HieroFonteF_font.mf;
bye.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
% This file defines the Metafont font mf/G.mf.tmp.
% {limn output Mar 19 12:44:51 1993 from imageto output Mar 19 12:41:17 1993}
% Generated Thu Mar 27 23:03:29 1997.
% This font is in the public domain.
true_design_size# := 14.000pt#;
input Hibzrstp;
font_coding_scheme := "Egyptian font G";
font_identifier := "mf/G.mf.tmp";
input HieroFonteG_font.mf;
def mamodif= identity reflectedabout((w/2,h), (w/2,0)); enddef;
def depart= 128; enddef;
input HieroFonteG_font.mf;
bye.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
% This file defines the Metafont font mf/H.mf.tmp.
% {limn output Aug 20 22:41:49 1994 from imageto output Aug 20 22:40:06 1994}
% Generated Thu Mar 27 23:04:24 1997.
% This font is in the public domain.
true_design_size# := 14.000pt#;
input Hibzrstp;
font_coding_scheme := "Egyptian font H";
font_identifier := "mf/H.mf.tmp";
input HieroFonteH_font.mf;
def mamodif= identity reflectedabout((w/2,h), (w/2,0)); enddef;
def depart= 128; enddef;
input HieroFonteH_font.mf;
bye.

View File

@ -0,0 +1,732 @@
beginchar (32, 8.242u#, 9.047u#, 0.000u#);
"H1";
z32\0\0s = (0.000u,6.036u);
z32\0\0 = (5.781u,5.554u);
z32\0\1c1 = (5.267u,4.765u);
z32\0\1c2 = (1.709u,0.934u);
z32\0\1 = (3.526u,0.162u);
z32\0\2c1 = (4.065u,-0.068u);
z32\0\2c2 = (6.058u,0.014u);
z32\0\2 = (6.745u,0.014u);
z32\0\3 = (6.294u,2.170u);
z32\0\4c1 = (6.338u,4.190u);
z32\0\4c2 = (8.042u,4.826u);
z32\0\4 = (8.242u,6.625u);
z32\0\5c1 = (8.496u,8.905u);
z32\0\5c2 = (6.273u,9.510u);
z32\0\5 = (4.520u,8.743u);
z32\0\6 = (3.110u,7.744u);
z32\0\7c1 = (1.835u,7.108u);
z32\0\7c2 = (0.401u,7.839u);
z32\1\0s = (5.541u,8.445u);
z32\2\0s = (5.781u,0.977u);
z32\2\0 = (3.854u,0.736u);
z32\2\1c1 = (3.922u,3.516u);
z32\2\1c2 = (5.822u,3.549u);
z32\2\1 = (6.164u,5.152u);
z32\2\2c1 = (6.559u,7.006u);
z32\2\2c2 = (4.195u,6.107u);
z32\2\2 = (4.002u,7.050u);
z32\2\3c1 = (3.852u,7.778u);
z32\2\3c2 = (4.783u,8.090u);
z32\2\3 = (5.300u,8.204u);
z32\2\4 = (6.263u,7.482u);
z32\2\5 = (5.781u,8.445u);
z32\2\6c1 = (10.285u,7.997u);
z32\2\6c2 = (4.842u,3.927u);
fill_or_unfill z32\0\0s
--z32\0\0
..controls z32\0\1c1 and z32\0\1c2..z32\0\1
..controls z32\0\2c1 and z32\0\2c2..z32\0\2
--z32\0\3
..controls z32\0\4c1 and z32\0\4c2..z32\0\4
..controls z32\0\5c1 and z32\0\5c2..z32\0\5
--z32\0\6
..controls z32\0\7c1 and z32\0\7c2..cycle;
fill_or_unfill z32\1\0s
--cycle;
fill_or_unfill z32\2\0s
--z32\2\0
..controls z32\2\1c1 and z32\2\1c2..z32\2\1
..controls z32\2\2c1 and z32\2\2c2..z32\2\2
..controls z32\2\3c1 and z32\2\3c2..z32\2\3
--z32\2\4
--z32\2\5
..controls z32\2\6c1 and z32\2\6c2..cycle;
proof_labels (
32\0\0,
32\0\1,
32\0\2,
32\0\3,
32\0\4,
32\0\5,
32\0\6,
32\0\7,
32\1\0,
32\2\0,
32\2\1,
32\2\2,
32\2\3,
32\2\4,
32\2\5,
32\2\6,
);
endchar;
beginchar (33, 17.826u#, 12.001u#, 0.000u#);
"H2";
z33\0\0s = (0.000u,9.154u);
z33\0\0 = (0.000u,8.672u);
z33\0\1c1 = (1.366u,8.245u);
z33\0\1c2 = (3.402u,8.960u);
z33\0\1 = (4.858u,9.133u);
z33\0\2 = (7.708u,9.133u);
z33\0\3c1 = (12.259u,9.095u);
z33\0\3c2 = (7.119u,4.278u);
z33\0\3 = (6.275u,2.879u);
z33\0\4c1 = (5.703u,1.930u);
z33\0\4c2 = (5.565u,1.090u);
z33\0\4 = (5.541u,0.000u);
z33\0\5 = (8.431u,0.000u);
z33\0\6c1 = (8.443u,3.771u);
z33\0\6c2 = (11.886u,6.188u);
z33\0\6 = (11.081u,9.877u);
z33\0\7c1 = (12.498u,9.353u);
z33\0\7c2 = (17.019u,6.461u);
z33\0\7 = (17.826u,8.913u);
z33\0\8 = (12.768u,9.877u);
z33\0\9c1 = (14.196u,10.334u);
z33\0\9c2 = (17.087u,8.878u);
z33\0\9 = (17.586u,10.841u);
z33\0\10 = (13.837u,10.705u);
z33\0\11 = (7.030u,12.001u);
z33\0\12 = (4.245u,10.450u);
z33\1\0s = (10.600u,8.431u);
z33\1\0c1 = (9.626u,9.991u);
z33\1\0c2 = (9.278u,9.872u);
z33\1\0 = (7.468u,9.877u);
z33\1\1 = (7.709u,11.322u);
z33\1\2c1 = (9.828u,11.273u);
z33\1\2c2 = (10.394u,10.511u);
z33\2\0s = (6.504u,11.081u);
z33\2\0 = (6.745u,9.877u);
z33\2\1 = (5.781u,10.118u);
z33\3\0s = (8.672u,4.336u);
z33\4\0s = (8.431u,4.095u);
z33\4\0c1 = (8.197u,2.803u);
z33\4\0c2 = (7.964u,0.214u);
z33\4\0 = (6.263u,0.723u);
z33\4\1c1 = (6.824u,2.381u);
z33\4\1c2 = (6.924u,3.009u);
fill_or_unfill z33\0\0s
--z33\0\0
..controls z33\0\1c1 and z33\0\1c2..z33\0\1
--z33\0\2
..controls z33\0\3c1 and z33\0\3c2..z33\0\3
..controls z33\0\4c1 and z33\0\4c2..z33\0\4
--z33\0\5
..controls z33\0\6c1 and z33\0\6c2..z33\0\6
..controls z33\0\7c1 and z33\0\7c2..z33\0\7
--z33\0\8
..controls z33\0\9c1 and z33\0\9c2..z33\0\9
--z33\0\10
--z33\0\11
--z33\0\12
--cycle;
fill_or_unfill z33\1\0s
..controls z33\1\0c1 and z33\1\0c2..z33\1\0
--z33\1\1
..controls z33\1\2c1 and z33\1\2c2..cycle;
fill_or_unfill z33\2\0s
--z33\2\0
--z33\2\1
--cycle;
fill_or_unfill z33\3\0s
--cycle;
fill_or_unfill z33\4\0s
..controls z33\4\0c1 and z33\4\0c2..z33\4\0
..controls z33\4\1c1 and z33\4\1c2..cycle;
proof_labels (
33\0\0,
33\0\1,
33\0\2,
33\0\3,
33\0\4,
33\0\5,
33\0\6,
33\0\7,
33\0\8,
33\0\9,
33\0\10,
33\0\11,
33\0\12,
33\0\13,
33\1\0,
33\1\1,
33\1\2,
33\2\0,
33\2\1,
33\2\2,
33\3\0,
33\4\0,
33\4\1,
);
endchar;
beginchar (34, 8.776u#, 11.107u#, 0.000u#);
"H3";
z34\0\0s = (5.238u,0.241u);
z34\0\0 = (8.370u,0.000u);
z34\0\1c1 = (8.044u,1.489u);
z34\0\1c2 = (8.009u,3.259u);
z34\0\1 = (8.169u,4.777u);
z34\0\2c1 = (8.298u,5.996u);
z34\0\2c2 = (9.061u,8.658u);
z34\0\2 = (8.663u,9.690u);
z34\0\3c1 = (7.997u,11.422u);
z34\0\3c2 = (5.750u,11.456u);
z34\0\3 = (4.483u,10.391u);
z34\0\4 = (0.200u,4.315u);
z34\0\5c1 = (0.013u,3.932u);
z34\0\5c2 = (-0.076u,3.434u);
z34\0\5 = (0.079u,3.024u);
z34\0\6c1 = (0.386u,2.213u);
z34\0\6c2 = (1.377u,2.392u);
z34\0\6 = (1.917u,2.838u);
z34\0\7c1 = (3.069u,3.789u);
z34\0\7c2 = (3.283u,5.729u);
z34\0\7 = (4.459u,6.801u);
z34\0\8c1 = (6.460u,8.623u);
z34\0\8c2 = (6.695u,6.496u);
z34\0\8 = (6.309u,4.951u);
z34\0\9 = (5.867u,2.985u);
z34\1\0s = (7.647u,0.723u);
z34\1\0 = (5.961u,0.723u);
z34\1\1c1 = (6.479u,2.159u);
z34\1\1c2 = (8.232u,7.305u);
z34\1\1 = (6.201u,7.930u);
z34\1\2c1 = (5.686u,8.089u);
z34\1\2c2 = (5.184u,8.022u);
z34\1\2 = (4.731u,7.732u);
z34\1\3c1 = (2.867u,6.538u);
z34\1\3c2 = (2.577u,3.476u);
z34\1\3 = (0.661u,2.891u);
z34\1\4 = (0.420u,3.132u);
z34\1\5 = (5.218u,10.138u);
z34\1\6c1 = (5.944u,10.658u);
z34\1\6c2 = (7.491u,10.522u);
z34\1\6 = (7.923u,9.672u);
z34\1\7c1 = (8.381u,8.772u);
z34\1\7c2 = (7.422u,4.738u);
z34\1\7 = (7.407u,3.372u);
z34\1\8c1 = (7.396u,2.439u);
z34\1\8c2 = (7.448u,1.634u);
z34\2\0s = (5.961u,8.913u);
z34\2\0 = (6.683u,9.877u);
fill_or_unfill z34\0\0s
--z34\0\0
..controls z34\0\1c1 and z34\0\1c2..z34\0\1
..controls z34\0\2c1 and z34\0\2c2..z34\0\2
..controls z34\0\3c1 and z34\0\3c2..z34\0\3
--z34\0\4
..controls z34\0\5c1 and z34\0\5c2..z34\0\5
..controls z34\0\6c1 and z34\0\6c2..z34\0\6
..controls z34\0\7c1 and z34\0\7c2..z34\0\7
..controls z34\0\8c1 and z34\0\8c2..z34\0\8
--z34\0\9
--cycle;
fill_or_unfill z34\1\0s
--z34\1\0
..controls z34\1\1c1 and z34\1\1c2..z34\1\1
..controls z34\1\2c1 and z34\1\2c2..z34\1\2
..controls z34\1\3c1 and z34\1\3c2..z34\1\3
--z34\1\4
--z34\1\5
..controls z34\1\6c1 and z34\1\6c2..z34\1\6
..controls z34\1\7c1 and z34\1\7c2..z34\1\7
..controls z34\1\8c1 and z34\1\8c2..cycle;
fill_or_unfill z34\2\0s
--z34\2\0
--cycle;
proof_labels (
34\0\0,
34\0\1,
34\0\2,
34\0\3,
34\0\4,
34\0\5,
34\0\6,
34\0\7,
34\0\8,
34\0\9,
34\0\10,
34\1\0,
34\1\1,
34\1\2,
34\1\3,
34\1\4,
34\1\5,
34\1\6,
34\1\7,
34\1\8,
34\2\0,
34\2\1,
);
endchar;
beginchar (35, 5.757u#, 8.877u#, 0.000u#);
"H4";
z35\0\0s = (0.000u,6.017u);
z35\0\0 = (3.132u,6.017u);
z35\0\1c1 = (2.486u,4.968u);
z35\0\1c2 = (1.162u,4.159u);
z35\0\1 = (1.011u,2.845u);
z35\0\2c1 = (0.913u,1.992u);
z35\0\2c2 = (1.151u,1.376u);
z35\0\2 = (1.748u,0.779u);
z35\0\3c1 = (4.366u,-1.840u);
z35\0\3c2 = (7.383u,2.913u);
z35\0\3 = (3.613u,3.608u);
z35\0\4c1 = (4.228u,4.461u);
z35\0\4c2 = (5.289u,5.145u);
z35\0\4 = (5.636u,6.162u);
z35\0\5c1 = (6.919u,9.913u);
z35\0\5c2 = (-0.734u,9.759u);
z35\1\0s = (3.373u,8.426u);
z35\1\0 = (2.891u,7.462u);
z35\1\1 = (3.613u,8.185u);
z35\1\2c1 = (8.327u,7.263u);
z35\1\2c2 = (-0.192u,2.852u);
z35\1\2 = (3.373u,1.681u);
z35\1\3 = (3.132u,2.644u);
z35\1\4c1 = (5.240u,3.275u);
z35\1\4c2 = (5.134u,0.998u);
z35\1\4 = (3.568u,0.769u);
z35\1\5c1 = (1.963u,0.535u);
z35\1\5c2 = (1.329u,2.098u);
z35\1\5 = (1.903u,3.392u);
z35\1\6c1 = (2.206u,4.076u);
z35\1\6c2 = (2.799u,4.592u);
z35\1\6 = (3.313u,5.113u);
z35\1\7c1 = (3.605u,5.408u);
z35\1\7c2 = (4.138u,5.883u);
z35\1\7 = (3.901u,6.352u);
z35\1\8c1 = (3.627u,6.893u);
z35\1\8c2 = (1.432u,7.055u);
z35\1\8 = (0.723u,7.462u);
fill_or_unfill z35\0\0s
--z35\0\0
..controls z35\0\1c1 and z35\0\1c2..z35\0\1
..controls z35\0\2c1 and z35\0\2c2..z35\0\2
..controls z35\0\3c1 and z35\0\3c2..z35\0\3
..controls z35\0\4c1 and z35\0\4c2..z35\0\4
..controls z35\0\5c1 and z35\0\5c2..cycle;
fill_or_unfill z35\1\0s
--z35\1\0
--z35\1\1
..controls z35\1\2c1 and z35\1\2c2..z35\1\2
--z35\1\3
..controls z35\1\4c1 and z35\1\4c2..z35\1\4
..controls z35\1\5c1 and z35\1\5c2..z35\1\5
..controls z35\1\6c1 and z35\1\6c2..z35\1\6
..controls z35\1\7c1 and z35\1\7c2..z35\1\7
..controls z35\1\8c1 and z35\1\8c2..z35\1\8
--cycle;
proof_labels (
35\0\0,
35\0\1,
35\0\2,
35\0\3,
35\0\4,
35\0\5,
35\1\0,
35\1\1,
35\1\2,
35\1\3,
35\1\4,
35\1\5,
35\1\6,
35\1\7,
35\1\8,
35\1\9,
);
endchar;
beginchar (36, 17.086u#, 4.818u#, 0.000u#);
"H5";
z36\0\0s = (0.000u,0.241u);
z36\0\0 = (0.464u,0.241u);
z36\0\1 = (0.705u,1.927u);
z36\0\2 = (1.187u,1.927u);
z36\0\3 = (1.187u,0.241u);
z36\0\4 = (1.910u,0.241u);
z36\0\5 = (1.910u,1.927u);
z36\0\6 = (2.632u,0.241u);
z36\0\7 = (3.355u,0.241u);
z36\0\8 = (3.355u,1.927u);
z36\0\9 = (3.837u,1.927u);
z36\0\10 = (4.560u,0.241u);
z36\0\11 = (5.282u,1.927u);
z36\0\12 = (5.282u,0.241u);
z36\0\13 = (6.005u,0.241u);
z36\0\14 = (6.005u,2.168u);
z36\0\15 = (6.487u,2.168u);
z36\0\16 = (6.728u,0.000u);
z36\0\17 = (7.210u,2.168u);
z36\0\18 = (8.745u,0.333u);
z36\0\19 = (12.028u,0.000u);
z36\0\20 = (12.028u,0.723u);
z36\0\21 = (10.341u,1.927u);
z36\0\22 = (14.196u,0.723u);
z36\0\23 = (12.991u,1.686u);
z36\0\24c1 = (14.176u,2.107u);
z36\0\24c2 = (15.087u,1.073u);
z36\0\24 = (15.641u,2.650u);
z36\0\25 = (12.028u,3.373u);
z36\0\26c1 = (13.786u,4.037u);
z36\0\26c2 = (15.967u,1.805u);
z36\0\26 = (17.086u,3.854u);
z36\0\27 = (13.754u,4.376u);
z36\0\28 = (10.341u,4.818u);
z36\0\29 = (1.669u,4.577u);
z36\0\30 = (0.000u,4.302u);
z36\1\0s = (8.655u,4.095u);
z36\1\0c1 = (7.410u,2.084u);
z36\1\0c2 = (2.419u,2.427u);
z36\1\0 = (0.464u,3.132u);
z36\1\1 = (0.464u,3.614u);
z36\1\2 = (5.282u,3.854u);
z36\2\0s = (11.787u,2.650u);
fill_or_unfill z36\0\0s
--z36\0\0
--z36\0\1
--z36\0\2
--z36\0\3
--z36\0\4
--z36\0\5
--z36\0\6
--z36\0\7
--z36\0\8
--z36\0\9
--z36\0\10
--z36\0\11
--z36\0\12
--z36\0\13
--z36\0\14
--z36\0\15
--z36\0\16
--z36\0\17
--z36\0\18
--z36\0\19
--z36\0\20
--z36\0\21
--z36\0\22
--z36\0\23
..controls z36\0\24c1 and z36\0\24c2..z36\0\24
--z36\0\25
..controls z36\0\26c1 and z36\0\26c2..z36\0\26
--z36\0\27
--z36\0\28
--z36\0\29
--z36\0\30
--cycle;
fill_or_unfill z36\1\0s
..controls z36\1\0c1 and z36\1\0c2..z36\1\0
--z36\1\1
--z36\1\2
--cycle;
fill_or_unfill z36\2\0s
--cycle;
proof_labels (
36\0\0,
36\0\1,
36\0\2,
36\0\3,
36\0\4,
36\0\5,
36\0\6,
36\0\7,
36\0\8,
36\0\9,
36\0\10,
36\0\11,
36\0\12,
36\0\13,
36\0\14,
36\0\15,
36\0\16,
36\0\17,
36\0\18,
36\0\19,
36\0\20,
36\0\21,
36\0\22,
36\0\23,
36\0\24,
36\0\25,
36\0\26,
36\0\27,
36\0\28,
36\0\29,
36\0\30,
36\0\31,
36\1\0,
36\1\1,
36\1\2,
36\1\3,
36\2\0,
);
endchar;
beginchar (37, 5.460u#, 17.694u#, 0.000u#);
"H6";
z37\0\0s = (0.000u,0.000u);
z37\0\0c1 = (1.664u,0.098u);
z37\0\0c2 = (1.470u,0.677u);
z37\0\0 = (1.442u,2.164u);
z37\0\1c1 = (1.351u,7.059u);
z37\0\1c2 = (4.090u,4.676u);
z37\0\1 = (4.659u,6.379u);
z37\0\2 = (4.136u,13.468u);
z37\0\3c1 = (4.237u,14.480u);
z37\0\3c2 = (5.273u,14.602u);
z37\0\3 = (5.453u,15.727u);
z37\0\4c1 = (5.796u,17.874u);
z37\0\4c2 = (3.084u,18.274u);
z37\0\4 = (1.854u,16.936u);
z37\0\5c1 = (0.620u,15.592u);
z37\0\5c2 = (0.504u,11.905u);
z37\0\5 = (0.483u,10.117u);
z37\1\0s = (0.963u,5.059u);
z37\1\0 = (0.963u,7.468u);
z37\1\1 = (1.204u,10.841u);
z37\1\2c1 = (1.219u,12.168u);
z37\1\2c2 = (1.199u,15.024u);
z37\1\2 = (1.984u,16.083u);
z37\1\3c1 = (2.514u,16.798u);
z37\1\3c2 = (4.070u,17.554u);
z37\1\3 = (4.647u,16.458u);
z37\1\4c1 = (5.264u,15.284u);
z37\1\4c2 = (3.688u,14.941u);
z37\1\4 = (3.489u,14.139u);
z37\1\5 = (3.969u,6.864u);
fill_or_unfill z37\0\0s
..controls z37\0\0c1 and z37\0\0c2..z37\0\0
..controls z37\0\1c1 and z37\0\1c2..z37\0\1
--z37\0\2
..controls z37\0\3c1 and z37\0\3c2..z37\0\3
..controls z37\0\4c1 and z37\0\4c2..z37\0\4
..controls z37\0\5c1 and z37\0\5c2..z37\0\5
--cycle;
fill_or_unfill z37\1\0s
--z37\1\0
--z37\1\1
..controls z37\1\2c1 and z37\1\2c2..z37\1\2
..controls z37\1\3c1 and z37\1\3c2..z37\1\3
..controls z37\1\4c1 and z37\1\4c2..z37\1\4
--z37\1\5
--cycle;
proof_labels (
37\0\0,
37\0\1,
37\0\2,
37\0\3,
37\0\4,
37\0\5,
37\0\6,
37\1\0,
37\1\1,
37\1\2,
37\1\3,
37\1\4,
37\1\5,
37\1\6,
);
endchar;
beginchar (38, 7.904u#, 17.679u#, 0.000u#);
"H6*";
z38\0\0s = (2.891u,9.703u);
z38\0\0 = (0.723u,11.390u);
z38\0\1 = (2.650u,8.017u);
z38\0\2 = (0.000u,9.462u);
z38\0\3c1 = (0.606u,7.904u);
z38\0\3c2 = (2.384u,7.788u);
z38\0\3 = (2.601u,6.523u);
z38\0\4c1 = (2.788u,5.432u);
z38\0\4c2 = (2.411u,4.095u);
z38\0\4 = (2.409u,2.958u);
z38\0\5c1 = (2.408u,2.408u);
z38\0\5c2 = (2.347u,0.873u);
z38\0\5 = (2.531u,0.446u);
z38\0\6c1 = (2.787u,-0.182u);
z38\0\6c2 = (3.450u,-0.125u);
z38\0\6 = (3.704u,0.446u);
z38\0\7c1 = (4.195u,1.589u);
z38\0\7c2 = (3.480u,3.319u);
z38\0\7 = (4.081u,4.417u);
z38\0\8c1 = (4.751u,5.639u);
z38\0\8c2 = (6.860u,5.423u);
z38\0\8 = (7.059u,6.405u);
z38\0\9c1 = (7.203u,6.767u);
z38\0\9c2 = (7.036u,7.404u);
z38\0\9 = (7.059u,7.797u);
z38\0\10c1 = (6.883u,9.486u);
z38\0\10c2 = (6.352u,11.899u);
z38\0\10 = (6.562u,13.518u);
z38\0\11c1 = (6.713u,14.680u);
z38\0\11c2 = (8.303u,15.048u);
z38\0\11 = (7.812u,16.559u);
z38\0\12c1 = (7.141u,18.627u);
z38\0\12c2 = (4.673u,17.460u);
z38\0\12 = (3.818u,16.244u);
z38\0\13c1 = (2.990u,15.066u);
z38\0\13c2 = (2.892u,11.228u);
z38\1\0s = (6.504u,6.331u);
z38\1\0 = (3.132u,4.885u);
z38\1\1c1 = (3.632u,8.177u);
z38\1\1c2 = (3.093u,11.903u);
z38\1\1 = (4.013u,15.085u);
z38\1\2c1 = (4.440u,16.562u);
z38\1\2c2 = (6.764u,17.897u);
z38\1\2 = (7.115u,16.140u);
z38\1\3c1 = (7.339u,15.014u);
z38\1\3c2 = (5.965u,14.881u);
z38\1\3 = (5.852u,13.771u);
fill_or_unfill z38\0\0s
--z38\0\0
--z38\0\1
--z38\0\2
..controls z38\0\3c1 and z38\0\3c2..z38\0\3
..controls z38\0\4c1 and z38\0\4c2..z38\0\4
..controls z38\0\5c1 and z38\0\5c2..z38\0\5
..controls z38\0\6c1 and z38\0\6c2..z38\0\6
..controls z38\0\7c1 and z38\0\7c2..z38\0\7
..controls z38\0\8c1 and z38\0\8c2..z38\0\8
..controls z38\0\9c1 and z38\0\9c2..z38\0\9
..controls z38\0\10c1 and z38\0\10c2..z38\0\10
..controls z38\0\11c1 and z38\0\11c2..z38\0\11
..controls z38\0\12c1 and z38\0\12c2..z38\0\12
..controls z38\0\13c1 and z38\0\13c2..cycle;
fill_or_unfill z38\1\0s
--z38\1\0
..controls z38\1\1c1 and z38\1\1c2..z38\1\1
..controls z38\1\2c1 and z38\1\2c2..z38\1\2
..controls z38\1\3c1 and z38\1\3c2..z38\1\3
--cycle;
proof_labels (
38\0\0,
38\0\1,
38\0\2,
38\0\3,
38\0\4,
38\0\5,
38\0\6,
38\0\7,
38\0\8,
38\0\9,
38\0\10,
38\0\11,
38\0\12,
38\0\13,
38\1\0,
38\1\1,
38\1\2,
38\1\3,
38\1\4,
);
endchar;
beginchar (39, 15.658u#, 14.454u#, 0.000u#);
"H7";
z39\0\0s = (8.431u,14.454u);
z39\0\0 = (8.431u,5.059u);
z39\0\1c1 = (8.431u,4.537u);
z39\0\1c2 = (8.500u,3.570u);
z39\0\1 = (8.177u,3.145u);
z39\0\2c1 = (6.624u,1.101u);
z39\0\2c2 = (0.506u,5.815u);
z39\0\2 = (0.000u,0.723u);
z39\0\3 = (2.033u,1.822u);
z39\0\4 = (7.950u,2.168u);
z39\0\5c1 = (6.525u,-0.074u);
z39\0\5c2 = (2.838u,3.026u);
z39\0\5 = (2.168u,0.000u);
z39\0\6c1 = (2.538u,0.142u);
z39\0\6c2 = (3.012u,0.527u);
z39\0\6 = (3.384u,0.555u);
z39\0\7 = (5.143u,0.127u);
z39\0\8c1 = (6.550u,-0.033u);
z39\0\8c2 = (8.259u,0.954u);
z39\0\8 = (8.913u,2.168u);
z39\0\9 = (10.437u,1.524u);
z39\0\10 = (12.643u,1.321u);
z39\0\11 = (15.658u,0.000u);
z39\0\12c1 = (15.150u,4.473u);
z39\0\12c2 = (10.477u,0.847u);
z39\0\12 = (9.544u,3.279u);
z39\0\13 = (9.877u,14.454u);
fill_or_unfill z39\0\0s
--z39\0\0
..controls z39\0\1c1 and z39\0\1c2..z39\0\1
..controls z39\0\2c1 and z39\0\2c2..z39\0\2
--z39\0\3
--z39\0\4
..controls z39\0\5c1 and z39\0\5c2..z39\0\5
..controls z39\0\6c1 and z39\0\6c2..z39\0\6
--z39\0\7
..controls z39\0\8c1 and z39\0\8c2..z39\0\8
--z39\0\9
--z39\0\10
--z39\0\11
..controls z39\0\12c1 and z39\0\12c2..z39\0\12
--z39\0\13
--cycle;
proof_labels (
39\0\0,
39\0\1,
39\0\2,
39\0\3,
39\0\4,
39\0\5,
39\0\6,
39\0\7,
39\0\8,
39\0\9,
39\0\10,
39\0\11,
39\0\12,
39\0\13,
39\0\14,
);
endchar;
beginchar (40, 6.176u#, 8.644u#, 0.000u#);
"H8";
z40\0\0s = (1.112u,8.644u);
z40\0\0c1 = (-2.114u,7.227u);
z40\0\0c2 = (2.364u,-0.989u);
z40\0\0 = (5.183u,0.015u);
z40\0\1c1 = (7.767u,0.935u);
z40\0\1c2 = (5.151u,9.387u);
z40\1\0s = (1.950u,8.132u);
z40\1\0c1 = (4.118u,7.717u);
z40\1\0c2 = (5.423u,3.971u);
z40\1\0 = (5.312u,2.035u);
z40\1\1c1 = (5.056u,-2.442u);
z40\1\1c2 = (-2.061u,7.364u);
fill_or_unfill z40\0\0s
..controls z40\0\0c1 and z40\0\0c2..z40\0\0
..controls z40\0\1c1 and z40\0\1c2..cycle;
fill_or_unfill z40\1\0s
..controls z40\1\0c1 and z40\1\0c2..z40\1\0
..controls z40\1\1c1 and z40\1\1c2..cycle;
proof_labels (
40\0\0,
40\0\1,
40\1\0,
40\1\1,
);
endchar;

View File

@ -0,0 +1,14 @@
% This file defines the Metafont font mf/I.mf.tmp.
% {limn output Mar 24 17:42:13 1993 from imageto output Mar 24 17:39:58 1993}
% Generated Thu Mar 27 23:06:12 1997.
% This font is in the public domain.
true_design_size# := 14.000pt#;
input Hibzrstp;
font_coding_scheme := "Egyptian font I";
font_identifier := "mf/I.mf.tmp";
input HieroFonteI_font.mf;
def mamodif= identity reflectedabout((w/2,h), (w/2,0)); enddef;
def depart= 128; enddef;
input HieroFonteI_font.mf;
bye.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
% This file defines the Metafont font mf/K.mf.tmp.
% {limn output Aug 21 02:48:43 1994 from imageto output Aug 21 02:48:16 1994}
% Generated Thu Mar 27 23:06:37 1997.
% This font is in the public domain.
true_design_size# := 14.000pt#;
input Hibzrstp;
font_coding_scheme := "Egyptian font A";
font_identifier := "mf/K.mf.tmp";
input HieroFonteK_font.mf;
def mamodif= identity reflectedabout((w/2,h), (w/2,0)); enddef;
def depart= 128; enddef;
input HieroFonteK_font.mf;
bye.

View File

@ -0,0 +1,681 @@
beginchar (32, 17.658u#, 8.816u#, 0.000u#);
"K1";
z32\0\0s = (7.799u,0.000u);
z32\0\0 = (7.558u,1.204u);
z32\0\1 = (13.339u,0.963u);
z32\0\2 = (13.098u,2.409u);
z32\0\3c1 = (14.327u,2.396u);
z32\0\3c2 = (16.068u,1.130u);
z32\0\3 = (16.658u,1.310u);
z32\0\4c1 = (18.022u,1.725u);
z32\0\4c2 = (18.048u,6.132u);
z32\0\4 = (16.445u,6.066u);
z32\0\5c1 = (15.936u,6.045u);
z32\0\5c2 = (14.422u,5.086u);
z32\0\5 = (13.821u,4.818u);
z32\0\6 = (15.507u,8.672u);
z32\0\7 = (4.448u,8.816u);
z32\0\8 = (2.073u,6.146u);
z32\0\9 = (0.000u,3.602u);
z32\0\10 = (0.826u,2.481u);
z32\0\11 = (3.703u,1.656u);
z32\1\0s = (14.544u,7.950u);
z32\1\0 = (12.814u,5.454u);
z32\1\1 = (7.076u,6.711u);
z32\1\2 = (3.703u,6.711u);
z32\1\3c1 = (4.253u,7.935u);
z32\1\3c2 = (4.481u,8.372u);
z32\1\3 = (5.872u,8.427u);
z32\1\4 = (11.412u,8.191u);
z32\1\5c1 = (12.500u,8.186u);
z32\1\5c2 = (13.477u,8.209u);
z32\2\0s = (14.062u,4.095u);
z32\2\0c1 = (13.316u,1.907u);
z32\2\0c2 = (6.428u,1.681u);
z32\2\0 = (4.426u,2.168u);
z32\2\1c1 = (5.177u,3.939u);
z32\2\1c2 = (6.645u,2.976u);
z32\2\1 = (8.280u,3.372u);
z32\2\2 = (4.185u,5.300u);
z32\2\3c1 = (4.612u,1.387u);
z32\2\3c2 = (2.761u,3.198u);
z32\2\3 = (0.812u,3.613u);
z32\2\4c1 = (3.063u,8.065u);
z32\2\4c2 = (10.552u,5.444u);
z32\3\0s = (16.471u,1.927u);
z32\3\0c1 = (15.039u,2.633u);
z32\3\0c2 = (14.846u,2.778u);
z32\3\0 = (14.544u,4.336u);
z32\3\1c1 = (17.285u,6.189u);
z32\3\1c2 = (17.432u,4.002u);
z32\4\0s = (2.499u,4.577u);
z32\4\0 = (2.499u,3.854u);
z32\4\1 = (3.221u,3.854u);
z32\4\2 = (3.221u,4.577u);
fill_or_unfill z32\0\0s
--z32\0\0
--z32\0\1
--z32\0\2
..controls z32\0\3c1 and z32\0\3c2..z32\0\3
..controls z32\0\4c1 and z32\0\4c2..z32\0\4
..controls z32\0\5c1 and z32\0\5c2..z32\0\5
--z32\0\6
--z32\0\7
--z32\0\8
--z32\0\9
--z32\0\10
--z32\0\11
--cycle;
fill_or_unfill z32\1\0s
--z32\1\0
--z32\1\1
--z32\1\2
..controls z32\1\3c1 and z32\1\3c2..z32\1\3
--z32\1\4
..controls z32\1\5c1 and z32\1\5c2..cycle;
fill_or_unfill z32\2\0s
..controls z32\2\0c1 and z32\2\0c2..z32\2\0
..controls z32\2\1c1 and z32\2\1c2..z32\2\1
--z32\2\2
..controls z32\2\3c1 and z32\2\3c2..z32\2\3
..controls z32\2\4c1 and z32\2\4c2..cycle;
fill_or_unfill z32\3\0s
..controls z32\3\0c1 and z32\3\0c2..z32\3\0
..controls z32\3\1c1 and z32\3\1c2..cycle;
fill_or_unfill z32\4\0s
--z32\4\0
--z32\4\1
--z32\4\2
--cycle;
proof_labels (
32\0\0,
32\0\1,
32\0\2,
32\0\3,
32\0\4,
32\0\5,
32\0\6,
32\0\7,
32\0\8,
32\0\9,
32\0\10,
32\0\11,
32\0\12,
32\1\0,
32\1\1,
32\1\2,
32\1\3,
32\1\4,
32\1\5,
32\2\0,
32\2\1,
32\2\2,
32\2\3,
32\2\4,
32\3\0,
32\3\1,
32\4\0,
32\4\1,
32\4\2,
32\4\3,
);
endchar;
beginchar (33, 17.345u#, 7.709u#, 0.000u#);
"K2";
z33\0\0s = (6.986u,0.241u);
z33\0\0 = (6.986u,1.445u);
z33\0\1 = (7.226u,1.686u);
z33\0\2 = (11.081u,1.395u);
z33\0\3 = (13.972u,0.482u);
z33\0\4 = (14.213u,0.723u);
z33\0\5 = (13.972u,1.686u);
z33\0\6 = (17.585u,0.482u);
z33\0\7c1 = (16.844u,3.150u);
z33\0\7c2 = (16.838u,1.522u);
z33\0\7 = (17.585u,4.095u);
z33\0\8 = (15.176u,3.485u);
z33\0\9 = (6.745u,6.263u);
z33\0\10 = (7.467u,7.709u);
z33\0\11c1 = (6.229u,7.577u);
z33\0\11c2 = (-0.034u,5.230u);
z33\0\11 = (0.578u,3.661u);
z33\0\12c1 = (0.938u,2.735u);
z33\0\12c2 = (2.578u,2.651u);
z33\0\12 = (3.372u,2.213u);
z33\0\13c1 = (4.737u,1.459u);
z33\0\13c2 = (5.362u,0.648u);
z33\1\0s = (6.022u,6.504u);
z33\1\0c1 = (6.750u,5.257u);
z33\1\0c2 = (7.713u,5.379u);
z33\1\0 = (8.913u,4.842u);
z33\1\1c1 = (11.775u,3.560u);
z33\1\1c2 = (12.877u,2.789u);
z33\1\1 = (16.140u,2.891u);
z33\1\2 = (16.140u,2.168u);
z33\1\3c1 = (12.285u,2.480u);
z33\1\3c2 = (8.015u,1.547u);
z33\1\3 = (4.336u,2.891u);
z33\1\4 = (4.577u,4.818u);
z33\1\5c1 = (3.250u,3.505u);
z33\1\5c2 = (3.512u,2.334u);
z33\1\5 = (1.204u,3.854u);
z33\1\6 = (2.649u,4.818u);
z33\1\7 = (2.409u,4.095u);
z33\1\8 = (2.649u,3.854u);
z33\1\9 = (3.131u,3.854u);
z33\1\10 = (2.649u,5.059u);
fill_or_unfill z33\0\0s
--z33\0\0
--z33\0\1
--z33\0\2
--z33\0\3
--z33\0\4
--z33\0\5
--z33\0\6
..controls z33\0\7c1 and z33\0\7c2..z33\0\7
--z33\0\8
--z33\0\9
--z33\0\10
..controls z33\0\11c1 and z33\0\11c2..z33\0\11
..controls z33\0\12c1 and z33\0\12c2..z33\0\12
..controls z33\0\13c1 and z33\0\13c2..cycle;
fill_or_unfill z33\1\0s
..controls z33\1\0c1 and z33\1\0c2..z33\1\0
..controls z33\1\1c1 and z33\1\1c2..z33\1\1
--z33\1\2
..controls z33\1\3c1 and z33\1\3c2..z33\1\3
--z33\1\4
..controls z33\1\5c1 and z33\1\5c2..z33\1\5
--z33\1\6
--z33\1\7
--z33\1\8
--z33\1\9
--z33\1\10
--cycle;
proof_labels (
33\0\0,
33\0\1,
33\0\2,
33\0\3,
33\0\4,
33\0\5,
33\0\6,
33\0\7,
33\0\8,
33\0\9,
33\0\10,
33\0\11,
33\0\12,
33\0\13,
33\1\0,
33\1\1,
33\1\2,
33\1\3,
33\1\4,
33\1\5,
33\1\6,
33\1\7,
33\1\8,
33\1\9,
33\1\10,
33\1\11,
);
endchar;
beginchar (34, 17.345u#, 7.227u#, 0.000u#);
"K3";
z34\0\0s = (17.104u,0.241u);
z34\0\0 = (15.417u,2.409u);
z34\0\1 = (17.585u,3.854u);
z34\0\2 = (13.249u,3.854u);
z34\0\3 = (13.490u,4.577u);
z34\0\4 = (10.117u,5.059u);
z34\0\5 = (10.840u,6.504u);
z34\0\6c1 = (9.653u,6.494u);
z34\0\6c2 = (8.384u,6.120u);
z34\0\6 = (7.226u,6.280u);
z34\0\7c1 = (5.413u,6.530u);
z34\0\7c2 = (3.826u,7.326u);
z34\0\7 = (1.927u,7.217u);
z34\0\8c1 = (-1.664u,7.010u);
z34\0\8c2 = (1.790u,4.738u);
z34\0\8 = (2.625u,4.005u);
z34\0\9c1 = (3.152u,3.542u);
z34\0\9c2 = (3.533u,2.795u);
z34\0\9 = (4.141u,2.455u);
z34\0\10c1 = (4.838u,2.065u);
z34\0\10c2 = (5.710u,2.500u);
z34\0\10 = (6.507u,2.313u);
z34\0\11c1 = (7.117u,2.171u);
z34\0\11c2 = (7.880u,1.983u);
z34\0\11 = (8.431u,1.691u);
z34\0\12c1 = (8.978u,1.402u);
z34\0\12c2 = (9.530u,0.793u);
z34\0\12 = (10.117u,0.660u);
z34\0\13 = (13.592u,1.149u);
z34\0\14c1 = (14.735u,1.285u);
z34\0\14c2 = (15.892u,0.369u);
z34\1\0s = (2.890u,6.504u);
z34\1\0 = (2.649u,5.541u);
z34\1\1 = (3.372u,5.541u);
z34\1\2 = (3.131u,6.504u);
z34\1\3c1 = (4.979u,6.349u);
z34\1\3c2 = (12.944u,3.936u);
z34\1\3 = (13.490u,2.409u);
z34\1\4c1 = (11.466u,2.502u);
z34\1\4c2 = (6.161u,2.381u);
z34\1\4 = (5.058u,4.095u);
z34\1\5c1 = (6.221u,3.920u);
z34\1\5c2 = (6.982u,3.402u);
z34\1\5 = (7.708u,4.577u);
z34\1\6 = (4.818u,5.782u);
z34\1\7c1 = (4.569u,2.813u);
z34\1\7c2 = (2.164u,5.199u);
z34\1\7 = (1.445u,6.504u);
z34\2\0s = (14.694u,2.891u);
z34\2\0 = (14.694u,1.927u);
z34\3\0s = (11.081u,1.927u);
z34\3\0 = (9.876u,1.927u);
fill_or_unfill z34\0\0s
--z34\0\0
--z34\0\1
--z34\0\2
--z34\0\3
--z34\0\4
--z34\0\5
..controls z34\0\6c1 and z34\0\6c2..z34\0\6
..controls z34\0\7c1 and z34\0\7c2..z34\0\7
..controls z34\0\8c1 and z34\0\8c2..z34\0\8
..controls z34\0\9c1 and z34\0\9c2..z34\0\9
..controls z34\0\10c1 and z34\0\10c2..z34\0\10
..controls z34\0\11c1 and z34\0\11c2..z34\0\11
..controls z34\0\12c1 and z34\0\12c2..z34\0\12
--z34\0\13
..controls z34\0\14c1 and z34\0\14c2..cycle;
fill_or_unfill z34\1\0s
--z34\1\0
--z34\1\1
--z34\1\2
..controls z34\1\3c1 and z34\1\3c2..z34\1\3
..controls z34\1\4c1 and z34\1\4c2..z34\1\4
..controls z34\1\5c1 and z34\1\5c2..z34\1\5
--z34\1\6
..controls z34\1\7c1 and z34\1\7c2..z34\1\7
--cycle;
fill_or_unfill z34\2\0s
--z34\2\0
--cycle;
fill_or_unfill z34\3\0s
--z34\3\0
--cycle;
proof_labels (
34\0\0,
34\0\1,
34\0\2,
34\0\3,
34\0\4,
34\0\5,
34\0\6,
34\0\7,
34\0\8,
34\0\9,
34\0\10,
34\0\11,
34\0\12,
34\0\13,
34\0\14,
34\1\0,
34\1\1,
34\1\2,
34\1\3,
34\1\4,
34\1\5,
34\1\6,
34\1\7,
34\1\8,
34\2\0,
34\2\1,
34\3\0,
34\3\1,
);
endchar;
beginchar (35, 19.272u#, 8.671u#, 0.000u#);
"K4";
z35\0\0s = (0.000u,5.300u);
z35\0\0 = (2.650u,5.455u);
z35\0\1 = (6.263u,3.373u);
z35\0\2c1 = (7.953u,4.841u);
z35\0\2c2 = (11.148u,2.423u);
z35\0\2 = (12.768u,1.686u);
z35\0\3 = (12.768u,2.891u);
z35\0\4 = (15.658u,1.754u);
z35\0\5 = (18.308u,0.000u);
z35\0\6 = (17.826u,2.168u);
z35\0\7 = (19.272u,3.373u);
z35\0\8 = (14.213u,4.818u);
z35\0\9c1 = (15.608u,8.600u);
z35\0\9c2 = (1.928u,10.955u);
z35\1\0s = (7.709u,8.191u);
z35\1\0c1 = (9.677u,7.832u);
z35\1\0c2 = (12.401u,7.428u);
z35\1\0 = (13.490u,5.541u);
z35\1\1 = (7.468u,7.950u);
z35\2\0s = (4.095u,7.709u);
z35\2\0 = (4.818u,6.263u);
z35\2\1 = (1.204u,6.022u);
z35\2\2c1 = (1.876u,7.292u);
z35\2\2c2 = (2.776u,7.440u);
z35\3\0s = (17.586u,2.891u);
z35\3\0 = (17.345u,1.445u);
z35\3\1 = (14.454u,2.951u);
z35\3\2 = (5.484u,5.422u);
z35\3\3 = (5.059u,7.709u);
z35\3\4c1 = (10.828u,7.241u);
z35\3\4c2 = (14.170u,3.276u);
fill_or_unfill z35\0\0s
--z35\0\0
--z35\0\1
..controls z35\0\2c1 and z35\0\2c2..z35\0\2
--z35\0\3
--z35\0\4
--z35\0\5
--z35\0\6
--z35\0\7
--z35\0\8
..controls z35\0\9c1 and z35\0\9c2..cycle;
fill_or_unfill z35\1\0s
..controls z35\1\0c1 and z35\1\0c2..z35\1\0
--z35\1\1
--cycle;
fill_or_unfill z35\2\0s
--z35\2\0
--z35\2\1
..controls z35\2\2c1 and z35\2\2c2..cycle;
fill_or_unfill z35\3\0s
--z35\3\0
--z35\3\1
--z35\3\2
--z35\3\3
..controls z35\3\4c1 and z35\3\4c2..cycle;
proof_labels (
35\0\0,
35\0\1,
35\0\2,
35\0\3,
35\0\4,
35\0\5,
35\0\6,
35\0\7,
35\0\8,
35\0\9,
35\1\0,
35\1\1,
35\1\2,
35\2\0,
35\2\1,
35\2\2,
35\3\0,
35\3\1,
35\3\2,
35\3\3,
35\3\4,
);
endchar;
beginchar (36, 17.258u#, 5.995u#, 0.000u#);
"K5";
z36\0\0s = (6.176u,0.880u);
z36\0\0 = (9.308u,0.880u);
z36\0\1 = (12.440u,0.598u);
z36\0\2 = (12.199u,1.802u);
z36\0\3 = (17.017u,0.839u);
z36\0\4 = (17.258u,4.211u);
z36\0\5 = (17.017u,4.452u);
z36\0\6 = (11.235u,4.211u);
z36\0\7 = (11.717u,5.416u);
z36\0\8c1 = (9.660u,5.803u);
z36\0\8c2 = (7.051u,6.266u);
z36\0\8 = (4.972u,5.803u);
z36\0\9 = (2.322u,4.786u);
z36\0\10c1 = (1.554u,4.566u);
z36\0\10c2 = (-0.289u,4.173u);
z36\0\10 = (0.031u,3.014u);
z36\0\11c1 = (0.338u,1.899u);
z36\0\11c2 = (1.952u,1.804u);
z36\0\11 = (2.804u,1.340u);
z36\0\12c1 = (3.822u,0.787u);
z36\0\12c2 = (5.498u,-1.092u);
z36\1\0s = (10.272u,5.175u);
z36\1\0 = (10.272u,4.693u);
z36\1\1 = (7.622u,5.175u);
z36\2\0s = (15.572u,3.248u);
z36\2\0 = (15.572u,2.043u);
z36\2\1c1 = (11.805u,3.456u);
z36\2\1c2 = (7.805u,0.285u);
z36\2\1 = (4.008u,2.043u);
z36\2\2 = (6.899u,2.525u);
z36\2\3 = (3.045u,3.730u);
z36\2\4 = (3.286u,2.284u);
z36\2\5 = (0.636u,2.766u);
z36\2\6c1 = (1.075u,4.090u);
z36\2\6c2 = (1.594u,4.013u);
z36\2\6 = (2.563u,3.248u);
z36\2\7 = (2.081u,3.971u);
z36\2\8c1 = (5.271u,5.597u);
z36\2\8c2 = (8.765u,4.076u);
z36\2\8 = (11.958u,3.442u);
z36\2\9c1 = (13.162u,3.203u);
z36\2\9c2 = (14.351u,3.248u);
fill_or_unfill z36\0\0s
--z36\0\0
--z36\0\1
--z36\0\2
--z36\0\3
--z36\0\4
--z36\0\5
--z36\0\6
--z36\0\7
..controls z36\0\8c1 and z36\0\8c2..z36\0\8
--z36\0\9
..controls z36\0\10c1 and z36\0\10c2..z36\0\10
..controls z36\0\11c1 and z36\0\11c2..z36\0\11
..controls z36\0\12c1 and z36\0\12c2..cycle;
fill_or_unfill z36\1\0s
--z36\1\0
--z36\1\1
--cycle;
fill_or_unfill z36\2\0s
--z36\2\0
..controls z36\2\1c1 and z36\2\1c2..z36\2\1
--z36\2\2
--z36\2\3
--z36\2\4
--z36\2\5
..controls z36\2\6c1 and z36\2\6c2..z36\2\6
--z36\2\7
..controls z36\2\8c1 and z36\2\8c2..z36\2\8
..controls z36\2\9c1 and z36\2\9c2..cycle;
proof_labels (
36\0\0,
36\0\1,
36\0\2,
36\0\3,
36\0\4,
36\0\5,
36\0\6,
36\0\7,
36\0\8,
36\0\9,
36\0\10,
36\0\11,
36\0\12,
36\1\0,
36\1\1,
36\1\2,
36\2\0,
36\2\1,
36\2\2,
36\2\3,
36\2\4,
36\2\5,
36\2\6,
36\2\7,
36\2\8,
36\2\9,
);
endchar;
beginchar (37, 14.310u#, 13.602u#, 0.000u#);
"K7";
z37\0\0s = (9.299u,0.753u);
z37\0\0 = (8.576u,2.922u);
z37\0\1c1 = (10.392u,2.302u);
z37\0\1c2 = (11.194u,0.188u);
z37\0\1 = (12.671u,0.000u);
z37\0\2c1 = (14.553u,-0.240u);
z37\0\2c2 = (15.616u,2.594u);
z37\0\2 = (11.467u,4.126u);
z37\0\3c1 = (12.411u,6.431u);
z37\0\3c2 = (10.877u,5.995u);
z37\0\3 = (10.001u,7.743u);
z37\0\4c1 = (9.517u,8.709u);
z37\0\4c2 = (9.309u,9.730u);
z37\0\4 = (8.664u,10.630u);
z37\0\5c1 = (7.538u,12.203u);
z37\0\5c2 = (3.518u,14.523u);
z37\0\5 = (1.662u,13.225u);
z37\0\6c1 = (1.069u,12.810u);
z37\0\6c2 = (0.911u,11.996u);
z37\0\6 = (0.672u,11.353u);
z37\0\7c1 = (-0.227u,8.928u);
z37\0\7c2 = (-0.497u,7.088u);
z37\0\7 = (1.612u,5.140u);
z37\0\8c1 = (2.763u,4.077u);
z37\0\8c2 = (4.051u,3.931u);
z37\0\8 = (5.420u,3.372u);
z37\0\9c1 = (6.995u,2.728u);
z37\0\9c2 = (6.581u,1.066u);
z37\1\0s = (11.226u,5.331u);
z37\1\0 = (10.503u,5.090u);
z37\1\1c1 = (10.598u,4.640u);
z37\1\1c2 = (10.807u,3.998u);
z37\1\1 = (10.356u,3.659u);
z37\1\2c1 = (9.769u,3.217u);
z37\1\2c2 = (4.353u,4.369u);
z37\1\2 = (3.517u,4.736u);
z37\1\3c1 = (2.836u,5.034u);
z37\1\3c2 = (2.142u,5.524u);
z37\1\3 = (1.643u,6.075u);
z37\1\4c1 = (-0.798u,8.775u);
z37\1\4c2 = (1.696u,10.207u);
z37\1\4 = (2.072u,12.558u);
z37\1\5c1 = (9.802u,12.524u);
z37\1\5c2 = (7.051u,9.026u);
z37\2\0s = (11.303u,3.208u);
z37\2\0c1 = (13.482u,3.175u);
z37\2\0c2 = (14.426u,0.764u);
z37\2\0 = (12.887u,0.643u);
z37\2\1c1 = (11.829u,0.559u);
z37\2\1c2 = (10.219u,2.387u);
z37\3\0s = (8.094u,1.958u);
z37\3\0 = (6.890u,3.162u);
fill_or_unfill z37\0\0s
--z37\0\0
..controls z37\0\1c1 and z37\0\1c2..z37\0\1
..controls z37\0\2c1 and z37\0\2c2..z37\0\2
..controls z37\0\3c1 and z37\0\3c2..z37\0\3
..controls z37\0\4c1 and z37\0\4c2..z37\0\4
..controls z37\0\5c1 and z37\0\5c2..z37\0\5
..controls z37\0\6c1 and z37\0\6c2..z37\0\6
..controls z37\0\7c1 and z37\0\7c2..z37\0\7
..controls z37\0\8c1 and z37\0\8c2..z37\0\8
..controls z37\0\9c1 and z37\0\9c2..cycle;
fill_or_unfill z37\1\0s
--z37\1\0
..controls z37\1\1c1 and z37\1\1c2..z37\1\1
..controls z37\1\2c1 and z37\1\2c2..z37\1\2
..controls z37\1\3c1 and z37\1\3c2..z37\1\3
..controls z37\1\4c1 and z37\1\4c2..z37\1\4
..controls z37\1\5c1 and z37\1\5c2..cycle;
fill_or_unfill z37\2\0s
..controls z37\2\0c1 and z37\2\0c2..z37\2\0
..controls z37\2\1c1 and z37\2\1c2..cycle;
fill_or_unfill z37\3\0s
--z37\3\0
--cycle;
proof_labels (
37\0\0,
37\0\1,
37\0\2,
37\0\3,
37\0\4,
37\0\5,
37\0\6,
37\0\7,
37\0\8,
37\0\9,
37\1\0,
37\1\1,
37\1\2,
37\1\3,
37\1\4,
37\1\5,
37\2\0,
37\2\1,
37\3\0,
37\3\1,
);
endchar;
beginchar (38, 8.906u#, 12.611u#, 0.000u#);
"K6";
z38\0\0s = (3.372u,12.611u);
z38\0\0c1 = (3.369u,8.675u);
z38\0\0c2 = (2.134u,8.846u);
z38\0\0 = (0.000u,6.106u);
z38\0\1c1 = (1.386u,5.121u);
z38\0\1c2 = (2.381u,4.400u);
z38\0\1 = (2.997u,2.734u);
z38\0\2c1 = (3.235u,2.091u);
z38\0\2c2 = (3.283u,0.235u);
z38\0\2 = (3.930u,0.032u);
z38\0\3c1 = (4.460u,-0.134u);
z38\0\3c2 = (5.342u,0.359u);
z38\0\3 = (5.781u,0.631u);
z38\0\4c1 = (10.873u,3.784u);
z38\0\4c2 = (9.550u,12.453u);
z38\1\0s = (4.336u,0.807u);
z38\1\0 = (3.285u,3.938u);
z38\1\1 = (1.445u,6.588u);
z38\1\2c1 = (3.523u,8.197u);
z38\1\2c2 = (3.703u,9.267u);
z38\1\2 = (4.336u,11.647u);
z38\1\3c1 = (9.721u,9.929u);
z38\1\3c2 = (9.224u,2.991u);
fill_or_unfill z38\0\0s
..controls z38\0\0c1 and z38\0\0c2..z38\0\0
..controls z38\0\1c1 and z38\0\1c2..z38\0\1
..controls z38\0\2c1 and z38\0\2c2..z38\0\2
..controls z38\0\3c1 and z38\0\3c2..z38\0\3
..controls z38\0\4c1 and z38\0\4c2..cycle;
fill_or_unfill z38\1\0s
--z38\1\0
--z38\1\1
..controls z38\1\2c1 and z38\1\2c2..z38\1\2
..controls z38\1\3c1 and z38\1\3c2..cycle;
proof_labels (
38\0\0,
38\0\1,
38\0\2,
38\0\3,
38\0\4,
38\1\0,
38\1\1,
38\1\2,
38\1\3,
);
endchar;

View File

@ -0,0 +1,14 @@
% This file defines the Metafont font mf/L.mf.tmp.
% {limn output Aug 20 22:51:24 1994 from imageto output Aug 20 22:40:39 1994}
% Generated Thu Mar 27 23:06:47 1997.
% This font is in the public domain.
true_design_size# := 14.000pt#;
input Hibzrstp;
font_coding_scheme := "Egyptian font L";
font_identifier := "mf/L.mf.tmp";
input HieroFonteL_font.mf;
def mamodif= identity reflectedabout((w/2,h), (w/2,0)); enddef;
def depart= 128; enddef;
input HieroFonteL_font.mf;
bye.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,13 @@
% This file defines the Metafont font HieroFonteM
true_design_size# := 14.000pt#;
input Hibzrstp;
font_coding_scheme := "Egyptian font HieroFonteM";
font_identifier := "HieroFonteM";
input HieroFonteM_font.mf;
def mamodif= identity reflectedabout((w/2,h), (w/2,0)); enddef;
def depart= 128 ; enddef;
input HieroFonteM_font.mf;
bye.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
% This file defines the Metafont font mf/N.mf.tmp.
% {limn output Jul 27 11:37:08 1993 from imageto output Jul 20 14:47:07 1993}
% Generated Thu Mar 27 23:07:27 1997.
% This font is in the public domain.
true_design_size# := 14.000pt#;
input Hibzrstp;
font_coding_scheme := "Egyptian font N";
font_identifier := "mf/N.mf.tmp";
input HieroFonteN_font.mf;
def mamodif= identity reflectedabout((w/2,h), (w/2,0)); enddef;
def depart= 128; enddef;
input HieroFonteN_font.mf;
bye.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
% This file defines the Metafont font mf/O.mf.tmp.
% {limn output May 25 17:22:07 1993 from imageto output May 25 17:20:56 1993}
% Generated Thu Mar 27 23:07:46 1997.
% This font is in the public domain.
true_design_size# := 14.000pt#;
input Hibzrstp;
font_coding_scheme := "Egyptian font O";
font_identifier := "mf/O.mf.tmp";
input HieroFonteO_font.mf;
def mamodif= identity reflectedabout((w/2,h), (w/2,0)); enddef;
def depart= 128; enddef;
input HieroFonteO_font.mf;
bye.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
% This file defines the Metafont font mf/P.mf.tmp.
% {limn output Mar 15 10:33:24 1993 from imageto output Mar 15 10:32:12 1993}
% Generated Thu Mar 27 23:08:26 1997.
% This font is in the public domain.
true_design_size# := 14.000pt#;
input Hibzrstp;
font_coding_scheme := "Egyptian font P";
font_identifier := "mf/P.mf.tmp";
input HieroFonteP_font.mf;
def mamodif= identity reflectedabout((w/2,h), (w/2,0)); enddef;
def depart= 128; enddef;
input HieroFonteP_font.mf;
bye.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
% This file defines the Metafont font mf/Q.mf.tmp.
% {limn output Aug 20 23:04:39 1994 from imageto output Aug 20 22:40:48 1994}
% Generated Thu Mar 27 23:08:46 1997.
% This font is in the public domain.
true_design_size# := 14.000pt#;
input Hibzrstp;
font_coding_scheme := "Egyptian font Q";
font_identifier := "mf/Q.mf.tmp";
input HieroFonteQ_font.mf;
def mamodif= identity reflectedabout((w/2,h), (w/2,0)); enddef;
def depart= 128; enddef;
input HieroFonteQ_font.mf;
bye.

View File

@ -0,0 +1,516 @@
beginchar (32, 8.431u#, 17.586u#, 0.000u#);
"Q1";
z32\0\0s = (5.781u,17.586u);
z32\0\0 = (5.781u,11.322u);
z32\0\1 = (3.372u,11.322u);
z32\0\2 = (3.372u,1.927u);
z32\0\3 = (0.000u,1.927u);
z32\0\4 = (0.000u,0.000u);
z32\0\5 = (8.431u,0.000u);
z32\0\6 = (8.431u,17.586u);
z32\1\0s = (7.709u,16.622u);
z32\1\0 = (7.709u,0.723u);
z32\1\1 = (0.723u,0.723u);
z32\1\2 = (0.723u,1.205u);
z32\1\3 = (4.095u,1.205u);
z32\1\4 = (4.095u,10.600u);
z32\1\5 = (6.504u,10.600u);
z32\1\6 = (6.504u,16.622u);
fill_or_unfill z32\0\0s
--z32\0\0
--z32\0\1
--z32\0\2
--z32\0\3
--z32\0\4
--z32\0\5
--z32\0\6
--cycle;
fill_or_unfill z32\1\0s
--z32\1\0
--z32\1\1
--z32\1\2
--z32\1\3
--z32\1\4
--z32\1\5
--z32\1\6
--cycle;
proof_labels (
32\0\0,
32\0\1,
32\0\2,
32\0\3,
32\0\4,
32\0\5,
32\0\6,
32\0\7,
32\1\0,
32\1\1,
32\1\2,
32\1\3,
32\1\4,
32\1\5,
32\1\6,
32\1\7,
);
endchar;
beginchar (33, 16.381u#, 10.836u#, 0.000u#);
"Q2";
z33\0\0s = (0.000u,3.132u);
z33\0\0 = (0.000u,2.168u);
z33\0\1 = (2.168u,2.168u);
z33\0\2 = (2.168u,0.000u);
z33\0\3 = (3.132u,0.000u);
z33\0\4 = (3.132u,2.168u);
z33\0\5 = (13.009u,2.168u);
z33\0\6 = (13.009u,0.000u);
z33\0\7 = (13.972u,0.000u);
z33\0\8 = (13.972u,2.168u);
z33\0\9 = (16.381u,2.168u);
z33\0\10 = (16.381u,2.891u);
z33\0\11 = (13.972u,2.891u);
z33\0\12 = (13.972u,4.577u);
z33\0\13 = (15.177u,4.577u);
z33\0\14c1 = (15.177u,6.408u);
z33\0\14c2 = (15.896u,10.711u);
z33\0\14 = (13.241u,10.830u);
z33\0\15c1 = (12.232u,10.875u);
z33\0\15c2 = (11.675u,10.699u);
z33\0\15 = (10.911u,10.047u);
z33\0\16 = (8.327u,7.091u);
z33\0\17c1 = (6.755u,6.028u);
z33\0\17c2 = (4.741u,6.153u);
z33\0\17 = (3.239u,5.193u);
z33\0\18c1 = (1.393u,4.014u);
z33\0\18c2 = (3.046u,3.143u);
z33\1\0s = (14.454u,5.300u);
z33\1\0 = (13.249u,5.300u);
z33\1\1 = (13.249u,3.132u);
z33\1\2 = (2.650u,3.132u);
z33\1\3c1 = (3.150u,5.401u);
z33\1\3c2 = (6.772u,5.334u);
z33\1\3 = (8.661u,6.516u);
z33\1\4c1 = (10.147u,7.445u);
z33\1\4c2 = (11.260u,10.585u);
z33\1\4 = (13.181u,10.271u);
z33\1\5c1 = (14.415u,10.069u);
z33\1\5c2 = (14.441u,8.957u);
z33\1\5 = (14.454u,7.949u);
fill_or_unfill z33\0\0s
--z33\0\0
--z33\0\1
--z33\0\2
--z33\0\3
--z33\0\4
--z33\0\5
--z33\0\6
--z33\0\7
--z33\0\8
--z33\0\9
--z33\0\10
--z33\0\11
--z33\0\12
--z33\0\13
..controls z33\0\14c1 and z33\0\14c2..z33\0\14
..controls z33\0\15c1 and z33\0\15c2..z33\0\15
--z33\0\16
..controls z33\0\17c1 and z33\0\17c2..z33\0\17
..controls z33\0\18c1 and z33\0\18c2..cycle;
fill_or_unfill z33\1\0s
--z33\1\0
--z33\1\1
--z33\1\2
..controls z33\1\3c1 and z33\1\3c2..z33\1\3
..controls z33\1\4c1 and z33\1\4c2..z33\1\4
..controls z33\1\5c1 and z33\1\5c2..z33\1\5
--cycle;
proof_labels (
33\0\0,
33\0\1,
33\0\2,
33\0\3,
33\0\4,
33\0\5,
33\0\6,
33\0\7,
33\0\8,
33\0\9,
33\0\10,
33\0\11,
33\0\12,
33\0\13,
33\0\14,
33\0\15,
33\0\16,
33\0\17,
33\0\18,
33\1\0,
33\1\1,
33\1\2,
33\1\3,
33\1\4,
33\1\5,
33\1\6,
);
endchar;
beginchar (34, 5.300u#, 6.986u#, 0.000u#);
"Q3";
z34\0\0s = (0.000u,6.986u);
z34\0\0 = (0.000u,0.000u);
z34\0\1 = (5.300u,0.000u);
z34\0\2 = (5.300u,6.986u);
z34\1\0s = (4.577u,6.263u);
z34\1\0 = (4.577u,0.723u);
z34\1\1 = (0.723u,0.723u);
z34\1\2 = (0.723u,6.263u);
fill_or_unfill z34\0\0s
--z34\0\0
--z34\0\1
--z34\0\2
--cycle;
fill_or_unfill z34\1\0s
--z34\1\0
--z34\1\1
--z34\1\2
--cycle;
proof_labels (
34\0\0,
34\0\1,
34\0\2,
34\0\3,
34\1\0,
34\1\1,
34\1\2,
34\1\3,
);
endchar;
beginchar (35, 14.213u#, 8.672u#, 0.000u#);
"Q4";
z35\0\0s = (1.927u,8.672u);
z35\0\0c1 = (2.619u,7.117u);
z35\0\0c2 = (4.798u,7.096u);
z35\0\0 = (5.813u,5.813u);
z35\0\1c1 = (6.189u,5.338u);
z35\0\1c2 = (6.274u,4.702u);
z35\0\1 = (6.238u,4.114u);
z35\0\2c1 = (6.066u,1.314u);
z35\0\2c2 = (2.123u,1.288u);
z35\0\2 = (0.000u,0.964u);
z35\0\3 = (0.000u,0.000u);
z35\0\4 = (14.213u,0.000u);
z35\0\5c1 = (13.560u,1.983u);
z35\0\5c2 = (6.340u,0.515u);
z35\0\5 = (8.137u,5.112u);
z35\0\6c1 = (8.804u,6.820u);
z35\0\6c2 = (11.987u,7.006u);
z35\0\6 = (12.527u,8.672u);
z35\0\7 = (7.468u,7.709u);
z35\1\0s = (8.672u,6.986u);
z35\1\0c1 = (8.308u,6.481u);
z35\1\0c2 = (7.769u,6.063u);
z35\1\0 = (7.516u,5.493u);
z35\1\1c1 = (6.611u,3.461u);
z35\1\1c2 = (8.108u,1.709u);
z35\1\1 = (9.877u,0.964u);
z35\1\2 = (4.336u,0.723u);
z35\1\3 = (6.316u,2.356u);
z35\1\4c1 = (7.435u,3.713u);
z35\1\4c2 = (6.989u,5.849u);
z35\1\4 = (5.541u,6.745u);
fill_or_unfill z35\0\0s
..controls z35\0\0c1 and z35\0\0c2..z35\0\0
..controls z35\0\1c1 and z35\0\1c2..z35\0\1
..controls z35\0\2c1 and z35\0\2c2..z35\0\2
--z35\0\3
--z35\0\4
..controls z35\0\5c1 and z35\0\5c2..z35\0\5
..controls z35\0\6c1 and z35\0\6c2..z35\0\6
--z35\0\7
--cycle;
fill_or_unfill z35\1\0s
..controls z35\1\0c1 and z35\1\0c2..z35\1\0
..controls z35\1\1c1 and z35\1\1c2..z35\1\1
--z35\1\2
--z35\1\3
..controls z35\1\4c1 and z35\1\4c2..z35\1\4
--cycle;
proof_labels (
35\0\0,
35\0\1,
35\0\2,
35\0\3,
35\0\4,
35\0\5,
35\0\6,
35\0\7,
35\0\8,
35\1\0,
35\1\1,
35\1\2,
35\1\3,
35\1\4,
35\1\5,
);
endchar;
beginchar (36, 17.345u#, 6.986u#, 0.000u#);
"Q5";
z36\0\0s = (0.000u,6.986u);
z36\0\0 = (0.000u,0.241u);
z36\0\1 = (2.168u,0.241u);
z36\0\2 = (2.168u,1.927u);
z36\0\3 = (15.417u,1.927u);
z36\0\4 = (15.417u,0.000u);
z36\0\5 = (17.345u,0.000u);
z36\0\6 = (17.345u,6.986u);
z36\1\0s = (16.622u,6.263u);
z36\1\0 = (16.622u,0.723u);
z36\1\1 = (16.140u,0.723u);
z36\1\2 = (16.140u,2.650u);
z36\1\3 = (1.686u,2.650u);
z36\1\4 = (1.686u,0.964u);
z36\1\5 = (0.723u,0.964u);
z36\1\6 = (0.723u,6.263u);
fill_or_unfill z36\0\0s
--z36\0\0
--z36\0\1
--z36\0\2
--z36\0\3
--z36\0\4
--z36\0\5
--z36\0\6
--cycle;
fill_or_unfill z36\1\0s
--z36\1\0
--z36\1\1
--z36\1\2
--z36\1\3
--z36\1\4
--z36\1\5
--z36\1\6
--cycle;
proof_labels (
36\0\0,
36\0\1,
36\0\2,
36\0\3,
36\0\4,
36\0\5,
36\0\6,
36\0\7,
36\1\0,
36\1\1,
36\1\2,
36\1\3,
36\1\4,
36\1\5,
36\1\6,
36\1\7,
);
endchar;
beginchar (37, 17.104u#, 10.682u#, 0.000u#);
"Q6";
z37\0\0s = (0.723u,8.191u);
z37\0\0 = (0.723u,10.600u);
z37\0\1 = (0.000u,10.600u);
z37\0\2 = (0.000u,0.000u);
z37\0\3 = (0.723u,0.000u);
z37\0\4 = (0.723u,1.927u);
z37\0\5 = (16.381u,1.927u);
z37\0\6 = (16.381u,0.000u);
z37\0\7 = (17.104u,0.000u);
z37\0\8 = (17.104u,10.600u);
z37\0\9 = (16.381u,10.600u);
z37\0\10 = (16.381u,7.950u);
z37\0\11 = (13.725u,9.389u);
z37\0\12c1 = (10.756u,10.731u);
z37\0\12c2 = (7.922u,11.122u);
z37\0\12 = (4.790u,10.146u);
z37\1\0s = (14.936u,7.709u);
z37\1\0 = (2.168u,7.709u);
z37\1\1c1 = (3.553u,10.805u);
z37\1\1c2 = (12.978u,10.312u);
z37\2\0s = (16.381u,6.986u);
z37\2\0 = (16.381u,2.650u);
z37\2\1 = (0.723u,2.650u);
z37\2\2 = (0.723u,6.986u);
fill_or_unfill z37\0\0s
--z37\0\0
--z37\0\1
--z37\0\2
--z37\0\3
--z37\0\4
--z37\0\5
--z37\0\6
--z37\0\7
--z37\0\8
--z37\0\9
--z37\0\10
--z37\0\11
..controls z37\0\12c1 and z37\0\12c2..z37\0\12
--cycle;
fill_or_unfill z37\1\0s
--z37\1\0
..controls z37\1\1c1 and z37\1\1c2..cycle;
fill_or_unfill z37\2\0s
--z37\2\0
--z37\2\1
--z37\2\2
--cycle;
proof_labels (
37\0\0,
37\0\1,
37\0\2,
37\0\3,
37\0\4,
37\0\5,
37\0\6,
37\0\7,
37\0\8,
37\0\9,
37\0\10,
37\0\11,
37\0\12,
37\0\13,
37\1\0,
37\1\1,
37\2\0,
37\2\1,
37\2\2,
37\2\3,
);
endchar;
beginchar (38, 8.432u#, 16.908u#, 0.000u#);
"Q7";
z38\0\0s = (0.000u,0.000u);
z38\0\0 = (0.723u,0.000u);
z38\0\1 = (0.964u,3.854u);
z38\0\2 = (0.605u,12.608u);
z38\0\3c1 = (0.531u,13.543u);
z38\0\3c2 = (0.749u,15.185u);
z38\0\3 = (1.567u,15.778u);
z38\0\4c1 = (3.078u,16.873u);
z38\0\4c2 = (4.254u,15.403u);
z38\0\4 = (4.327u,13.963u);
z38\0\5 = (3.614u,4.095u);
z38\0\6 = (1.687u,4.336u);
z38\0\7 = (1.687u,1.927u);
z38\0\8c1 = (4.309u,2.404u);
z38\0\8c2 = (3.988u,2.780u);
z38\0\8 = (3.855u,0.000u);
z38\0\9 = (6.264u,0.000u);
z38\0\10c1 = (5.998u,2.922u);
z38\0\10c2 = (5.651u,2.180u);
z38\0\10 = (8.432u,1.927u);
z38\0\11 = (8.432u,4.336u);
z38\0\12 = (6.264u,4.095u);
z38\0\13c1 = (6.257u,6.284u);
z38\0\13c2 = (5.864u,13.968u);
z38\0\13 = (5.040u,15.639u);
z38\0\14c1 = (4.099u,17.548u);
z38\0\14c2 = (1.383u,17.155u);
z38\0\14 = (0.447u,15.452u);
z38\0\15c1 = (-0.046u,14.554u);
z38\0\15c2 = (0.002u,13.758u);
z38\0\15 = (0.000u,12.768u);
z38\0\16 = (0.404u,6.204u);
z38\1\0s = (5.059u,12.286u);
z38\1\0 = (5.541u,4.577u);
z38\1\1 = (4.337u,4.577u);
z38\2\0s = (5.055u,3.935u);
z38\2\0c1 = (6.228u,3.581u);
z38\2\0c2 = (5.675u,2.209u);
z38\2\0 = (4.666u,2.517u);
z38\2\1c1 = (3.751u,2.797u);
z38\2\1c2 = (4.222u,3.770u);
z38\3\0s = (3.373u,2.891u);
z38\3\0 = (2.168u,2.650u);
z38\3\1 = (2.168u,3.613u);
z38\4\0s = (7.709u,3.613u);
z38\4\0 = (7.709u,2.891u);
z38\4\1 = (6.505u,2.891u);
z38\5\0s = (5.300u,1.686u);
z38\5\0 = (5.541u,0.723u);
z38\5\1 = (4.337u,0.723u);
z38\5\2 = (4.578u,1.686u);
fill_or_unfill z38\0\0s
--z38\0\0
--z38\0\1
--z38\0\2
..controls z38\0\3c1 and z38\0\3c2..z38\0\3
..controls z38\0\4c1 and z38\0\4c2..z38\0\4
--z38\0\5
--z38\0\6
--z38\0\7
..controls z38\0\8c1 and z38\0\8c2..z38\0\8
--z38\0\9
..controls z38\0\10c1 and z38\0\10c2..z38\0\10
--z38\0\11
--z38\0\12
..controls z38\0\13c1 and z38\0\13c2..z38\0\13
..controls z38\0\14c1 and z38\0\14c2..z38\0\14
..controls z38\0\15c1 and z38\0\15c2..z38\0\15
--z38\0\16
--cycle;
fill_or_unfill z38\1\0s
--z38\1\0
--z38\1\1
--cycle;
fill_or_unfill z38\2\0s
..controls z38\2\0c1 and z38\2\0c2..z38\2\0
..controls z38\2\1c1 and z38\2\1c2..cycle;
fill_or_unfill z38\3\0s
--z38\3\0
--z38\3\1
--cycle;
fill_or_unfill z38\4\0s
--z38\4\0
--z38\4\1
--cycle;
fill_or_unfill z38\5\0s
--z38\5\0
--z38\5\1
--z38\5\2
--cycle;
proof_labels (
38\0\0,
38\0\1,
38\0\2,
38\0\3,
38\0\4,
38\0\5,
38\0\6,
38\0\7,
38\0\8,
38\0\9,
38\0\10,
38\0\11,
38\0\12,
38\0\13,
38\0\14,
38\0\15,
38\0\16,
38\0\17,
38\1\0,
38\1\1,
38\1\2,
38\2\0,
38\2\1,
38\3\0,
38\3\1,
38\3\2,
38\4\0,
38\4\1,
38\4\2,
38\5\0,
38\5\1,
38\5\2,
38\5\3,
);
endchar;

View File

@ -0,0 +1,14 @@
% This file defines the Metafont font mf/R.mf.tmp.
% {limn output Mar 15 11:49:31 1993 from imageto output Mar 15 11:48:58 1993}
% Generated Thu Mar 27 23:08:54 1997.
% This font is in the public domain.
true_design_size# := 14.000pt#;
input Hibzrstp;
font_coding_scheme := "Egyptian font Q";
font_identifier := "mf/R.mf.tmp";
input HieroFonteR_font.mf;
def mamodif= identity reflectedabout((w/2,h), (w/2,0)); enddef;
def depart= 128; enddef;
input HieroFonteR_font.mf;
bye.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
% This file defines the Metafont font mf/S.mf.tmp.
% {limn output Mar 15 14:07:01 1993 from imageto output Mar 15 13:54:58 1993}
% Generated Thu Mar 27 23:09:09 1997.
% This font is in the public domain.
true_design_size# := 14.000pt#;
input Hibzrstp;
font_coding_scheme := "Egyptian font S";
font_identifier := "mf/S.mf.tmp";
input HieroFonteS_font.mf;
def mamodif= identity reflectedabout((w/2,h), (w/2,0)); enddef;
def depart= 128; enddef;
input HieroFonteS_font.mf;
bye.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
% This file defines the Metafont font mf/T.mf.tmp.
% {limn output Mar 15 18:56:32 1993 from imageto output Mar 15 18:54:28 1993}
% Generated Thu Mar 27 23:09:37 1997.
% This font is in the public domain.
true_design_size# := 14.000pt#;
input Hibzrstp;
font_coding_scheme := "Egyptian font T";
font_identifier := "mf/T.mf.tmp";
input HieroFonteT_font.mf;
def mamodif= identity reflectedabout((w/2,h), (w/2,0)); enddef;
def depart= 128; enddef;
input HieroFonteT_font.mf;
bye.

Some files were not shown because too many files have changed in this diff Show More