<<

TUGboat, Volume 33 (2012), No. 3 289

A This impressive left rich inscriptions MayaPS: hieroglyphics with (L )TEX on monuments, ceramics and divinatory almanacs. Bruno Delprat and Stepan Orevkov They constitute nevertheless a small volume of avail- Abstract able texts: three surviving manuscripts (the Dres- den, Madrid and Paris codices) and about a thou- We present a system for hieroglyphical composition sand short inscriptions. Maya texts are now largely of ancient Maya texts, to be used for their palaeog- deciphered, with a variable degree of reliability. raphy, the production of dictionaries, epigraphical articles and textbooks. It is designed on the base of The system comprises more than 500 T X and PostScript using the Dvips interface, and th E base signs called . Since the end of the 19 includes a set of Maya fonts. century, Western scholars have set up catalogues The ancient Mayan is very par- of Maya hieroglyphics with different encoding num- ticular: base writing signs attach to each other from bers, the most popular being the Thompson Cata- all four sides (left, right, top, bottom), and are also logue [11]. rotated and rescaled. This cannot be produced with TEX’s usual tools. For example, we can type: \maya{li.AM2 u.TUN/CHU uj.UJ.ki death.KIMI/la} to obtain 5 L ().

J , "! /

1 Introduction  

The present package MayaPS is designed for edit- ing the palaeography of ancient Maya hieroglyphi- cal texts using TEX or LATEX and Dvips. The PhD dissertation [1] and a previously published Spanish symposium communication [2] are typeset using it. MayaPS is available from http://picard. ups-tlse.fr/~orevkov. To get the above Maya word   xib (male), we typed: Figure 1: Dresden codex page 30b(2) & text \mayaSize{2cm}\maya{422.422} palaeography with translation below 5  As another example, to get  katun (calendar

