这个问题是针对(TeX)考古学家的
注意:如今,我们已经获得了更好的象形文字字体,这些字体存储在单个字体文件、SVG 文件或一系列涵盖所有 Unicode 象形文字的 GIF 中(Gardiner、New Gardiner、彩色 Gardiner、Aegyptus、Hieroglyphica 项目以及可能还有其他),请参阅U13000更多细节。
过去,我们需要更多的字体文件,因为每个字体的字形限制为 256 个。这是一个例子,我们有五个象形文字的字体文件,http://www.rockwellweb.com/hiero.htm. 我们如何才能绘制出所有现存的象形文字?
举个例子:当我们输入\tohiero{A1-A2-A3}
TeX 时,我们应该从第一个字体文件 ( GARDAE__.TTF
) 中获取前三个象形文字。字形位置为"F021
、"F022
和"F023
。
答案1
我深入挖掘后发现了这个老问题。我正在尝试用新玩具/工具来解决它。
我已经从以下网站下载并安装了这五个 TTF 文件http://www.rockwellweb.com/hiero.htm在我的系统字体中。我们可以注意到,还有我们需要的映射/符号表。我们也可以在http://www.yare.org/egypt/gardiner%20fonts.htm. 我们的任务是用适当的 TeX 命令替换象形文字代码。
我尝试为 XeTeX 和 LuaTeX 用户准备一个解决方案,我正在生成一个临时的 TeX 文件,该文件由独立的 Lua 脚本处理,修改后的结果稍后加载到 TeX 中。数据文件是这两个。
的内容hiero-repl.lua
是这样的:
-- We can get these for instance from Aegyptus.pdf, page 5...
replacements={
{ "i[-]i", "M17A" },
{ "A", "G1" },
{ "i", "M17" },
{ "y", "Z4" },
{ "a", "D36" },
{ "w", "G43" },
{ "b", "D58" },
{ "p", "Q3" },
{ "f", "I9" },
{ "m", "G17" },
{ "n", "N35" },
{ "r", "D21" },
{ "h", "O4" },
{ "H", "V28" },
{ "x", "J1" },
{ "X", "F32" },
{ "z", "O34" },
{ "s", "S29" },
{ "S", "N37" },
{ "q", "N29" },
{ "k", "V31" },
{ "g", "W11" },
{ "t", "X1" },
{ "T", "V13" },
{ "d", "D46" },
{ "D", "I10" },
{ "W", "Z7" },
{ "M", "J15" },
{ "N", "S3" },
{ "R", "D153" },
{ "K", "S56" },
{ "l", "E23" },
}
的内容hiero-all.lua
如下:
-- This is a list of hieroglyphs (first column), the font file (second column) and last two digits of glyph position, the real position is "F0xx.
hieroglyphs={
{ "A1","AE","21" },
{ "A2","AE","22" },
{ "A3","AE","23" },
{ "A4","AE","24" },
{ "A5","AE","25" },
{ "A6","AE","26" },
{ "A7","AE","27" },
{ "A8","AE","28" },
{ "A9","AE","29" },
{ "A10","AE","2A" },
{ "A11","AE","2B" },
{ "A12","AE","2C" },
{ "A13","AE","2D" },
{ "A14","AE","2E" },
{ "A14A","AE","2F" },
{ "A15","AE","30" },
{ "A16","AE","31" },
{ "A17","AE","32" },
{ "A17A","AE","33" },
{ "A18","AE","34" },
{ "A19","AE","35" },
{ "A20","AE","36" },
{ "A21","AE","37" },
{ "A22","AE","38" },
{ "A23","AE","39" },
{ "A24","AE","3A" },
{ "A25","AE","3B" },
{ "A59","AE","3C" },
{ "A26","AE","3D" },
{ "A27","AE","3E" },
{ "A28","AE","3F" },
{ "A29","AE","40" },
{ "A30","AE","41" },
{ "A31","AE","42" },
{ "A32","AE","43" },
{ "A33","AE","44" },
{ "A34","AE","45" },
{ "A35","AE","46" },
{ "A36","AE","47" },
{ "A37","AE","48" },
{ "A38","AE","49" },
{ "A39","AE","4A" },
{ "A40","AE","4B" },
{ "A41","AE","4C" },
{ "A42","AE","4D" },
{ "A43","AE","4E" },
{ "A44","AE","4F" },
{ "A45","AE","50" },
{ "A46","AE","51" },
{ "A47","AE","52" },
{ "A48","AE","53" },
{ "A49","AE","54" },
{ "A50","AE","55" },
{ "A51","AE","56" },
{ "A52","AE","57" },
{ "A53","AE","58" },
{ "A54","AE","59" },
{ "A55","AE","5A" },
{ "B1","AE","5B" },
{ "B2","AE","5C" },
{ "B3","AE","5D" },
{ "B4","AE","5E" },
{ "B5","AE","5F" },
{ "B6","AE","60" },
{ "B7","AE","61" },
{ "C1","AE","62" },
{ "C2","AE","63" },
{ "C3","AE","64" },
{ "C4","AE","65" },
{ "C5","AE","66" },
{ "C6","AE","67" },
{ "C7","AE","68" },
{ "C8","AE","69" },
{ "C9","AE","6A" },
{ "C10","AE","6B" },
{ "C11","AE","6C" },
{ "C12","AE","6D" },
{ "C17","AE","6E" },
{ "C18","AE","6F" },
{ "C19","AE","70" },
{ "C20","AE","71" },
{ "D1","AE","72" },
{ "D2","AE","73" },
{ "D3","AE","74" },
{ "D4","AE","75" },
{ "D5","AE","76" },
{ "D6","AE","77" },
{ "D7","AE","78" },
{ "D8","AE","79" },
{ "D9","AE","7A" },
{ "D10","AE","7B" },
{ "D11","AE","7C" },
{ "D12","AE","7D" },
{ "D13","AE","7E" },
{ "D14","AE","A1" },
{ "D15","AE","A2" },
{ "D16","AE","A3" },
{ "D17","AE","A4" },
{ "D18","AE","A5" },
{ "D19","AE","A6" },
{ "D20","AE","A7" },
{ "D21","AE","A8" },
{ "D22","AE","A9" },
{ "D23","AE","AA" },
{ "D24","AE","AB" },
{ "D25","AE","AC" },
{ "D26","AE","AE" },
{ "D27","AE","AF" },
{ "D27A","AE","B0" },
{ "D28","AE","B1" },
{ "D29","AE","B2" },
{ "D30","AE","B3" },
{ "D31","AE","B4" },
{ "D32","AE","B5" },
{ "D33","AE","B6" },
{ "D34","AE","B7" },
{ "D34A","AE","B8" },
{ "D35","AE","B9" },
{ "D36","AE","BA" },
{ "D37","AE","BB" },
{ "D38","AE","BC" },
{ "D39","AE","BD" },
{ "D40","AE","BE" },
{ "D41","AE","BF" },
{ "D42","AE","C0" },
{ "D43","AE","C1" },
{ "D44","AE","C2" },
{ "D45","AE","C3" },
{ "D46","AE","C4" },
{ "D47","AE","C5" },
{ "D46A","AE","C6" },
{ "D48","AE","C7" },
{ "D49","AE","C8" },
{ "D50","AE","C9" },
{ "D51","AE","CA" },
{ "D52","AE","CB" },
{ "D53","AE","CC" },
{ "D54","AE","CD" },
{ "D55","AE","CE" },
{ "D56","AE","CF" },
{ "D57","AE","D0" },
{ "D58","AE","D1" },
{ "D59","AE","D2" },
{ "D60","AE","D3" },
{ "D61","AE","D4" },
{ "D62","AE","D5" },
{ "D63","AE","D6" },
{ "E1","AE","D7" },
{ "E2","AE","D8" },
{ "E3","AE","D9" },
{ "E4","AE","DA" },
{ "E5","AE","DB" },
{ "E6","AE","DC" },
{ "E7","AE","DD" },
{ "E8","AE","DE" },
{ "E8A","AE","DF" },
{ "E9","AE","E0" },
{ "E10","AE","E1" },
{ "E11","AE","E2" },
{ "E12","AE","E3" },
{ "E13","AE","E4" },
{ "E14","AE","E5" },
{ "E15","AE","E6" },
{ "E16","AE","E7" },
{ "E17","AE","E8" },
{ "E18","AE","E9" },
{ "E19","AE","EA" },
{ "E20","AE","EB" },
{ "E21","AE","EC" },
{ "E22","AE","ED" },
{ "E23","AE","EE" },
{ "E24","AE","EF" },
{ "E25","AE","F0" },
{ "E26","AE","F1" },
{ "E27","AE","F2" },
{ "E28","AE","F3" },
{ "E29","AE","F4" },
{ "E30","AE","F5" },
{ "E31","AE","F6" },
{ "E32","AE","F7" },
{ "E33","AE","F8" },
{ "E34","AE","F9" },
{ "F1","FM","21" },
{ "F2","FM","22" },
{ "F3","FM","23" },
{ "F4","FM","24" },
{ "F5","FM","25" },
{ "F6","FM","26" },
{ "F7","FM","27" },
{ "F8","FM","28" },
{ "F9","FM","29" },
{ "F10","FM","2A" },
{ "F11","FM","2B" },
{ "F12","FM","2C" },
{ "F13","FM","2D" },
{ "F14","FM","2E" },
{ "F15","FM","2F" },
{ "F16","FM","30" },
{ "F17","FM","31" },
{ "F18","FM","32" },
{ "F19","FM","33" },
{ "F20","FM","34" },
{ "F21","FM","35" },
{ "F22","FM","36" },
{ "F23","FM","37" },
{ "F24","FM","38" },
{ "F25","FM","39" },
{ "F26","FM","3A" },
{ "F27","FM","3B" },
{ "F28","FM","3C" },
{ "F29","FM","3D" },
{ "F30","FM","3E" },
{ "F31","FM","3F" },
{ "F32","FM","40" },
{ "F33","FM","41" },
{ "F34","FM","42" },
{ "F35","FM","43" },
{ "F36","FM","44" },
{ "F37","FM","45" },
{ "F38","FM","46" },
{ "F39","FM","47" },
{ "F40","FM","48" },
{ "F41","FM","49" },
{ "F42","FM","4A" },
{ "F43","FM","4B" },
{ "F44","FM","4C" },
{ "F45","FM","4D" },
{ "F46","FM","4E" },
{ "F47","FM","4F" },
{ "F48","FM","50" },
{ "F49","FM","51" },
{ "F50","FM","52" },
{ "F51","FM","53" },
{ "F52","FM","54" },
{ "G1","FM","55" },
{ "G2","FM","56" },
{ "G3","FM","57" },
{ "G4","FM","58" },
{ "G5","FM","59" },
{ "G6","FM","5A" },
{ "G7","FM","5B" },
{ "G7A","FM","5C" },
{ "G7B","FM","5D" },
{ "G8","FM","5E" },
{ "G9","FM","5F" },
{ "G10","FM","60" },
{ "G11","FM","61" },
{ "G12","FM","62" },
{ "G13","FM","63" },
{ "G14","FM","64" },
{ "G15","FM","65" },
{ "G16","FM","66" },
{ "G17","FM","67" },
{ "G18","FM","68" },
{ "G19","FM","69" },
{ "G20","FM","6A" },
{ "G21","FM","6B" },
{ "G22","FM","6C" },
{ "G23","FM","6D" },
{ "G24","FM","6E" },
{ "G25","FM","6F" },
{ "G26","FM","70" },
{ "G26A","FM","71" },
{ "G27","FM","72" },
{ "G28","FM","73" },
{ "G29","FM","74" },
{ "G30","FM","75" },
{ "G31","FM","76" },
{ "G32","FM","77" },
{ "G33","FM","78" },
{ "G34","FM","79" },
{ "G35","FM","7A" },
{ "G36","FM","7B" },
{ "G37","FM","7C" },
{ "G38","FM","7D" },
{ "G39","FM","7E" },
{ "G40","FM","A1" },
{ "G41","FM","A2" },
{ "G42","FM","A3" },
{ "G43","FM","A4" },
{ "G44","FM","A5" },
{ "G45","FM","A6" },
{ "G46","FM","A7" },
{ "G47","FM","A8" },
{ "G48","FM","A9" },
{ "G49","FM","AA" },
{ "G50","FM","AB" },
{ "G51","FM","AC" },
{ "G52","FM","AE" },
{ "G53","FM","AF" },
{ "G54","FM","B0" },
{ "H1","FM","B1" },
{ "H2","FM","B2" },
{ "H3","FM","B3" },
{ "H4","FM","B4" },
{ "H5","FM","B5" },
{ "H6","FM","B6" },
{ "H6A","FM","B7" },
{ "H7","FM","B8" },
{ "H8","FM","B9" },
{ "I1","FM","BA" },
{ "I2","FM","BB" },
{ "I3","FM","BC" },
{ "I5A","FM","BD" },
{ "I4","FM","BE" },
{ "I5","FM","BF" },
{ "I6","FM","C0" },
{ "I7","FM","C1" },
{ "I8","FM","C2" },
{ "I9","FM","C3" },
{ "I10","FM","C4" },
{ "I11","FM","C5" },
{ "I12","FM","C6" },
{ "I13","FM","C7" },
{ "I14","FM","C8" },
{ "I15","FM","C9" },
{ "K1","FM","CB" },
{ "K2","FM","CC" },
{ "K3","FM","CD" },
{ "K4","FM","CE" },
{ "K5","FM","CF" },
{ "K7","FM","D0" },
{ "K6","FM","D1" },
{ "L1","FM","D2" },
{ "L2","FM","D3" },
{ "L3","FM","D4" },
{ "L4","FM","D5" },
{ "L5","FM","D6" },
{ "L6","FM","D7" },
{ "L7","FM","D8" },
{ "M1","FM","D9" },
{ "M2","FM","DA" },
{ "M3","FM","DC" },
{ "M4","FM","DD" },
{ "M5","FM","DE" },
{ "M6","FM","DF" },
{ "M7","FM","E0" },
{ "M8","FM","E1" },
{ "M9","FM","E2" },
{ "M10","FM","E3" },
{ "M11","FM","E4" },
{ "M12","FM","E5" },
{ "M13","FM","E6" },
{ "M14","FM","E7" },
{ "M15","FM","E8" },
{ "M16","FM","E9" },
{ "M17","FM","EA" },
{ "M18","FM","EB" },
{ "M19","FM","EC" },
{ "M20","FM","ED" },
{ "M21","FM","EE" },
{ "M22","FM","EF" },
{ "M23","FM","F0" },
{ "M24","FM","F1" },
{ "M25","FM","F2" },
{ "M26","FM","F3" },
{ "M27","FM","F4" },
{ "M28","FM","F5" },
{ "M29","FM","F6" },
{ "M30","FM","F7" },
{ "M31","FM","F8" },
{ "M32","FM","F9" },
{ "M33","FM","FA" },
{ "M34","FM","FB" },
{ "M35","FM","FC" },
{ "M36","FM","FD" },
{ "M37","FM","FE" },
{ "M38","FM","FF" },
{ "M39","MS","21" },
{ "M40","MS","22" },
{ "M41","MS","23" },
{ "M42","MS","24" },
{ "M43","MS","25" },
{ "M44","MS","26" },
{ "N1","MS","27" },
{ "N2","MS","28" },
{ "N3","MS","29" },
{ "N4","MS","2A" },
{ "N5","MS","2B" },
{ "N6","MS","2C" },
{ "N7","MS","2D" },
{ "N8","MS","2E" },
{ "N9","MS","2F" },
{ "N10","MS","30" },
{ "N11","MS","31" },
{ "N12","MS","32" },
{ "N13","MS","33" },
{ "N14","MS","34" },
{ "N15","MS","35" },
{ "N16","MS","36" },
{ "N17","MS","37" },
{ "N18","MS","38" },
{ "N19","MS","39" },
{ "N20","MS","3A" },
{ "N21","MS","3B" },
{ "N22","MS","3C" },
{ "N23","MS","3D" },
{ "N24","MS","3E" },
{ "N25","MS","3F" },
{ "N26","MS","40" },
{ "N27","MS","41" },
{ "N28","MS","42" },
{ "N29","MS","43" },
{ "N30","MS","44" },
{ "N31","MS","45" },
{ "N32","MS","46" },
{ "N33","MS","47" },
{ "N34","MS","48" },
{ "N35","MS","49" },
{ "N35A","MS","4A" },
{ "N36","MS","4B" },
{ "N37","MS","4C" },
{ "N38","MS","4D" },
{ "N39","MS","4E" },
{ "N40","MS","4F" },
{ "N41","MS","50" },
{ "N42","MS","51" },
{ "O1","MS","52" },
{ "O2","MS","53" },
{ "O3","MS","54" },
{ "O4","MS","55" },
{ "O5","MS","56" },
{ "O6","MS","57" },
{ "O7","MS","58" },
{ "O8","MS","59" },
{ "O9","MS","5A" },
{ "O10","MS","5B" },
{ "O11","MS","5C" },
{ "O12","MS","5D" },
{ "O13","MS","5E" },
{ "O14","MS","5F" },
{ "O15","MS","60" },
{ "O16","MS","61" },
{ "O17","MS","62" },
{ "O18","MS","63" },
{ "O19","MS","64" },
{ "O20","MS","65" },
{ "O21","MS","66" },
{ "O22","MS","67" },
{ "O23","MS","68" },
{ "O24","MS","69" },
{ "O25","MS","6A" },
{ "O26","MS","6B" },
{ "O27","MS","6C" },
{ "O28","MS","6D" },
{ "O29","MS","6E" },
{ "O30","MS","6F" },
{ "O31","MS","70" },
{ "O32","MS","71" },
{ "O33","MS","72" },
{ "O34","MS","73" },
{ "O35","MS","74" },
{ "O36","MS","75" },
{ "O37","MS","76" },
{ "O38","MS","77" },
{ "O39","MS","78" },
{ "O40","MS","79" },
{ "O41","MS","7A" },
{ "O42","MS","7B" },
{ "O43","MS","7C" },
{ "O44","MS","7D" },
{ "O45","MS","7E" },
{ "O46","MS","A1" },
{ "O47","MS","A2" },
{ "O48","MS","A3" },
{ "O49","MS","A4" },
{ "O50","MS","A5" },
{ "O51","MS","A6" },
{ "P1","MS","A7" },
{ "P2","MS","A9" },
{ "P3","MS","AA" },
{ "P4","MS","AB" },
{ "P5","MS","AC" },
{ "P6","MS","AE" },
{ "P7","MS","AF" },
{ "P8","MS","B0" },
{ "P9","MS","B1" },
{ "P10","MS","B2" },
{ "P11","MS","B3" },
{ "Q1","MS","B4" },
{ "Q2","MS","B5" },
{ "Q3","MS","B6" },
{ "Q4","MS","B7" },
{ "Q5","MS","B8" },
{ "Q6","MS","B9" },
{ "Q7","MS","BA" },
{ "R1","MS","BB" },
{ "R2","MS","BC" },
{ "R3","MS","BD" },
{ "R4","MS","BE" },
{ "R5","MS","BF" },
{ "R6","MS","C0" },
{ "R7","MS","C1" },
{ "R8","MS","C2" },
{ "R9","MS","C3" },
{ "R10","MS","C4" },
{ "R11","MS","C5" },
{ "R12","MS","C6" },
{ "R13","MS","C7" },
{ "R14","MS","C8" },
{ "R15","MS","C9" },
{ "R16","MS","CA" },
{ "R17","MS","CB" },
{ "R18","MS","CC" },
{ "R19","MS","CD" },
{ "R20","MS","CE" },
{ "R21","MS","CF" },
{ "R22","MS","D0" },
{ "R23","MS","D1" },
{ "R24","MS","D2" },
{ "R25","MS","D3" },
{ "S1","MS","D4" },
{ "S2","MS","D5" },
{ "S3","MS","D6" },
{ "S4","MS","D7" },
{ "S5","MS","D8" },
{ "S6","MS","D9" },
{ "S7","MS","DA" },
{ "S8","MS","DB" },
{ "S9","MS","DC" },
{ "S10","MS","DD" },
{ "S11","MS","DE" },
{ "S12","MS","DF" },
{ "S13","MS","E0" },
{ "S14","MS","E1" },
{ "S14A","MS","E2" },
{ "S15","MS","E3" },
{ "S16","MS","E4" },
{ "S17","MS","E5" },
{ "S18","MS","E6" },
{ "S19","MS","E7" },
{ "S20","MS","E8" },
{ "S21","MS","E9" },
{ "S22","MS","EA" },
{ "S17A","MS","EB" },
{ "S23","MS","EC" },
{ "S24","MS","ED" },
{ "S25","MS","EE" },
{ "S26","MS","EF" },
{ "S27","MS","F0" },
{ "S28","MS","F1" },
{ "S29","MS","F2" },
{ "S30","MS","F3" },
{ "S31","MS","F4" },
{ "S32","MS","F5" },
{ "S33","MS","F6" },
{ "S34","MS","F7" },
{ "V39","MS","F8" },
{ "S35","MS","F9" },
{ "S36","MS","FA" },
{ "S37","MS","FB" },
{ "S38","MS","FC" },
{ "S39","MS","FD" },
{ "S40","MS","FE" },
{ "S41","MS","FF" },
{ "S42","SZ","21" },
{ "S43","SZ","22" },
{ "S44","SZ","23" },
{ "S45","SZ","24" },
{ "T1","SZ","25" },
{ "T2","SZ","26" },
{ "T3","SZ","27" },
{ "T4","SZ","28" },
{ "T5","SZ","29" },
{ "T6","SZ","2A" },
{ "T7","SZ","2B" },
{ "T7A","SZ","2C" },
{ "T8","SZ","2D" },
{ "T8A","SZ","2E" },
{ "T9","SZ","2F" },
{ "T9A","SZ","30" },
{ "T10","SZ","31" },
{ "Aa32","SZ","32" },
{ "T11","SZ","33" },
{ "T12","SZ","34" },
{ "T13","SZ","35" },
{ "T14","SZ","36" },
{ "T15","SZ","37" },
{ "T16","SZ","38" },
{ "T17","SZ","39" },
{ "T18","SZ","3A" },
{ "T19","SZ","3B" },
{ "T20","SZ","3C" },
{ "T21","SZ","3D" },
{ "T22","SZ","3E" },
{ "T23","SZ","3F" },
{ "T24","SZ","40" },
{ "T25","SZ","41" },
{ "T26","SZ","42" },
{ "T27","SZ","43" },
{ "T28","SZ","44" },
{ "T29","SZ","45" },
{ "T30","SZ","46" },
{ "T31","SZ","47" },
{ "T32","SZ","48" },
{ "T33","SZ","49" },
{ "T34","SZ","4A" },
{ "T35","SZ","4B" },
{ "U1","SZ","4C" },
{ "U2","SZ","4D" },
{ "U3","SZ","4E" },
{ "U4","SZ","4F" },
{ "U5","SZ","50" },
{ "U6","SZ","51" },
{ "U7","SZ","52" },
{ "U8","SZ","53" },
{ "U9","SZ","54" },
{ "U10","SZ","55" },
{ "U11","SZ","56" },
{ "U12","SZ","57" },
{ "U13","SZ","58" },
{ "U14","SZ","59" },
{ "U15","SZ","5A" },
{ "U16","SZ","5B" },
{ "U17","SZ","5C" },
{ "U18","SZ","5D" },
{ "U19","SZ","5E" },
{ "U20","SZ","5F" },
{ "U21","SZ","60" },
{ "U22","SZ","61" },
{ "U23","SZ","62" },
{ "U24","SZ","63" },
{ "U25","SZ","64" },
{ "U26","SZ","65" },
{ "U27","SZ","66" },
{ "U28","SZ","67" },
{ "U29","SZ","68" },
{ "U30","SZ","69" },
{ "U31","SZ","6A" },
{ "U32","SZ","6B" },
{ "U33","SZ","6C" },
{ "U34","SZ","6D" },
{ "U35","SZ","6E" },
{ "Aa23","SZ","6F" },
{ "Aa24","SZ","70" },
{ "U36","SZ","71" },
{ "U37","SZ","72" },
{ "U38","SZ","73" },
{ "U39","SZ","74" },
{ "U40","SZ","75" },
{ "U41","SZ","76" },
{ "V1","SZ","77" },
{ "V2","SZ","78" },
{ "V3","SZ","79" },
{ "V4","SZ","7A" },
{ "V5","SZ","7B" },
{ "V6","SZ","7C" },
{ "V7","SZ","7D" },
{ "V8","SZ","7E" },
{ "V9","SZ","A1" },
{ "V10","SZ","A2" },
{ "V11","SZ","A3" },
{ "V12","SZ","A4" },
{ "V13","SZ","A5" },
{ "V14","SZ","A6" },
{ "V15","SZ","A7" },
{ "V16","SZ","A8" },
{ "V17","SZ","A9" },
{ "V18","SZ","AA" },
{ "V19","SZ","AB" },
{ "V20","SZ","AC" },
{ "V21","SZ","AE" },
{ "V22","SZ","AF" },
{ "V23","SZ","B0" },
{ "V24","SZ","B1" },
{ "V25","SZ","B2" },
{ "V26","SZ","B3" },
{ "V27","SZ","B4" },
{ "V28","SZ","B5" },
{ "V29","SZ","B6" },
{ "V30","SZ","B7" },
{ "V31","SZ","B8" },
{ "V32","SZ","B9" },
{ "V33","SZ","BA" },
{ "V34","SZ","BB" },
{ "V35","SZ","BC" },
{ "V36","SZ","BD" },
{ "V37","SZ","BE" },
{ "V38","SZ","BF" },
{ "W1","SZ","C0" },
{ "W2","SZ","C1" },
{ "W3","SZ","C2" },
{ "W4","SZ","C3" },
{ "W5","SZ","C4" },
{ "W6","SZ","C5" },
{ "W7","SZ","C6" },
{ "W8","SZ","C7" },
{ "W9","SZ","C8" },
{ "W10","SZ","C9" },
{ "W10A","SZ","CA" },
{ "Aa4","SZ","CB" },
{ "W11","SZ","CC" },
{ "W12","SZ","CD" },
{ "W13","SZ","CE" },
{ "W14","SZ","CF" },
{ "W15","SZ","D0" },
{ "W16","SZ","D1" },
{ "W17","SZ","D2" },
{ "W18","SZ","D3" },
{ "W19","SZ","D4" },
{ "W20","SZ","D5" },
{ "W21","SZ","D6" },
{ "W22","SZ","D7" },
{ "W23","SZ","D8" },
{ "W24","SZ","D9" },
{ "W25","SZ","DA" },
{ "X1","SZ","DB" },
{ "X2","SZ","DC" },
{ "X3","SZ","DD" },
{ "X4","SZ","DE" },
{ "N18","SZ","DF" },
{ "X5","SZ","E0" },
{ "X6","SZ","E1" },
{ "X7","SZ","E2" },
{ "X8","SZ","E3" },
{ "Y1","SZ","E4" },
{ "Y2","SZ","E5" },
{ "Y3","SZ","E6" },
{ "Y4","SZ","E7" },
{ "Y5","SZ","E8" },
{ "Y6","SZ","E9" },
{ "Y7","SZ","EA" },
{ "Y8","SZ","EB" },
{ "Z1","SZ","EC" },
{ "Z2","SZ","ED" },
{ "Z3","SZ","EE" },
{ "Z4","SZ","EF" },
{ "Z5","SZ","F0" },
{ "Z6","SZ","F1" },
{ "Z7","SZ","F2" },
{ "Z9","SZ","F4" },
{ "Z10","SZ","F5" },
{ "Z11","SZ","F6" },
{ "Aa1","UN","21" },
{ "Aa2","UN","22" },
{ "Aa3","UN","23" },
{ "Aa5","UN","24" },
{ "Aa6","UN","25" },
{ "Aa7","UN","26" },
{ "Aa8","UN","27" },
{ "Aa9","UN","28" },
{ "Aa10","UN","29" },
{ "Aa11","UN","2A" },
{ "Aa12","UN","2B" },
{ "Aa13","UN","2C" },
{ "Aa14","UN","2D" },
{ "Aa15","UN","2E" },
{ "Aa16","UN","2F" },
{ "Aa17","UN","30" },
{ "Aa18","UN","31" },
{ "Aa19","UN","32" },
{ "Aa20","UN","33" },
{ "Aa21","UN","34" },
{ "Aa22","UN","35" },
{ "Aa25","UN","36" },
{ "Aa26","UN","37" },
{ "Aa27","UN","38" },
{ "Aa28","UN","39" },
{ "Aa29","UN","3A" },
{ "Aa30","UN","3B" },
{ "Aa31","UN","3C" },
}
这是主要的 TeX 文件(hieros.tex
):
% run: xelatex or lualatex hieros.tex
% followed by texlua and one more run of TeX...
\documentclass[a4paper]{article}
\pagestyle{empty}
\parindent=0pt
\usepackage{fontspec}
\usepackage{xcolor}
\newfontfamily\fontAE{GARDAE__.TTF}
\newfontfamily\fontFM{GARDFM__.TTF}
\newfontfamily\fontMS{GARDMSL_.TTF}
\newfontfamily\fontSZ{GARDSZ__.TTF}
\newfontfamily\fontUN{GARDU___.TTF}
\newcount\malc
\malc=0 % Initializating a counter...
\newwrite\hiero % One I/O slot for saving temporary data...
\openout\hiero=hieros-input.tex % a file generated by TeX
\def\malfile{hieros-output.tex} % a file generated by Lua
\def\tohiero#1{%
\write\hiero{#1}%
\advance\malc by 1%
\IfFileExists{\malfile}%
{\input{\malfile}}% 2+ runs of TeX...
{{\color{red}#1}}% First run of TeX...
}% End of \tohiero...
\begin{document}
\frenchspacing
% A single test of loaded fonts...
%{\fontAE\char"F030}{\fontFM\char"F030}{\fontMS\char"F030}{\fontSZ\char"F030}{\fontUN\char"F030}
Text before. \tohiero{A10-B3-p-i-y-a-w}
Some text.\par \tohiero{A12-A23-M23-M40-Aa30}
More text. \tohiero{U1-T33-Aa15} Text after.
\closeout\hiero % Formal closing of the file...
\end{document}
第一次运行 TeX (lualatex
或xelatex
) 后我们得到:
生成的 TeX 文件包含三行(hieros-input.tex
),如下所示:
A10-B3-p-i-y-a-w
A12-A23-M23-M40-Aa30
U1-T33-Aa15
该文件由独立的 Lua 脚本 ( hiero-script.lua
) 通过运行以下命令来处理texlua hiero-script.lua
:
-- Loading data files...
-- The files are large, I am not including them in this script directly.
require"hiero-all"
require"hiero-repl"
local bonusrepl={
{ "[*][*]", "B" },
{ "[*]", "A" },
{ "J", "Aa" },
{ "[Aa][Aa]", "Aa" },
}
-- The main function...
function testme(mstring)
--print(mstring)
local toTeX=""
-- Several replacements...
for i=1,#bonusrepl do -- change any J and any AA/Aa/aA/aa
mstring=mstring:gsub(bonusrepl[i][2],bonusrepl[i][2])
end -- of i
--print(mstring)
for i=1,#replacements do
mstring=mstring:gsub("([^0-9])"..replacements[i][3].."([^a0-9])", "%1"..replacements[i][2].."%2")
end -- of for i
--print(mstring)
-- Search in hiero-all and replace the longest search by a TeX command...
-- Repeat space, but delete dash...
repeat
local tempfound=""
local tempcounter=0
for j=1,#hieroglyphs do
templeft=string.sub(mstring,1,string.len(hieroglyphs[j][4]))
if templeft==hieroglyphs[j][5] then
if string.len(templeft)>string.len(tempfound) then
tempfound=templeft
tempcounter=j
end -- of string.len...
end -- of if
end -- of for j
--print(tempfound.." "..tempcounter)
-- Do what you must to do!
if tempcounter~=0 then
toTeX=toTeX.."{\\font"..hieroglyphs[tempcounter][2].."\\char\"F0"..hieroglyphs[tempcounter][3].."}"
mstring=mstring:sub(string.len(tempfound)+1)
else
-- save space as it is, ignore other characters
if mstring:sub(1,1)==" " then toTeX=toTeX.." " end
mstring=mstring:sub(1+1)
end -- of if string.len
--print(mstring)
until mstring==""
whereto:write(toTeX)
end -- of function testme
-- A single test...
--testme("A17-A-B3**-B5A B6B-p-q-r AA1-C4-J3 i-i B35")
whereto=io.open("hieros-output.tex","w")
io.write("Processing entry:")
local counter=0
for line in io.lines("hieros-input.tex") do
counter=counter+1
io.write(" "..counter)
whereto:write("\\ifnum\\malc="..counter.." ")
testme(line.."-")
-- without "-" A10 would be recognized, but not "w" at the end of entry.
whereto:write("\\fi\n")
end -- of for line
io.write("\n")
-- Close the file and end the script...
whereto:close()
新的 TeX 文件 ( hieros-output.tex
) 生成,Processing entry: 1 2 3
终端出现提示信息 ( ),文件内容如下:
\ifnum\malc=1 {\fontAE\char"F02A}{\fontAE\char"F05D}{\fontMS\char"F0B6}{\fontFM\char"F0EA}{\fontSZ\char"F0EF}{\fontAE\char"F0BA}{\fontFM\char"F0A4}\fi
\ifnum\malc=2 {\fontAE\char"F02C}{\fontAE\char"F039}{\fontFM\char"F0F0}{\fontMS\char"F022}{\fontUN\char"F03B}\fi
\ifnum\malc=3 {\fontSZ\char"F04C}{\fontSZ\char"F049}{\fontUN\char"F02E}\fi
下次运行 TeX 后,我们会在 PDF 文件中得到此片段。每个象形文字都独立于其他象形文字显示。每行代表一个 TeX 条目(\tohiero
命令)。
显示象形文字是一个相当复杂的领域,该示例仅涵盖我们从常规排版中了解到的一个方向。