cycle of 20 years), we input: L ! \maya{(023.153.023):220} \emph{katun} (calen... 8

  <  2 Structure of the ancient Maya script 400/010.030 +176/204.031 117.260 133/111.023 tsel-ah lakin chac-xib kabil 2.1 General principles Was stand- East red man sweet The ancient Maya logo-syllabic writing has been in ing use in Central America’s Southern , Guate- mala, Belize, Honduras and Costa Rica for more  rd ad than 1300 years, from the 3 century to the C    mid-16th century, when Spaniards forbade its use 423/515 530.112 515/504.013 026.401 and burned Maya books on religious and political cehel-uah; Chac hanal u-bool grounds. deertamal godChac meal itstribute

MayaPS: Maya hieroglyphics with (LA)TEX 290 TUGboat, Volume 33 (2012), No. 3

Ancient Maya words are composed by attach- of a logographic nature, corresponding to a mor- ing together primitive (non-decomposable) glyphs, pheme or a word, and read globally; for example in a way rather similar to how KIN (sun, day). are composed. Composed primitive glyphs are re-  scaled so that they harmoniously fill a rectangle of A complete glyphic cartouche often corresponds a fixed size (called a cartouche by ). The to a lexical entry with preceding and following gram- cartouches are placed in a regular way on a page. matical affixes as in KIN-ni (sun, day), but Maya manuscript texts are organized in blocks of  2 to 16 cartouches which constitute as many sen- it can also in some cases correspond to two words if tences, often followed by associated numbers, dates they are short, or more rarely otherwise to a part of and eventually a picture. According to the number an expression spelled over two cartouches. of cartouche spaces available on the almanac page to write a short or long sentence, the scribe would 2.3 composition into cartouches squeeze in or spread out writing signs among the For the composition of glyphs the following stan- cartouches to avoid empty boxes and obtain a nice- dard notation is used in the historical and linguistic looking page layout. literature on ancient Maya: if A and B 2.2 Glyph types and orientations are two glyphs (primitive or not), then A.B and A:B In the ancient Maya writing system, there are two A B A encode the glyphs and B ; for exam- types of primitive glyphs called central elements and affixes. Usually the shape of central elements is ple: 204.031 and 204:031  . To control

 closer to square whereas affixes are narrower. the order of composition, one can use parentheses in Central elements always appear in the same ori- the same way as in mathematical formulas. For ex- entation but affixes turn so that they stick to other A B glyphs by their long side, following a general orien- ample, both A.B:C and A.(B:C) stand for C

tation rule. A B (A.B):C Complete glyphic cartouches are made up of but stands for C ; thus: 026.172/023 one to five basic signs or glyphs. Thompson [11] has H and (154.123)/306 6 (in glyph codes, ‘/’

  shown that affixes, like ni, present rotation means the same as ‘:’). patterns and symmetries, around a central element, 3 Description of MayaPS such as KIN, whose orientation is fixed.  3.1 Main features 5  The text cartouches and that we used T116 ni T87 te    t W above are composed of these primitive glyphs: Through analysis of the , we have   5  determined that affix patterns follow a definite rule. MayaPS does not consider any grammatical func- For example, ? te (tree) is an affix and it usu- tion or linguistic meaning of primitive glyphs. They are just graphical elements which are the elementary ally attaches to a central element like this: ? bricks of Maya typesetting, like letters in European ? .  . So, there are five standard ori-

  ? ? As should be clear already, each primitive glyph entations for each affix: when it is single and when is referred to by its code (more specifically called the it attaches from the left, from the right, etc. glyph code). The glyph codes for the above are 422, In the Dresden Codex we find the following cor- 023, 153, and 220. In general, a glyph code is any se- responding cartouche compositions: quence of digits 0... 9 and letters a... z, A... Z. The

 ? encoding system is rather flexible. For example, af- / ter the command \mayaDefine{A9z}{422} you can

? ? ,5 * ?  ? Affixes are generally syllabic value signs which type maya{A9z} to get  . can combine together or with a central element to Any formula of this kind is allowed by MayaPS, write a Maya word. Central elements are generally even something like this:

Bruno Delprat and Stepan Orevkov TUGboat, Volume 33 (2012), No. 3 291

A \mayaC{ % \mayaC = glyphs with input codes  047.276/010 034.233 026.172/023 532/133 910 812 A A  A  047.276/010 532.133 026.172/023 505.233 912 811 A A  A A  A A A A  422.422 047.276/010 026.076.453/072 510/303 909 807} The picture on the right hand side (a fantasy writing cartouche, as there is no such glyph in ancient Maya MayaPS permits the support of multiple fonts. writing) is printed by the command In this paper we use mostly the font codex created \maya{322.322:(322.322:(322.322:(322.322:(322. using the tools mentioned in §4.1, but another style 322:(322.322)))))} glyph set gates has been implemented based on the same glyph codes, for example: The type of each glyph (affix or central) and the five default orientations for each affix are written codex font: gates font: in the font file. Orientation can be changed with J J

modifiers -|+*? whose meaning is: 111.274 111.274    MayaPS provides a tool to add or replace glyphs  in existing fonts and a tool for making new fonts.

 

322 -322 |322 +322 *322 ?322 3.2 Substitutions (ligatures)

The modifiers can be composed together yielding: A list of substitutions is associated with each Maya     font. As we mentioned in the introduction, a new substitution s1 → s2 can be defined by the com-

  mand \mayaDefine{s1}{s2} where s1 and s2 are 322 *322 -*322 +-*322 ?+-*322 |?+-*322 any strings (chains of characters). Substitutions are 5  applied to the arguments of glyph drawing macros. Let us discuss again the glyph . We see They are applied non-recursively. Some substitu- 023 that the primitive glyph occurs here in two dif- tions can be predefined in a Maya font. Three types  ferent ways: and . Moreover, in of substitutions are predefined in the font ‘codex’:

  L it occurs twice horizontally. MayaPS automatically (1) Ligatures. One or several affixes or central chooses the orientation of each primitive glyph of elements can be melded inside a central element or, the affix type according to “orientation rules” for- more frequently, inside a head figurative element in- mulated by the first author after a careful analy- stead of being simply attached to it, forming a liga- sis of ancient manuscripts. Of course, these rules ture as a single bound form. For example, when you have exceptions, but it is easy to handle them. For type \maya{070:349}, you obtain 353 rather

F 5 example, if you type \maya{422.222/024}, you ob- than 1 070:349 because of the predefined sub- tain  (the default orientation), but if you type   stitution () 070:349 → 353. Here we typed

\maya{-422.410}, you obtain  . \maya{070:(349)} to print the non-ligatured form. The ligature was not applied because ‘070:349’ is A more representative example is the palaeog- not a substring of ‘070:(349)’. raphy of page 22c of the Dresden Codex, due to the As another frequent ligature example you have: first author: 373 I Cacau D7c (2), that decomposes into sim-

L H pler glyphs: 369<023/023>. The operator <...> in-

/ "!   ! dicates that both affixes 023 are placed in the

047.276/010 034.233 026.172/023 532/133 910 812 

centre of 369 . E L H Within Maya texts, both forms — melded into

/ !   ! a ligature (single glyph code), and separately drawn 047.276/010 532.133 026.172/023 505.233 912 811

(2–3 glyph codes) — are equivalent and may consti- F 

5 L tute orthographical variants, e.g.: 5 and 1 .

  / L H  422.422 047.276/010 026.076.453/072 510/303 909 807 Our catalogue includes around 100 ligature glyphs. (2) Thompson codes. The basic glyph codes To obtain this, we typed: in the font ‘codex’ are based on glyph numbers of

MayaPS: Maya hieroglyphics with (LA)TEX 292 TUGboat, Volume 33 (2012), No. 3

the Evreinov catalogue [3], from which font draw- 4.2 Currently available fonts ings were derived. However, many specialists are To date, three extensive Maya fonts and a more familiar with glyph codes in Thompson’s cata- partial Olmec script font have been produced by the logue [11]. Due to predefined substitutions T1 → 026 first author. , T2 → 410 etc., those codes can be used

 The font ‘codex’ was designed primarily from also for text input. drawings of the Evreinov glyph catalogue [3] and is the one used up to now in this article. (3) Phonetic values. Reconstituted phonetic The font ‘gates’ is derived from the lead cast values in the Maya language can also be used to ease font designed by William Gates in the 1930s for his text input. Phonetic values of affixes are conven- book [4], and has been implemented based on the tionally written in lowercase letters: a → 050 , same glyph codes as for font ‘codex’. For example, 2 the beginning of the above quote from the Dresden aj → 044 , , ak → 506  etc.; for central el- Codex printed in the font ‘gates’ looks like: 

 ements uppercase letters are used: AT → 200 a , L

34  J / BA → 213 , BA2 → 212 451.452 026.314/(314) 111.274 047.276/010 913 810 (we typed \gates and then, just copied the same As with Thompson codes, predefined substitu- codes used above for a text in the ‘codex’ style). tion tables permit the use of multiple character input The font ‘thompson’ was made based on the methods, analogous to Chinese character computer Thompson catalogue [11] drawings, where the origi- input with either pinyin (PRC’s official romaniza- nal Txxx codes from the catalogue are implemented, tion), cangjie (decomposition into graphic keys) or showing that glyph codes in different fonts can be dianbaoma (Chinese telegraph codes). independent. A correspondence ligature table, included in the font, supports glyph input using Evreinov-derived codes in a text displayed in the ‘thompson’ font, as 4 Maya fonts shown:

4.1 Font creation mechanism  )

# * A MayaPS font is an ASCII text file with the ex-

+ $ "Ђ g  Œ tension .mpf. Its structure is rather flexible. It is T24.T1047a T1.T19:T59a T58a.T1026.T103 T15.T736a:T140 XVIn described in detail in [8]. It has several sections of Similar correspondence ligature tables are in- PostScript code (a header and glyph definitions) [6] cluded in the ‘codex’ and ‘gates’ fonts for glyph separated by lines starting with %@. TEX macros input using Thompson codes and phonetic reconsti- use these marks to select needed sections for includ- tuted values, for example: ing them into ‘mayaps.tmp’ (see §7.1). Substitution , s s  rules (see §4.2) have the form %L@ 1 2. 8 L

There is a tool (involving a special vectorizer J  ! / ‘cotrace’) for creating MayaPS fonts out of mono- T24.T1047a T1.T19:T59 T58.T1026.T103 T15.T736a:T140 XVIn 111.274 026.144:056 505.233.112 047.276:010 916 chrome bitmaps. The fonts supplied with MayaPS are made with it. 5 "! L When MayaPS fonts created with this tool are J , / used, they generate Type 1 fonts [5] in the result- li.AM2 u.TUN/CHU uj.UJ.ki death.KIMI/la ing ps file. As Type 1 Maya fonts are used, the resulting document after conversion is consid- The font ‘olmeca’ is derived directly from draw- nd erably smaller than the intermediate ps file. Only ings of La Mojarra stella [7] of the 2 century AD definitions for those font signs used in the text are and from the Tuxtla tablet. It represents a partial included, and just once. set of Olmec glyphs, which were composed in verti- The \mayaAddGlyph macro allows for inclusion cal texts without rotation of affixes. of a new glyph from an eps file but we do not rec- ommend using it too frequently because it rapidly increases the resulting ps and, especially, pdf files. p n – ¸

Bruno Delprat and Stepan Orevkov TUGboat, Volume 33 (2012), No. 3 293

5 Principles we tried to follow drawing subroutine E is defined in the header in- 5.1 Length optimization cluded to the ps file by the Dvips command: \special\{header:mayaps.tmp} Suppose you already have a ps file (produced by § TEX/Dvips [9]) in an alphabetic language and you (see [9]; 5 for more detail). include ancient Maya glyphs into it. Then MayaPS Before issuing the command \special{"M...E}, adds to the ps output only: all primitive glyph names are extracted from the • MayaPS header (7 Kb); glyph code and checked to see if their definitions are already included into the header mayaps.tmp. The • definitions of primitive glyphs (0.5–3 Kb per token list \output is extended so that at the end glyph for ‘codex’); of each page the definitions of all newly-appeared • about 60 bytes for each occurrence of each com- glyphs are copied from mpf files to mayaps.tmp. posed glyph. MayaPS includes the definitions of only those prim- 6.2 Substitution mechanism itive glyphs which are effectively used in the text. In earlier versions of MayaPS, the substitution mech- Each definition is included only once even if the anism was implemented by creating for each substi- primitive glyph is used many times. This property tution s1 → s2 a macro whose name (control se- holds after conversion from ps to pdf, because Type quence) contains s1 and whose expansion is s2. 1 fonts are used for primitive glyphs (as usual, the Then, for each substring of each composed glyph, size of pdf generally lies between the sizes of ps.gz the corresponding macro was checked for existence and ps). by this command: 5.2 Simplicity of installation and no need \ifx\csname ... \endcsname\relax of support However, this command leaves the tested control sequence in T X’s memory forever. As a result, To use MayaPS, it is enough to copy a few files into E T X’s usual capacity (60000 control sequences) was any directory (folder) ‘visible’ by T X, for example, E E exceeded when the thesis [1] exceeded 300 pages. the directory where the tex file is. In particular, The new substitution mechanism creates the no extra font in the usual sense is needed (a typical tree of initial subwords of left hand sides of all substi- beginner’s problem is how to make T X ‘see’ a new E tutions. Now the number of control sequences used font). does not exceed the size of this tree. The algorithm to draw a composed glyph is im- plemented in the PostScript language [6], and fea- Acknowledgments. The idea to use the Post- tures of Dvips [9] are used for calling it from a T X E Script language rather than TEX for drawing com- file via a \special macro (this is why MayaPS does posed glyphs belongs to Ilya Zakharevich. The TEX not work with pdfTEX). So, TEX, Dvips, and Post- part of MayaPS is inspired by epsf.tex (by Tom Script are needed. Nothing else is used in MayaPS. Rokicki) and even some code is taken from there. The only exception is the tool for creating new Our glyph numbering system is adapted from the MayaPS fonts (mpf files) where C programs are used, Evreinov catalogue [3], as are most codex font draw- but the font file format is described and it is easy ings. Glyph drawings for the gates font are taken to make an mpf file out of a Type 1 font (detailed without modification from William Gates’ [4] Dres- instructions are given in reference [8]). den Codex palaeography. 6 A few words about the implementation Another attempt to adapt (LA)TEX for ancient Native-American languages that concerned Olmec 6.1 Interaction between TEX and PostScript writing was done in [10], using a very different ap- proach from ours.

A glyph code (example: 111.+176/111 for L ) is

References ps passed to the output by the Dvips command: [1] B. Delprat. Le codex de Dresde: Pal´eographie \special{"M(111.+176/111) w h d E} et traduction compar´ee d’un almanach where w × h is the cartouche size and d is the font maya du 15e si`ecle. Th`ese de doctorat, descriptor (an integer number). Dvips literally in- Institut National des Langues et Civilisations cludes the argument of \special{" } into the ps Orientales, Paris, n.p. (th`ese en cours). file and the task of drawing the composed glyph is [2] B. Delprat and S. Orevkov. mayaTEX – un delegated to a PostScript interpreter. The glyph sistema de composici´on tipogr´afica de textos

MayaPS: Maya hieroglyphics with (LA)TEX 294 TUGboat, Volume 33 (2012), No. 3

jerogl´ıficos mayas para la computadora. In [9] T. Rokicki. Dvips: A DVI-to-PostScript XXI Simposio de investigaciones arqueol´ogicas Translator. File dvips.pdf included en , Guatemala de la Asunci´on, in most TEX distributions, available on 23–27 July 2007. http://www.ctan.org. [3] E. V. Evreinov, Yu. G. Kosarev, and [10] A. Syropoulos. Typesetting Native American V. A. Ustinov. Primenenie elektronikh languages. Journal of Electronic Publishing, vychislitel′nykh mashin v issledovanii 8(1), 2002. pis′mennosti drevhikh maiya [The Use of http://www.press.umich.edu/jep. Electronic Computing Machines Applied [11] J. E. S. Thompson. A Catalogue of Maya to Research on Ancient Maya Writing]. . Univ. Oklahoma Press, 1962. Akademia nauk SSSR [Academy of Sciences of the USSR], Novosibirsk, 1969. 4 vols. ⋄ Bruno Delprat [4] William E. Gates. The Dresden Codex INALCO & SeDyL-CNRS, 7, rue reproduced from the tracings of the Guy Mˆoquet original colorings and finished by hand. In 94801 Villejuif cedex Publication, number 2. The France Maya Society at the Johns Hopkins University, brunodelprat (at) club-internet Baltimore, 1932. dot fr http://celia.cnrs.fr/Fr/Labo/ [5] Adobe Systems Inc. Adobe Type 1 Font Delprat.htm Format. File T1Format.pdf available on http://www.adobe.com. ⋄ Stepan Orevkov Institut de math´ematiques de [6] Adobe Systems Inc. PostScript Language Toulouse, Universit´ePaul Reference Manual. Files plrm.pdf and Sabatier plrm2.pdf available on http://www.adobe. 31062 Toulouse com. France [7] Martha J. Macri and Laura M. Stark. A orevkov (at) math dot ups-tlse Sign Catalog of the La Mojarra Script. dot fr Pre-Columbian Art Research Institute, San http://www.math.univ-toulouse. Francisco, 1993. fr/~orevkov/mayaps.html [8] Stepan Orevkov. MayaPS: Typing Maya with TEX/LATEX. Reference manual. available on http://picard.ups-tlse.fr/~orevkov.

Bruno Delprat and Stepan Orevkov