4

The fontspec manual mentions a feaure called mapping. However, it does not really document lots about it:

Mapping enables a XeTeX text-mapping scheme, shown in Example 40.

Using the tex-text mapping is also equivalent to writing Ligatures=TeX. The use of the latter syntax is recommended for better compatibility with LuaTeX documents.

I have also seen a number of questions around here that talk about using the feature:

But the contents are usually just ‘use this in this way. Profit.’

The basic gist I get is that I need to prepare a text file including a set of mapping rules, run it through the compiling command, put it where XeTeX can find it and then include the command mapping=myMap when selecting a font. I have a feeling that I could use that to implement German blackletter s typesetting rules (when to typeset a plaintext s as s and when as ſ). I would like to learn more about what I need to take care of when putting together a .map file.

Does a ‘tutorial’ of some kind exist online that I could be pointed to?

Or, in the absence of one:

  • What can mapping do, what can it not do?
  • At which point in document processing is mapping applied?
  • Are there any pitfalls I want to avoid?
  • That would be better implemented in the font itself, I guess. At least, that's how I would do it with traditional TeX fonts and I guess the idea would be the same with opentype. – cfr Jan 2 '17 at 1:09
  • It looks very much like the way you'd define ligatures etc. for traditional TeX fonts and encodings. I don't know what the German rules are. For English, I believe that you would avoid using longs at the end of a word (according to Wikipedia). I know how to set this up for a traditional TeX font (without needing to make anything active), but I don't know if you can do it this way for XeTeX of if you'd need something similar to tex.stackexchange.com/questions/217943/… (but forward-looking). – cfr Jan 2 '17 at 2:04
  • I'm guessing this is more straightforward to do with a traditional TeX font than it is to do it in XeTeX as an afterthought added onto an opentype font which does not implement it itself. – cfr Jan 2 '17 at 2:06
  • 1
    My understanding of the ſ-rules is that they are different in different period and different languages, so OpenType features is not a suitable way to implement them. Also, as a general rule, OpenType features that replace glyphs for an encoded character (s here) with those of another encoded character (ſ) is considered a bad idea as it breaks the association between the underlying text and the visual representation. Mapping files might be a better idea based on the regularity of the rules, otherwise one should just enter ſ when needed, that why it was encoded after all. – Khaled Hosny Jan 6 '17 at 16:30
  • This is probably a duplicate of tex.stackexchange.com/q/3458/729 – Khaled Hosny Jan 6 '17 at 16:33
9

What is mapping good for?

Maps are useful for orientation when crossing boundaries into alternate spaces.

Font mapping is most helpful for those dealing with long texts across script boundaries (although nothing beats a native speaker and typist). If there are only a small number of frequently used characters involved, an alternate method is to define some macros.

More specifically, for fonts, substituting one set of characters for another set, can be a useful shortcut as an input method. Mapping decouples the character from the keyboard key. (Except for spaces: the space character has already been converted to a space token (a skip) by the time font substitution occurs - see egreg's comment: Mapping ‘space + character’ into ‘non-breaking space + character’.) The result is that many more glyphs can be accessed than are available from the individual keys on the keyboard. It's a bit like Latex macros, only at the font level.

In effect, mapping is a kind of lookup table for fonts. I can map the Latin letters th to Greek θ, or, in the other direction, map Greek θ to Latin th. Latin khei to Coptic ϧ; the character sequence cdragon to . And so on. (Astute readers will notice the similarity to the auto-correct feature of spell-checkers; anything with string substitution, in fact.)

Tex has some built-in font mapping (-- becomes an en-dash, for example), for typesetting some basic ligatures.

Mapping is intended to allow the transliteration from one script into another, so that texts become accessible to those who can't read the source script (and texts can be composed by those who do not have, or do not have the time to learn, the destination-script keyboard (assuming one exists)).

Line-breaking, text-wrapping and hyphenation are things to watch out for in space-less scripts, but that happens normally anyway without mapping.

Also, be careful that the character(s) you map to actually exist(s) in the destination font. For example, Noto Sans Old Persian does not have a zero-width non-joiner (yet).

The from side elements (the left-hand side of the lookup table) ought to be unique. To be useful, a set of characters can't map to two or more other sets, logically speaking. Think of regular expressions. And pattern matching is similar: if you have three glyphs, niis, ni and is (I'm thinking Old Babylonian, here), and you map the second and third ones but forget the first, and then run your mapped font across niis, it will be parsed into ni + is, not niis.

Map To

Map From

MWE

\documentclass[12pt]{article}
\usepackage{fontspec}
\usepackage{xcolor}
\usepackage{ascmac}
\setmainfont{Linux Libertine} 
\newfontface\egyfe{Noto Sans Egyptian Hieroglyphs}


\newfontface\plaineh{Noto Sans Egyptian Hieroglyphs}
\newfontface\egym[Mapping=gardnernum-to-hieroglyph]{Code2003}
\newfontface\egyn[Mapping=gardnernum-to-hieroglyph2,Color=blue,Scale=2.5]{Noto Sans Egyptian Hieroglyphs}



\expandafter\newcommand\csname A001\endcsname{\symbol{"13000}}


\DeclareTextFontCommand{\texthg}{\egym}
\DeclareTextFontCommand{\texthi}{\egyn}



\newenvironment{hyphblnk}{%
\let\oldhyphenchar\hyphenchar%
\hyphenchar\font=\string"20}{\let\hyphenchar\oldhyphenchar}



\newenvironment{thiero}
  {\egym\huge\ignorespaces}
  {\ignorespacesafterend}




\renewcommand{\tabcolsep}{1pt}

\newcommand\operfont{Noto Sans Old Persian}
\newcommand\opercolour{blue}
\newcommand\opermapping{latin-to-oldpersian}
\newfontface\fmoper[Mapping=\opermapping ,Colour=\opercolour]{\operfont}


\newfontface\fmopertranse[Mapping=oldpersian-to-latine,Colour=red]{Noto Serif}
\newenvironment{opertranslite}
  {\fmopertranse}%\hyphenrules{nohyphenation}\ignorespaces}
  {\ignorespacesafterend}



\begin{document}
\section{Mapping}
If I wanted to typeset an Egyptian hieroglyph (say, Gardiner number A001), I could tap the relevant key on my Egyptian hieroglyphic keyboard  \keytop{{\Huge\texthg{A001}}} and it appears in my file (with a suitable font active). 
Alternatively, I can refer to it indirectly with \verb|\symbol{"13000}| = {\plaineh\Huge\symbol{"13000}}. To save having to look up all those unicode hex numbers every time, I can define a mnemonic macro named \verb|\A001| with \texttt{\textbackslash expandafter\textbackslash newcommand\textbackslash csname A001\textbackslash endcsname\{\textbackslash symbol\{"13000\}\}} and call it with \texttt{\textbackslash csname A001\textbackslash endcsname} = {\plaineh\Huge\csname A001\endcsname}.  Which is a bit much to type if there are more than a few hundred hieroglyphs involved.

So I set up a font mapping, so that whenever I type the four characters \textbf{A001}, they are substituted with U+13000, and {\Huge \texthg{A001}} appears in the output.

The first step is a mapping file, a text file with a \verb|.map| extension, which will be compiled into a binary \verb|.tec| file with \texttt{teckit\_compile}.

To be practical, typing \textbf{A1} is less effort than typing \textbf{A001}, so a  mapping file will contain the shorter:
\begin{quotation}
 U+0041 U+0031 <>  U+13000
\end{quotation}

The second step in using a mapping is calling it into play when defining the font. Say my compiled mapping file is called \texttt{foo.tec}. Then I call it with 
\begin{quotation}\noindent
\texttt{\textbackslash newfontface\textbackslash egyn[
Mapping=foo,
Color=blue,
Scale=2.5]\\
\{Noto Sans Egyptian Hieroglyphs\}}
\end{quotation}
 to set up a mapped font named \verb|egyn|. Now, whenever I type \textbf{A1} wherever font \texttt{\textbackslash egyn} is active, I get {\texthi{A1}}.



\begin{quotation}\noindent
From A001 { \huge \texthg{A001}} to AA032 { \huge \texthg{AA032}}
\end{quotation}
\newpage
\section{There and Back Again}
Say there is some writing on the valley wall:

%Original:
\begin{quotation}
{
\fmoper\Large
\XeTeXlinebreaklocale "peo"
\noindent
𐏃𐎧𐎠𐎶𐎴𐎡𐏁𐎡𐎹𐏐𐏃𐎡𐎹𐏐𐎡𐎶𐎶𐏐𐎫𐎨𐎼𐎶𐏐𐎠𐎤𐎢𐎴𐎢𐏁𐏐 𐏃𐎧𐎠𐎶𐎴𐎡𐏁𐎡𐎹𐏐𐏃𐎡𐎹𐏐𐎡𐎶𐎶𐏐𐎫𐎨𐎼𐎶𐏐𐎠𐎤𐎢𐎴𐎢𐏁𐏐𐏃𐎧𐎠𐎶𐎴𐎡𐏁𐎡𐎹𐏐𐏃𐎡𐎹𐏐𐎡𐎶𐎶𐏐𐎫𐎨𐎼𐎶𐏐𐎠𐎤𐎢𐎴𐎢𐏁𐏐𐏃𐎧𐎠𐎶𐎴𐎡𐏁𐎡𐎹𐏐𐏃𐎡𐎹𐏐𐎡𐎶𐎶𐏐𐎫𐎨𐎼𐎶𐏐𐎠𐎤𐎢𐎴𐎢𐏁𐏐𐏃𐎧𐎠𐎶𐎴𐎡𐏁𐎡𐎹𐏐𐏃𐎡𐎹𐏐𐎡𐎶𐎶𐏐𐎫𐎨𐎼𐎶𐏐𐎠𐎤𐎢𐎴𐎢𐏁𐏐
}
\end{quotation}

Transliterating 
{\fmoper xa-a} (xa+a) 
to 
\begin{opertranslite}
𐎧𐎠
\end{opertranslite}
and
{\fmoper ha-i} (ha+i) 
to 
\begin{opertranslite}
𐏃𐎡
\end{opertranslite}
and
{\fmoper ku-u} (ku+u) 
to 
\begin{opertranslite}
𐎤𐎢
\end{opertranslite}
and so on, gives:

\begin{quotation}
%\elongoper{%
\begin{opertranslite}
\XeTeXlinebreaklocale "peo"
\noindent
𐏃𐎧𐎠𐎶𐎴𐎡𐏁𐎡𐎹𐏐𐏃𐎡𐎹𐏐𐎡𐎶𐎶𐏐𐎫𐎨𐎼𐎶𐏐𐎠𐎤𐎢𐎴𐎢𐏁𐏐 𐏃𐎧𐎠𐎶𐎴𐎡𐏁𐎡𐎹𐏐𐏃𐎡𐎹𐏐𐎡𐎶𐎶𐏐𐎫𐎨𐎼𐎶𐏐𐎠𐎤𐎢𐎴𐎢𐏁𐏐𐏃𐎧𐎠𐎶𐎴𐎡𐏁𐎡𐎹𐏐𐏃𐎡𐎹𐏐𐎡𐎶𐎶𐏐𐎫𐎨𐎼𐎶𐏐𐎠𐎤𐎢𐎴𐎢𐏁𐏐𐏃𐎧𐎠𐎶𐎴𐎡𐏁𐎡𐎹𐏐𐏃𐎡𐎹𐏐𐎡𐎶𐎶𐏐𐎫𐎨𐎼𐎶𐏐𐎠𐎤𐎢𐎴𐎢𐏁𐏐𐏃𐎧𐎠𐎶𐎴𐎡𐏁𐎡𐎹𐏐𐏃𐎡𐎹𐏐𐎡𐎶𐎶𐏐𐎫𐎨𐎼𐎶𐏐𐎠𐎤𐎢𐎴𐎢𐏁𐏐
\end{opertranslite}%
%}
\end{quotation}


\end{document}

There are several mapping files involved.

latin-to-oldpersian:

; TECkit mapping for TeX input conventions <-> Unicode characters

LHSName "latin-to-oldpersian"
RHSName "UNICODE"

pass(Unicode)

; ligatures from Knuth's original CMR fonts
U+002D U+002D           <>  U+2013  ; -- -> en dash
U+002D U+002D U+002D    <>  U+2014  ; --- -> em dash

U+0027          <>  U+2019  ; ' -> right single quote
U+0027 U+0027   <>  U+201D  ; '' -> right double quote
U+0022           >  U+201D  ; " -> right double quote

U+0060          <>  U+2018  ; ` -> left single quote
U+0060 U+0060   <>  U+201C  ; `` -> left double quote

U+0021 U+0060   <>  U+00A1  ; !` -> inverted exclam
U+003F U+0060   <>  U+00BF  ; ?` -> inverted question

; additions supported in T1 encoding
U+002C U+002C   <>  U+201E  ; ,, -> DOUBLE LOW-9 QUOTATION MARK
U+003C U+003C   <>  U+00AB  ; << -> LEFT POINTING GUILLEMET
U+003E U+003E   <>  U+00BB  ; >> -> RIGHT POINTING GUILLEMET


;U+0020    >  U+0020 ;  space maps to space
U+002D    >  U+200D ;  hyphen as Zero Width Joiner
U+002E    >  U+200D ;  dot as Zero Width Joiner
U+007C    >  U+200C ;  pipe as Zero Width Non-Joiner



U+0061         <>  U+103A0    ;  a 𐎠 
U+0069         <>  U+103A1    ;  i 𐎡
U+0075         <>  U+103A2    ;  u 𐎢
U+006B U+0061        <>  U+103A3    ;  ka 𐎣
U+006B U+0075        <>  U+103A4    ;  ku 𐎤
U+0067 U+0061        <>  U+103A5    ;  ga 𐎥
U+0067 U+0075        <>  U+103A6    ;  gu 𐎦
U+0078 U+0061        <>  U+103A7    ;  xa 𐎧
U+0063 U+0068 U+0061       <>  U+103A8    ;  cha 𐎨
U+006A U+0061        <>  U+103A9    ;  ja 𐎩
U+006A U+0069        <>  U+103AA    ;  ji 𐎪
U+0074 U+0061        <>  U+103AB    ;  ta 𐎫
U+0074 U+0075        <>  U+103AC    ;  tu 𐎬
U+0064 U+0061        <>  U+103AD    ;  da 𐎭
U+0064 U+0069        <>  U+103AE    ;  di 𐎮
U+0064 U+0075        <>  U+103AF    ;  du 𐎯
U+0074 U+0068 U+0061       <>  U+103B0    ;  tha 𐎰
U+0070 U+0061        <>  U+103B1    ;  pa 𐎱
U+0062 U+0061        <>  U+103B2    ;  ba 𐎲
U+0066 U+0061        <>  U+103B3    ;  fa 𐎳
U+006E U+0061        <>  U+103B4    ;  na 𐎴
U+006E U+0075        <>  U+103B5    ;  nu 𐎵
U+006D U+0061        <>  U+103B6    ;  ma 𐎶
U+006D U+0069        <>  U+103B7    ;  mi 𐎷
U+006D U+0075        <>  U+103B8    ;  mu 𐎸
U+0079 U+0061        <>  U+103B9    ;  ya 𐎹
U+0076 U+0061        <>  U+103BA    ;  va 𐎺
U+0076 U+0069        <>  U+103BB    ;  vi 𐎻
U+0072 U+0061        <>  U+103BC    ;  ra 𐎼
U+0072 U+0075        <>  U+103BD    ;  ru 𐎽
U+006C U+0061        <>  U+103BE    ;  la 𐎾
U+0073 U+0061        <>  U+103BF    ;  sa 𐎿
U+007A U+0061        <>  U+103C0    ;  za 𐏀
U+0073 U+0068 U+0061       <>  U+103C1    ;  sha 𐏁
U+0073 U+0073 U+0061       <>  U+103C2    ;  ssa 𐏂
U+0068 U+0061        <>  U+103C3    ;  ha 𐏃


U+0061 U+0075 U+0072       <>  U+103C8    ;  aur 𐏈
U+0061 U+0075 U+0072 U+0032      <>  U+103C9    ;  aur2 𐏉
U+0061 U+0075 U+0072 U+0033      <>  U+103CA    ;  aur3 𐏊
U+0078 U+0078        <>  U+103CB    ;  xx 𐏋
U+0064 U+0061 U+0068       <>  U+103CC    ;  dah 𐏌
U+0064 U+0061 U+0068 U+0032      <>  U+103CD    ;  dah2 𐏍
U+0062 U+0061 U+0067 U+0061      <>  U+103CE    ;  baga 𐏎
U+0062 U+0075 U+0075       <>  U+103CF    ;  buu 𐏏


U+0064 U+0069 U+0076       <>  U+103D0    ;  div 𐏐
U+0031         <>  U+103D1    ;  1 𐏑
U+0032         <>  U+103D2    ;  2 𐏒
U+0031 U+0030        <>  U+103D3    ;  10 𐏓
U+0032 U+0030        <>  U+103D4    ;  20 𐏔
U+0031 U+0030 U+0030       <>  U+103D5    ;  100 𐏕

oldpersian-to-latine (latin with diacritics and long vowels; versions a,b,c,d do slightly different transliteration schemes)

; TECkit mapping for TeX input conventions <-> Unicode characters

LHSName "UNICODE"
RHSName "oldpersian-to-latin"

pass(Unicode)

; ligatures from Knuth's original CMR fonts
U+002D U+002D           <>  U+2013  ; -- -> en dash
U+002D U+002D U+002D    <>  U+2014  ; --- -> em dash

U+0027          <>  U+2019  ; ' -> right single quote
U+0027 U+0027   <>  U+201D  ; '' -> right double quote
U+0022           >  U+201D  ; " -> right double quote

U+0060          <>  U+2018  ; ` -> left single quote
U+0060 U+0060   <>  U+201C  ; `` -> left double quote

U+0021 U+0060   <>  U+00A1  ; !` -> inverted exclam
U+003F U+0060   <>  U+00BF  ; ?` -> inverted question

; additions supported in T1 encoding
U+002C U+002C   <>  U+201E  ; ,, -> DOUBLE LOW-9 QUOTATION MARK
U+003C U+003C   <>  U+00AB  ; << -> LEFT POINTING GUILLEMET
U+003E U+003E   <>  U+00BB  ; >> -> RIGHT POINTING GUILLEMET

;U+002D      <> U+002D   ; space

U+103A4 U+103A2 <> U+006B U+0075 U+0301 ; kuu>ku'
U+103C3 U+103A1 <> U+0068 U+0069 ; hai > hi
U+103B4 U+103A1 <> U+006E U+0069 ; nai>ni
U+103B4 U+103A2 <> U+006E U+0075 ; nau>nu
U+103C1 U+103A1 <> U+0161 U+0069 ; shai>si
U+103A7 U+103A0 <> U+0078 U+0061 U+0301 ; xa a > xa'
U+103A0    <> U+0061    ;  a
U+103A1    <> U+0069    ;  i
U+103A2    <> U+0075    ;  u
U+103A3    <> U+006B U+0061   ;  ka
U+103A4    <> U+006B U+0075   ;  ku
U+103A5    <> U+0067 U+0061   ;  ga
U+103A6    <> U+0067 U+0075   ;  gu
U+103A7    <> U+0078 U+0061   ;  xa
U+103A8    <> U+00E7 U+0061   ;  ça
U+103A9    <> U+006A U+0061   ;  ja
U+103AA    <> U+006A U+0069   ;  ji
U+103AB    <> U+0074 U+0061   ;  ta
U+103AC    <> U+0074 U+0075   ;  tu
U+103AD    <> U+0064 U+0061   ;  da
U+103AE    <> U+0064 U+0069   ;  di
U+103AF    <> U+0064 U+0075   ;  du
U+103B0    <> U+03B8 U+0061   ;  θa
U+103B1    <> U+0070 U+0061   ;  pa
U+103B2    <> U+0062 U+0061   ;  ba
U+103B3    <> U+0066 U+0061   ;  fa
U+103B4    <> U+006E U+0061   ;  na
U+103B5    <> U+006E U+0075   ;  nu
U+103B6    <> U+006D U+0061   ;  ma
U+103B7    <> U+006D U+0069   ;  mi
U+103B8    <> U+006D U+0075   ;  mu
U+103B9    <> U+0079 U+0061   ;  ya
U+103BA    <> U+0076 U+0061   ;  va
U+103BB    <> U+0076 U+0069   ;  vi
U+103BC    <> U+0072 U+0061   ;  ra
U+103BD    <> U+0072 U+0075   ;  ru
U+103BE    <> U+006C U+0061   ;  la
U+103BF    <> U+0073 U+0061   ;  sa
U+103C0    <> U+007A U+0061   ;  za
U+103C1    <> U+0161 U+0061  ;  ša
U+103C2    <> U+015F U+0061  ;  şa
U+103C3    <> U+0068 U+0061   ;  ha
U+103C8    <> U+0061 U+0075 U+0072  ;  aur
U+103C9    <> U+0061 U+0075 U+0072  ;  aur2
U+103CA    <> U+0061 U+0075 U+0072  ;  aur3
U+103CB    <> U+0078 U+0078   ;  xx
U+103CC    <> U+0064 U+0061 U+0068  ;  dah
U+103CD    <> U+0064 U+0061 U+0068  ;  dah2
U+103CE    <> U+0062 U+0061 U+0067  ;  baga
U+103CF    <> U+0062 U+0075 U+0075  ;  buu
U+103D0    <> U+0020 ;U+0044 U+0049 U+0056 U+005C U+002D U+0020  ;  div 64 69 76 DIV 44 49 56
U+103D1    <> U+0031    ;  1
U+103D2    <> U+0032    ;  2
U+103D3    <> U+0031 U+0030   ;  10
U+103D4    <> U+0032 U+0030   ;  20
U+103D5    <> U+0031 U+0030 U+0030  ;  100

Hieroglyph maps are too big to fit all of them in here, but the first part looks like:

gardnernum-to-hieroglyph (the A001 -> U+13000 version)

; TECkit mapping for TeX input conventions <-> Unicode characters

LHSName "Gardiner-to-Hieroglyph"
RHSName "UNICODE"

pass(Unicode)

; ligatures from Knuth's original CMR fonts
U+002D U+002D           <>  U+2013  ; -- -> en dash
U+002D U+002D U+002D    <>  U+2014  ; --- -> em dash

U+0027          <>  U+2019  ; ' -> right single quote
U+0027 U+0027   <>  U+201D  ; '' -> right double quote
U+0022           >  U+201D  ; " -> right double quote

U+0060          <>  U+2018  ; ` -> left single quote
U+0060 U+0060   <>  U+201C  ; `` -> left double quote

U+0021 U+0060   <>  U+00A1  ; !` -> inverted exclam
U+003F U+0060   <>  U+00BF  ; ?` -> inverted question

; additions supported in T1 encoding
U+002C U+002C   <>  U+201E  ; ,, -> DOUBLE LOW-9 QUOTATION MARK
U+003C U+003C   <>  U+00AB  ; << -> LEFT POINTING GUILLEMET
U+003E U+003E   <>  U+00BB  ; >> -> RIGHT POINTING GUILLEMET



; Egyptian hieroglyphs
 U+0041 U+0030 U+0030 U+0031 <>  U+13000
 U+0041 U+0030 U+0030 U+0032 <>  U+13001
 U+0041 U+0030 U+0030 U+0033 <>  U+13002
 U+0041 U+0030 U+0030 U+0034 <>  U+13003
 U+0041 U+0030 U+0030 U+0035 <>  U+13004
 U+0041 U+0030 U+0030 U+0035 U+0041 <>  U+13005
 U+0041 U+0030 U+0030 U+0036 <>  U+13006
 U+0041 U+0030 U+0030 U+0036 U+0041 <>  U+13007
 U+0041 U+0030 U+0030 U+0036 U+0042 <>  U+13008
 U+0041 U+0030 U+0030 U+0037 <>  U+13009
 U+0041 U+0030 U+0030 U+0038 <>  U+1300A
 U+0041 U+0030 U+0030 U+0039 <>  U+1300B
 U+0041 U+0030 U+0031 U+0030 <>  U+1300C
 U+0041 U+0030 U+0031 U+0031 <>  U+1300D
 U+0041 U+0030 U+0031 U+0032 <>  U+1300E
 U+0041 U+0030 U+0031 U+0033 <>  U+1300F

etc

and gardnernum-to-hieroglyph2.map (the A1 -> U+13000, much easier to type):

; TECkit mapping for TeX input conventions <-> Unicode characters

LHSName "Gardiner-to-Hieroglyph2"
RHSName "UNICODE"

pass(Unicode)

; ligatures from Knuth's original CMR fonts
U+002D U+002D           <>  U+2013  ; -- -> en dash
U+002D U+002D U+002D    <>  U+2014  ; --- -> em dash

U+0027          <>  U+2019  ; ' -> right single quote
U+0027 U+0027   <>  U+201D  ; '' -> right double quote
U+0022           >  U+201D  ; " -> right double quote

U+0060          <>  U+2018  ; ` -> left single quote
U+0060 U+0060   <>  U+201C  ; `` -> left double quote

U+0021 U+0060   <>  U+00A1  ; !` -> inverted exclam
U+003F U+0060   <>  U+00BF  ; ?` -> inverted question

; additions supported in T1 encoding
U+002C U+002C   <>  U+201E  ; ,, -> DOUBLE LOW-9 QUOTATION MARK
U+003C U+003C   <>  U+00AB  ; << -> LEFT POINTING GUILLEMET
U+003E U+003E   <>  U+00BB  ; >> -> RIGHT POINTING GUILLEMET



; Egyptian hieroglyphs
 U+0041 U+0031 <>  U+13000
 U+0041 U+0032 <>  U+13001
 U+0041 U+0033 <>  U+13002
 U+0041 U+0034 <>  U+13003
 U+0041 U+0035 <>  U+13004
 U+0041 U+0035 U+0041 <>  U+13005
 U+0041 U+0036 <>  U+13006
 U+0041 U+0036 U+0041 <>  U+13007
 U+0041 U+0036 U+0042 <>  U+13008
 U+0041 U+0037 <>  U+13009
 U+0041 U+0038 <>  U+1300A
 U+0041 U+0039 <>  U+1300B
 U+0041 U+0031 U+0030 <>  U+1300C
 U+0041 U+0031 U+0031 <>  U+1300D
 U+0041 U+0031 U+0032 <>  U+1300E
 U+0041 U+0031 U+0033 <>  U+1300F
 U+0041 U+0031 U+0034 <>  U+13010
 U+0041 U+0031 U+0034 U+0041 <>  U+13011
 U+0041 U+0031 U+0035 <>  U+13012
 U+0041 U+0031 U+0036 <>  U+13013
 U+0041 U+0031 U+0037 <>  U+13014
 U+0041 U+0031 U+0037 U+0041 <>  U+13015
 U+0041 U+0031 U+0038 <>  U+13016
 U+0041 U+0031 U+0039 <>  U+13017
 U+0041 U+0032 U+0030 <>  U+13018
 U+0041 U+0032 U+0031 <>  U+13019
 U+0041 U+0032 U+0032 <>  U+1301A
 U+0041 U+0032 U+0033 <>  U+1301B
 U+0041 U+0032 U+0034 <>  U+1301C
 U+0041 U+0032 U+0035 <>  U+1301D
 U+0041 U+0032 U+0036 <>  U+1301E
 U+0041 U+0032 U+0037 <>  U+1301F

etc

  • 2
    Could you share the source for the picture, please? I'd really like to try that :D – Phelype Oleinik Sep 1 at 12:38
  • @Phelype Oleinik, Code added. The entire hieroglyph map files are available, but too big for the 30k-character limit of an answer. I need to work out some way how to load them onto SE as a resource. – Cicada Sep 7 at 3:27
  • Wow, thank you! Oh, my, that's a lot more code than I initially thought. If the map file by itself is smaller than the 30k limit I think it's okay for you to add another answer with the map file... – Phelype Oleinik Sep 7 at 16:38
  • @Phelype, Got it under 30k (just!) with a compression trick: replace all y with ` <> ` and all x with U+00 to restore the file. It covers the unicode block, from A1 to AA32, just over 1k glyphs. – Cicada Sep 8 at 7:04
  • See tex.stackexchange.com/questions/377937/… for example of using TikZ to get the quadratures (using the alphabet glyphs). – Cicada Sep 8 at 7:18
2

This is the gardnernum-to-hieroglyph2.map file, used in my answer above. Posted here due to the 30k chatacter limit. For the file to fit here, all U+00 were replaced with x, and <> (4 chars) with y.

; TECkit mapping for TeX input conventions <-> Unicode characters

LHSName "Gardiner-to-Hieroglyph2"
RHSName "UNICODE"

pass(Unicode)

; ligatures from Knuth's original CMR fonts
x2D x2D          y U+2013  ; -- -> en dash
x2D x2D x2D   y U+2014  ; --- -> em dash

x27         y U+2019  ; ' -> right single quote
x27 x27  y U+201D  ; '' -> right double quote
x22           >  U+201D  ; " -> right double quote

x60         y U+2018  ; ` -> left single quote
x60 x60  y U+201C  ; `` -> left double quote

x21 x60  y xA1  ; !` -> inverted exclam
x3F x60  y xBF  ; ?` -> inverted question

; additions supported in T1 encoding
x2C x2C  y U+201E  ; ,, -> DOUBLE LOW-9 QUOTATION MARK
x3C x3C  y xAB  ; << -> LEFT POINTING GUILLEMET
x3E x3E  y xBB  ; >> -> RIGHT POINTING GUILLEMET



; Egyptian hieroglyphs
 x41 x31y U+13000
 x41 x32y U+13001
 x41 x33y U+13002
 x41 x34y U+13003
 x41 x35y U+13004
 x41 x35 x41y U+13005
 x41 x36y U+13006
 x41 x36 x41y U+13007
 x41 x36 x42y U+13008
 x41 x37y U+13009
 x41 x38y U+1300A
 x41 x39y U+1300B
 x41 x31 x30y U+1300C
 x41 x31 x31y U+1300D
 x41 x31 x32y U+1300E
 x41 x31 x33y U+1300F
 x41 x31 x34y U+13010
 x41 x31 x34 x41y U+13011
 x41 x31 x35y U+13012
 x41 x31 x36y U+13013
 x41 x31 x37y U+13014
 x41 x31 x37 x41y U+13015
 x41 x31 x38y U+13016
 x41 x31 x39y U+13017
 x41 x32 x30y U+13018
 x41 x32 x31y U+13019
 x41 x32 x32y U+1301A
 x41 x32 x33y U+1301B
 x41 x32 x34y U+1301C
 x41 x32 x35y U+1301D
 x41 x32 x36y U+1301E
 x41 x32 x37y U+1301F
 x41 x32 x38y U+13020
 x41 x32 x39y U+13021
 x41 x33 x30y U+13022
 x41 x33 x31y U+13023
 x41 x33 x32y U+13024
 x41 x33 x32 x41y U+13025
 x41 x33 x33y U+13026
 x41 x33 x34y U+13027
 x41 x33 x35y U+13028
 x41 x33 x36y U+13029
 x41 x33 x37y U+1302A
 x41 x33 x38y U+1302B
 x41 x33 x39y U+1302C
 x41 x34 x30y U+1302D
 x41 x34 x30 x41y U+1302E
 x41 x34 x31y U+1302F
 x41 x34 x32y U+13030
 x41 x34 x32 x41y U+13031
 x41 x34 x33y U+13032
 x41 x34 x33 x41y U+13033
 x41 x34 x34y U+13034
 x41 x34 x35y U+13035
 x41 x34 x35 x41y U+13036
 x41 x34 x36y U+13037
 x41 x34 x37y U+13038
 x41 x34 x38y U+13039
 x41 x34 x39y U+1303A
 x41 x35 x30y U+1303B
 x41 x35 x31y U+1303C
 x41 x35 x32y U+1303D
 x41 x35 x33y U+1303E
 x41 x35 x34y U+1303F
 x41 x35 x35y U+13040
 x41 x35 x36y U+13041
 x41 x35 x37y U+13042
 x41 x35 x38y U+13043
 x41 x35 x39y U+13044
 x41 x36 x30y U+13045
 x41 x36 x31y U+13046
 x41 x36 x32y U+13047
 x41 x36 x33y U+13048
 x41 x36 x34y U+13049
 x41 x36 x35y U+1304A
 x41 x36 x36y U+1304B
 x41 x36 x37y U+1304C
 x41 x36 x38y U+1304D
 x41 x36 x39y U+1304E
 x41 x37 x30y U+1304F
 x42 x31y U+13050
 x42 x32y U+13051
 x42 x33y U+13052
 x42 x34y U+13053
 x42 x35y U+13054
 x42 x35 x41y U+13055
 x42 x36y U+13056
 x42 x37y U+13057
 x42 x38y U+13058
 x42 x39y U+13059
 x43 x31y U+1305A
 x43 x32y U+1305B
 x43 x32 x41y U+1305C
 x43 x32 x42y U+1305D
 x43 x32 x43y U+1305E
 x43 x33y U+1305F
 x43 x34y U+13060
 x43 x35y U+13061
 x43 x36y U+13062
 x43 x37y U+13063
 x43 x38y U+13064
 x43 x39y U+13065
 x43 x31 x30y U+13066
 x43 x31 x30 x41y U+13067
 x43 x31 x31y U+13068
 x43 x31 x32y U+13069
 x43 x31 x33y U+1306A
 x43 x31 x34y U+1306B
 x43 x31 x35y U+1306C
 x43 x31 x36y U+1306D
 x43 x31 x37y U+1306E
 x43 x31 x38y U+1306F
 x43 x31 x39y U+13070
 x43 x32 x30y U+13071
 x43 x32 x31y U+13072
 x43 x32 x32y U+13073
 x43 x32 x33y U+13074
 x43 x32 x34y U+13075
 x44 x31y U+13076
 x44 x32y U+13077
 x44 x33y U+13078
 x44 x34y U+13079
 x44 x35y U+1307A
 x44 x36y U+1307B
 x44 x37y U+1307C
 x44 x38y U+1307D
 x44 x38 x41y U+1307E
 x44 x39y U+1307F
 x44 x31 x30y U+13080
 x44 x31 x31y U+13081
 x44 x31 x32y U+13082
 x44 x31 x33y U+13083
 x44 x31 x34y U+13084
 x44 x31 x35y U+13085
 x44 x31 x36y U+13086
 x44 x31 x37y U+13087
 x44 x31 x38y U+13088
 x44 x31 x39y U+13089
 x44 x32 x30y U+1308A
 x44 x32 x31y U+1308B
 x44 x32 x32y U+1308C
 x44 x32 x33y U+1308D
 x44 x32 x34y U+1308E
 x44 x32 x35y U+1308F
 x44 x32 x36y U+13090
 x44 x32 x37y U+13091
 x44 x32 x37 x41y U+13092
 x44 x32 x38y U+13093
 x44 x32 x39y U+13094
 x44 x33 x30y U+13095
 x44 x33 x31y U+13096
 x44 x33 x31 x41y U+13097
 x44 x33 x32y U+13098
 x44 x33 x33y U+13099
 x44 x33 x34y U+1309A
 x44 x33 x34 x41y U+1309B
 x44 x33 x35y U+1309C
 x44 x33 x36y U+1309D
 x44 x33 x37y U+1309E
 x44 x33 x38y U+1309F
 x44 x33 x39y U+130A0
 x44 x34 x30y U+130A1
 x44 x34 x31y U+130A2
 x44 x34 x32y U+130A3
 x44 x34 x33y U+130A4
 x44 x34 x34y U+130A5
 x44 x34 x35y U+130A6
 x44 x34 x36y U+130A7
 x44 x34 x36 x41y U+130A8
 x44 x34 x37y U+130A9
 x44 x34 x38y U+130AA
 x44 x34 x38 x41y U+130AB
 x44 x34 x39y U+130AC
 x44 x35 x30y U+130AD
 x44 x35 x30 x41y U+130AE
 x44 x35 x30 x42y U+130AF
 x44 x35 x30 x43y U+130B0
 x44 x35 x30 x44y U+130B1
 x44 x35 x30 x45y U+130B2
 x44 x35 x30 x46y U+130B3
 x44 x35 x30 x47y U+130B4
 x44 x35 x30 x48y U+130B5
 x44 x35 x30 x49y U+130B6
 x44 x35 x31y U+130B7
 x44 x35 x32y U+130B8
 x44 x35 x32 x41y U+130B9
 x44 x35 x33y U+130BA
 x44 x35 x34y U+130BB
 x44 x35 x34 x41y U+130BC
 x44 x35 x35y U+130BD
 x44 x35 x36y U+130BE
 x44 x35 x37y U+130BF
 x44 x35 x38y U+130C0
 x44 x35 x39y U+130C1
 x44 x36 x30y U+130C2
 x44 x36 x31y U+130C3
 x44 x36 x32y U+130C4
 x44 x36 x33y U+130C5
 x44 x36 x34y U+130C6
 x44 x36 x35y U+130C7
 x44 x36 x36y U+130C8
 x44 x36 x37y U+130C9
 x44 x36 x37 x41y U+130CA
 x44 x36 x37 x42y U+130CB
 x44 x36 x37 x43y U+130CC
 x44 x36 x37 x44y U+130CD
 x44 x36 x37 x45y U+130CE
 x44 x36 x37 x46y U+130CF
 x44 x36 x37 x47y U+130D0
 x44 x36 x37 x48y U+130D1
 x45 x31y U+130D2
 x45 x32y U+130D3
 x45 x33y U+130D4
 x45 x34y U+130D5
 x45 x35y U+130D6
 x45 x36y U+130D7
 x45 x37y U+130D8
 x45 x38y U+130D9
 x45 x38 x41y U+130DA
 x45 x39y U+130DB
 x45 x39 x41y U+130DC
 x45 x31 x30y U+130DD
 x45 x31 x31y U+130DE
 x45 x31 x32y U+130DF
 x45 x31 x33y U+130E0
 x45 x31 x34y U+130E1
 x45 x31 x35y U+130E2
 x45 x31 x36y U+130E3
 x45 x31 x36 x41y U+130E4
 x45 x31 x37y U+130E5
 x45 x31 x37 x41y U+130E6
 x45 x31 x38y U+130E7
 x45 x31 x39y U+130E8
 x45 x32 x30y U+130E9
 x45 x32 x30 x41y U+130EA
 x45 x32 x31y U+130EB
 x45 x32 x32y U+130EC
 x45 x32 x33y U+130ED
 x45 x32 x34y U+130EE
 x45 x32 x35y U+130EF
 x45 x32 x36y U+130F0
 x45 x32 x37y U+130F1
 x45 x32 x38y U+130F2
 x45 x32 x38 x41y U+130F3
 x45 x32 x39y U+130F4
 x45 x33 x30y U+130F5
 x45 x33 x31y U+130F6
 x45 x33 x32y U+130F7
 x45 x33 x33y U+130F8
 x45 x33 x34y U+130F9
 x45 x33 x34 x41y U+130FA
 x45 x33 x36y U+130FB
 x45 x33 x37y U+130FC
 x45 x33 x38y U+130FD
 x46 x31y U+130FE
 x46 x31 x41y U+130FF
 x46 x32y U+13100
 x46 x33y U+13101
 x46 x34y U+13102
 x46 x35y U+13103
 x46 x36y U+13104
 x46 x37y U+13105
 x46 x38y U+13106
 x46 x39y U+13107
 x46 x31 x30y U+13108
 x46 x31 x31y U+13109
 x46 x31 x32y U+1310A
 x46 x31 x33y U+1310B
 x46 x31 x33 x41y U+1310C
 x46 x31 x34y U+1310D
 x46 x31 x35y U+1310E
 x46 x31 x36y U+1310F
 x46 x31 x37y U+13110
 x46 x31 x38y U+13111
 x46 x31 x39y U+13112
 x46 x32 x30y U+13113
 x46 x32 x31y U+13114
 x46 x32 x31 x41y U+13115
 x46 x32 x32y U+13116
 x46 x32 x33y U+13117
 x46 x32 x34y U+13118
 x46 x32 x35y U+13119
 x46 x32 x36y U+1311A
 x46 x32 x37y U+1311B
 x46 x32 x38y U+1311C
 x46 x32 x39y U+1311D
 x46 x33 x30y U+1311E
 x46 x33 x31y U+1311F
 x46 x33 x31 x41y U+13120
 x46 x33 x32y U+13121
 x46 x33 x33y U+13122
 x46 x33 x34y U+13123
 x46 x33 x35y U+13124
 x46 x33 x36y U+13125
 x46 x33 x37y U+13126
 x46 x33 x37 x41y U+13127
 x46 x33 x38y U+13128
 x46 x33 x38 x41y U+13129
 x46 x33 x39y U+1312A
 x46 x34 x30y U+1312B
 x46 x34 x31y U+1312C
 x46 x34 x32y U+1312D
 x46 x34 x33y U+1312E
 x46 x34 x34y U+1312F
 x46 x34 x35y U+13130
 x46 x34 x35 x41y U+13131
 x46 x34 x36y U+13132
 x46 x34 x36 x41y U+13133
 x46 x34 x37y U+13134
 x46 x34 x37 x41y U+13135
 x46 x34 x38y U+13136
 x46 x34 x39y U+13137
 x46 x35 x30y U+13138
 x46 x35 x31y U+13139
 x46 x35 x31 x41y U+1313A
 x46 x35 x31 x42y U+1313B
 x46 x35 x31 x43y U+1313C
 x46 x35 x32y U+1313D
 x46 x35 x33y U+1313E
 x47 x31y U+1313F
 x47 x32y U+13140
 x47 x33y U+13141
 x47 x34y U+13142
 x47 x35y U+13143
 x47 x36y U+13144
 x47 x36 x41y U+13145
 x47 x37y U+13146
 x47 x37 x41y U+13147
 x47 x37 x42y U+13148
 x47 x38y U+13149
 x47 x39y U+1314A
 x47 x31 x30y U+1314B
 x47 x31 x31y U+1314C
 x47 x31 x31 x41y U+1314D
 x47 x31 x32y U+1314E
 x47 x31 x33y U+1314F
 x47 x31 x34y U+13150
 x47 x31 x35y U+13151
 x47 x31 x36y U+13152
 x47 x31 x37y U+13153
 x47 x31 x38y U+13154
 x47 x31 x39y U+13155
 x47 x32 x30y U+13156
 x47 x32 x30 x41y U+13157
 x47 x32 x31y U+13158
 x47 x32 x32y U+13159
 x47 x32 x33y U+1315A
 x47 x32 x34y U+1315B
 x47 x32 x35y U+1315C
 x47 x32 x36y U+1315D
 x47 x32 x36 x41y U+1315E
 x47 x32 x37y U+1315F
 x47 x32 x38y U+13160
 x47 x32 x39y U+13161
 x47 x33 x30y U+13162
 x47 x33 x31y U+13163
 x47 x33 x32y U+13164
 x47 x33 x33y U+13165
 x47 x33 x34y U+13166
 x47 x33 x35y U+13167
 x47 x33 x36y U+13168
 x47 x33 x36 x41y U+13169
 x47 x33 x37y U+1316A
 x47 x33 x37 x41y U+1316B
 x47 x33 x38y U+1316C
 x47 x33 x39y U+1316D
 x47 x34 x30y U+1316E
 x47 x34 x31y U+1316F
 x47 x34 x32y U+13170
 x47 x34 x33y U+13171
 x47 x34 x33 x41y U+13172
 x47 x34 x34y U+13173
 x47 x34 x35y U+13174
 x47 x34 x35 x41y U+13175
 x47 x34 x36y U+13176
 x47 x34 x37y U+13177
 x47 x34 x38y U+13178
 x47 x34 x39y U+13179
 x47 x35 x30y U+1317A
 x47 x35 x31y U+1317B
 x47 x35 x32y U+1317C
 x47 x35 x33y U+1317D
 x47 x35 x34y U+1317E
 x48 x31y U+1317F
 x48 x32y U+13180
 x48 x33y U+13181
 x48 x34y U+13182
 x48 x35y U+13183
 x48 x36y U+13184
 x48 x36 x41y U+13185
 x48 x37y U+13186
 x48 x38y U+13187
 x49 x31y U+13188
 x49 x32y U+13189
 x49 x33y U+1318A
 x49 x34y U+1318B
 x49 x35y U+1318C
 x49 x35 x41y U+1318D
 x49 x36y U+1318E
 x49 x37y U+1318F
 x49 x38y U+13190
 x49 x39y U+13191
 x49 x39 x41y U+13192
 x49 x31 x30y U+13193
 x49 x31 x30 x41y U+13194
 x49 x31 x31y U+13195
 x49 x31 x31 x41y U+13196
 x49 x31 x32y U+13197
 x49 x31 x33y U+13198
 x49 x31 x34y U+13199
 x49 x31 x35y U+1319A
 x4B x31y U+1319B
 x4B x32y U+1319C
 x4B x33y U+1319D
 x4B x34y U+1319E
 x4B x35y U+1319F
 x4B x36y U+131A0
 x4B x37y U+131A1
 x4B x38y U+131A2
 x4C x31y U+131A3
 x4C x32y U+131A4
 x4C x32 x41y U+131A5
 x4C x33y U+131A6
 x4C x34y U+131A7
 x4C x35y U+131A8
 x4C x36y U+131A9
 x4C x36 x41y U+131AA
 x4C x37y U+131AB
 x4C x38y U+131AC
 x4D x31y U+131AD
 x4D x31 x41y U+131AE
 x4D x31 x42y U+131AF
 x4D x32y U+131B0
 x4D x33y U+131B1
 x4D x33 x41y U+131B2
 x4D x34y U+131B3
 x4D x35y U+131B4
 x4D x36y U+131B5
 x4D x37y U+131B6
 x4D x38y U+131B7
 x4D x39y U+131B8
 x4D x31 x30y U+131B9
 x4D x31 x30 x41y U+131BA
 x4D x31 x31y U+131BB
 x4D x31 x32y U+131BC
 x4D x31 x32 x41y U+131BD
 x4D x31 x32 x42y U+131BE
 x4D x31 x32 x43y U+131BF
 x4D x31 x32 x44y U+131C0
 x4D x31 x32 x45y U+131C1
 x4D x31 x32 x46y U+131C2
 x4D x31 x32 x47y U+131C3
 x4D x31 x32 x48y U+131C4
 x4D x31 x33y U+131C5
 x4D x31 x34y U+131C6
 x4D x31 x35y U+131C7
 x4D x31 x35 x41y U+131C8
 x4D x31 x36y U+131C9
 x4D x31 x36 x41y U+131CA
 x4D x31 x37y U+131CB
 x4D x31 x37 x41y U+131CC
 x4D x31 x38y U+131CD
 x4D x31 x39y U+131CE
 x4D x32 x30y U+131CF
 x4D x32 x31y U+131D0
 x4D x32 x32y U+131D1
 x4D x32 x32 x41y U+131D2
 x4D x32 x33y U+131D3
 x4D x32 x34y U+131D4
 x4D x32 x34 x41y U+131D5
 x4D x32 x35y U+131D6
 x4D x32 x36y U+131D7
 x4D x32 x37y U+131D8
 x4D x32 x38y U+131D9
 x4D x32 x38 x41y U+131DA
 x4D x32 x39y U+131DB
 x4D x33 x30y U+131DC
 x4D x33 x31y U+131DD
 x4D x33 x31 x41y U+131DE
 x4D x33 x32y U+131DF
 x4D x33 x33y U+131E0
 x4D x33 x33 x41y U+131E1
 x4D x33 x33 x42y U+131E2
 x4D x33 x34y U+131E3
 x4D x33 x35y U+131E4
 x4D x33 x36y U+131E5
 x4D x33 x37y U+131E6
 x4D x33 x38y U+131E7
 x4D x33 x39y U+131E8
 x4D x34 x30y U+131E9
 x4D x34 x30 x41y U+131EA
 x4D x34 x31y U+131EB
 x4D x34 x32y U+131EC
 x4D x34 x33y U+131ED
 x4D x34 x34y U+131EE
 x4E x31y U+131EF
 x4E x32y U+131F0
 x4E x33y U+131F1
 x4E x34y U+131F2
 x4E x35y U+131F3
 x4E x36y U+131F4
 x4E x37y U+131F5
 x4E x38y U+131F6
 x4E x39y U+131F7
 x4E x31 x30y U+131F8
 x4E x31 x31y U+131F9
 x4E x31 x32y U+131FA
 x4E x31 x33y U+131FB
 x4E x31 x34y U+131FC
 x4E x31 x35y U+131FD
 x4E x31 x36y U+131FE
 x4E x31 x37y U+131FF
 x4E x31 x38y U+13200
 x4E x31 x38 x41y U+13201
 x4E x31 x38 x42y U+13202
 x4E x31 x39y U+13203
 x4E x32 x30y U+13204
 x4E x32 x31y U+13205
 x4E x32 x32y U+13206
 x4E x32 x33y U+13207
 x4E x32 x34y U+13208
 x4E x32 x35y U+13209
 x4E x32 x35 x41y U+1320A
 x4E x32 x36y U+1320B
 x4E x32 x37y U+1320C
 x4E x32 x38y U+1320D
 x4E x32 x39y U+1320E
 x4E x33 x30y U+1320F
 x4E x33 x31y U+13210
 x4E x33 x32y U+13211
 x4E x33 x33y U+13212
 x4E x33 x33 x41y U+13213
 x4E x33 x34y U+13214
 x4E x33 x34 x41y U+13215
 x4E x33 x35y U+13216
 x4E x33 x35 x41y U+13217
 x4E x33 x36y U+13218
 x4E x33 x37y U+13219
 x4E x33 x37 x41y U+1321A
 x4E x33 x38y U+1321B
 x4E x33 x39y U+1321C
 x4E x34 x30y U+1321D
 x4E x34 x31y U+1321E
 x4E x34 x32y U+1321F
 x4E x4C x31y U+13220
 x4E x4C x32y U+13221
 x4E x4C x33y U+13222
 x4E x4C x34y U+13223
 x4E x4C x35y U+13224
 x4E x4C x35 x41y U+13225
 x4E x4C x36y U+13226
 x4E x4C x37y U+13227
 x4E x4C x38y U+13228
 x4E x4C x39y U+13229
 x4E x4C x31 x30y U+1322A
 x4E x4C x31 x31y U+1322B
 x4E x4C x31 x32y U+1322C
 x4E x4C x31 x33y U+1322D
 x4E x4C x31 x34y U+1322E
 x4E x4C x31 x35y U+1322F
 x4E x4C x31 x36y U+13230
 x4E x4C x31 x37y U+13231
 x4E x4C x31 x37 x41y U+13232
 x4E x4C x31 x38y U+13233
 x4E x4C x31 x39y U+13234
 x4E x4C x32 x30y U+13235
 x4E x55 x31y U+13236
 x4E x55 x32y U+13237
 x4E x55 x33y U+13238
 x4E x55 x34y U+13239
 x4E x55 x35y U+1323A
 x4E x55 x36y U+1323B
 x4E x55 x37y U+1323C
 x4E x55 x38y U+1323D
 x4E x55 x39y U+1323E
 x4E x55 x31 x30y U+1323F
 x4E x55 x31 x30 x41y U+13240
 x4E x55 x31 x31y U+13241
 x4E x55 x31 x31 x41y U+13242
 x4E x55 x31 x32y U+13243
 x4E x55 x31 x33y U+13244
 x4E x55 x31 x34y U+13245
 x4E x55 x31 x35y U+13246
 x4E x55 x31 x36y U+13247
 x4E x55 x31 x37y U+13248
 x4E x55 x31 x38y U+13249
 x4E x55 x31 x38 x41y U+1324A
 x4E x55 x31 x39y U+1324B
 x4E x55 x32 x30y U+1324C
 x4E x55 x32 x31y U+1324D
 x4E x55 x32 x32y U+1324E
 x4E x55 x32 x32 x41y U+1324F
 x4F x31y U+13250
 x4F x31 x41y U+13251
 x4F x32y U+13252
 x4F x33y U+13253
 x4F x34y U+13254
 x4F x35y U+13255
 x4F x35 x41y U+13256
 x4F x36y U+13257
 x4F x36 x41y U+13258
 x4F x36 x42y U+13259
 x4F x36 x43y U+1325A
 x4F x36 x44y U+1325B
 x4F x36 x45y U+1325C
 x4F x36 x46y U+1325D
 x4F x37y U+1325E
 x4F x38y U+1325F
 x4F x39y U+13260
 x4F x31 x30y U+13261
 x4F x31 x30 x41y U+13262
 x4F x31 x30 x42y U+13263
 x4F x31 x30 x43y U+13264
 x4F x31 x31y U+13265
 x4F x31 x32y U+13266
 x4F x31 x33y U+13267
 x4F x31 x34y U+13268
 x4F x31 x35y U+13269
 x4F x31 x36y U+1326A
 x4F x31 x37y U+1326B
 x4F x31 x38y U+1326C
 x4F x31 x39y U+1326D
 x4F x31 x39 x41y U+1326E
 x4F x32 x30y U+1326F
 x4F x32 x30 x41y U+13270
 x4F x32 x31y U+13271
 x4F x32 x32y U+13272
 x4F x32 x33y U+13273
 x4F x32 x34y U+13274
 x4F x32 x34 x41y U+13275
 x4F x32 x35y U+13276
 x4F x32 x35 x41y U+13277
 x4F x32 x36y U+13278
 x4F x32 x37y U+13279
 x4F x32 x38y U+1327A
 x4F x32 x39y U+1327B
 x4F x32 x39 x41y U+1327C
 x4F x33 x30y U+1327D
 x4F x33 x30 x41y U+1327E
 x4F x33 x31y U+1327F
 x4F x33 x32y U+13280
 x4F x33 x33y U+13281
 x4F x33 x33 x41y U+13282
 x4F x33 x34y U+13283
 x4F x33 x35y U+13284
 x4F x33 x36y U+13285
 x4F x33 x36 x41y U+13286
 x4F x33 x36 x42y U+13287
 x4F x33 x36 x43y U+13288
 x4F x33 x36 x44y U+13289
 x4F x33 x37y U+1328A
 x4F x33 x38y U+1328B
 x4F x33 x39y U+1328C
 x4F x34 x30y U+1328D
 x4F x34 x31y U+1328E
 x4F x34 x32y U+1328F
 x4F x34 x33y U+13290
 x4F x34 x34y U+13291
 x4F x34 x35y U+13292
 x4F x34 x36y U+13293
 x4F x34 x37y U+13294
 x4F x34 x38y U+13295
 x4F x34 x39y U+13296
 x4F x35 x30y U+13297
 x4F x35 x30 x41y U+13298
 x4F x35 x30 x42y U+13299
 x4F x35 x31y U+1329A
 x50 x31y U+1329B
 x50 x31 x41y U+1329C
 x50 x32y U+1329D
 x50 x33y U+1329E
 x50 x33 x41y U+1329F
 x50 x34y U+132A0
 x50 x35y U+132A1
 x50 x36y U+132A2
 x50 x37y U+132A3
 x50 x38y U+132A4
 x50 x39y U+132A5
 x50 x31 x30y U+132A6
 x50 x31 x31y U+132A7
 x51 x31y U+132A8
 x51 x32y U+132A9
 x51 x33y U+132AA
 x51 x34y U+132AB
 x51 x35y U+132AC
 x51 x36y U+132AD
 x51 x37y U+132AE
 x52 x31y U+132AF
 x52 x32y U+132B0
 x52 x32 x41y U+132B1
 x52 x33y U+132B2
 x52 x33 x41y U+132B3
 x52 x33 x42y U+132B4
 x52 x34y U+132B5
 x52 x35y U+132B6
 x52 x36y U+132B7
 x52 x37y U+132B8
 x52 x38y U+132B9
 x52 x39y U+132BA
 x52 x31 x30y U+132BB
 x52 x31 x30 x41y U+132BC
 x52 x31 x31y U+132BD
 x52 x31 x32y U+132BE
 x52 x31 x33y U+132BF
 x52 x31 x34y U+132C0
 x52 x31 x35y U+132C1
 x52 x31 x36y U+132C2
 x52 x31 x36 x41y U+132C3
 x52 x31 x37y U+132C4
 x52 x31 x38y U+132C5
 x52 x31 x39y U+132C6
 x52 x32 x30y U+132C7
 x52 x32 x31y U+132C8
 x52 x32 x32y U+132C9
 x52 x32 x33y U+132CA
 x52 x32 x34y U+132CB
 x52 x32 x35y U+132CC
 x52 x32 x36y U+132CD
 x52 x32 x37y U+132CE
 x52 x32 x38y U+132CF
 x52 x32 x39y U+132D0
 x53 x31y U+132D1
 x53 x32y U+132D2
 x53 x32 x41y U+132D3
 x53 x33y U+132D4
 x53 x34y U+132D5
 x53 x35y U+132D6
 x53 x36y U+132D7
 x53 x36 x41y U+132D8
 x53 x37y U+132D9
 x53 x38y U+132DA
 x53 x39y U+132DB
 x53 x31 x30y U+132DC
 x53 x31 x31y U+132DD
 x53 x31 x32y U+132DE
 x53 x31 x33y U+132DF
 x53 x31 x34y U+132E0
 x53 x31 x34 x41y U+132E1
 x53 x31 x34 x42y U+132E2
 x53 x31 x35y U+132E3
 x53 x31 x36y U+132E4
 x53 x31 x37y U+132E5
 x53 x31 x37 x41y U+132E6
 x53 x31 x38y U+132E7
 x53 x31 x39y U+132E8
 x53 x32 x30y U+132E9
 x53 x32 x31y U+132EA
 x53 x32 x32y U+132EB
 x53 x32 x33y U+132EC
 x53 x32 x34y U+132ED
 x53 x32 x35y U+132EE
 x53 x32 x36y U+132EF
 x53 x32 x36 x41y U+132F0
 x53 x32 x36 x42y U+132F1
 x53 x32 x37y U+132F2
 x53 x32 x38y U+132F3
 x53 x32 x39y U+132F4
 x53 x33 x30y U+132F5
 x53 x33 x31y U+132F6
 x53 x33 x32y U+132F7
 x53 x33 x33y U+132F8
 x53 x33 x34y U+132F9
 x53 x33 x35y U+132FA
 x53 x33 x35 x41y U+132FB
 x53 x33 x36y U+132FC
 x53 x33 x37y U+132FD
 x53 x33 x38y U+132FE
 x53 x33 x39y U+132FF
 x53 x34 x30y U+13300
 x53 x34 x31y U+13301
 x53 x34 x32y U+13302
 x53 x34 x33y U+13303
 x53 x34 x34y U+13304
 x53 x34 x35y U+13305
 x53 x34 x36y U+13306
 x54 x31y U+13307
 x54 x32y U+13308
 x54 x33y U+13309
 x54 x33 x41y U+1330A
 x54 x34y U+1330B
 x54 x35y U+1330C
 x54 x36y U+1330D
 x54 x37y U+1330E
 x54 x37 x41y U+1330F
 x54 x38y U+13310
 x54 x38 x41y U+13311
 x54 x39y U+13312
 x54 x39 x41y U+13313
 x54 x31 x30y U+13314
 x54 x31 x31y U+13315
 x54 x31 x31 x41y U+13316
 x54 x31 x32y U+13317
 x54 x31 x33y U+13318
 x54 x31 x34y U+13319
 x54 x31 x35y U+1331A
 x54 x31 x36y U+1331B
 x54 x31 x36 x41y U+1331C
 x54 x31 x37y U+1331D
 x54 x31 x38y U+1331E
 x54 x31 x39y U+1331F
 x54 x32 x30y U+13320
 x54 x32 x31y U+13321
 x54 x32 x32y U+13322
 x54 x32 x33y U+13323
 x54 x32 x34y U+13324
 x54 x32 x35y U+13325
 x54 x32 x36y U+13326
 x54 x32 x37y U+13327
 x54 x32 x38y U+13328
 x54 x32 x39y U+13329
 x54 x33 x30y U+1332A
 x54 x33 x31y U+1332B
 x54 x33 x32y U+1332C
 x54 x33 x32 x41y U+1332D
 x54 x33 x33y U+1332E
 x54 x33 x33 x41y U+1332F
 x54 x33 x34y U+13330
 x54 x33 x35y U+13331
 x54 x33 x36y U+13332
 x55 x31y U+13333
 x55 x32y U+13334
 x55 x33y U+13335
 x55 x34y U+13336
 x55 x35y U+13337
 x55 x36y U+13338
 x55 x36 x41y U+13339
 x55 x36 x42y U+1333A
 x55 x37y U+1333B
 x55 x38y U+1333C
 x55 x39y U+1333D
 x55 x31 x30y U+1333E
 x55 x31 x31y U+1333F
 x55 x31 x32y U+13340
 x55 x31 x33y U+13341
 x55 x31 x34y U+13342
 x55 x31 x35y U+13343
 x55 x31 x36y U+13344
 x55 x31 x37y U+13345
 x55 x31 x38y U+13346
 x55 x31 x39y U+13347
 x55 x32 x30y U+13348
 x55 x32 x31y U+13349
 x55 x32 x32y U+1334A
 x55 x32 x33y U+1334B
 x55 x32 x33 x41y U+1334C
 x55 x32 x34y U+1334D
 x55 x32 x35y U+1334E
 x55 x32 x36y U+1334F
 x55 x32 x37y U+13350
 x55 x32 x38y U+13351
 x55 x32 x39y U+13352
 x55 x32 x39 x41y U+13353
 x55 x33 x30y U+13354
 x55 x33 x31y U+13355
 x55 x33 x32y U+13356
 x55 x33 x32 x41y U+13357
 x55 x33 x33y U+13358
 x55 x33 x34y U+13359
 x55 x33 x35y U+1335A
 x55 x33 x36y U+1335B
 x55 x33 x37y U+1335C
 x55 x33 x38y U+1335D
 x55 x33 x39y U+1335E
 x55 x34 x30y U+1335F
 x55 x34 x31y U+13360
 x55 x34 x32y U+13361
 x56 x31y U+13362
 x56 x31 x41y U+13363
 x56 x31 x42y U+13364
 x56 x31 x43y U+13365
 x56 x31 x44y U+13366
 x56 x31 x45y U+13367
 x56 x31 x46y U+13368
 x56 x31 x47y U+13369
 x56 x31 x48y U+1336A
 x56 x31 x49y U+1336B
 x56 x32y U+1336C
 x56 x32 x41y U+1336D
 x56 x33y U+1336E
 x56 x34y U+1336F
 x56 x35y U+13370
 x56 x36y U+13371
 x56 x37y U+13372
 x56 x37 x41y U+13373
 x56 x37 x42y U+13374
 x56 x38y U+13375
 x56 x39y U+13376
 x56 x31 x30y U+13377
 x56 x31 x31y U+13378
 x56 x31 x31 x41y U+13379
 x56 x31 x31 x42y U+1337A
 x56 x31 x31 x43y U+1337B
 x56 x31 x32y U+1337C
 x56 x31 x32 x41y U+1337D
 x56 x31 x32 x42y U+1337E
 x56 x31 x33y U+1337F
 x56 x31 x34y U+13380
 x56 x31 x35y U+13381
 x56 x31 x36y U+13382
 x56 x31 x37y U+13383
 x56 x31 x38y U+13384
 x56 x31 x39y U+13385
 x56 x32 x30y U+13386
 x56 x32 x30 x41y U+13387
 x56 x32 x30 x42y U+13388
 x56 x32 x30 x43y U+13389
 x56 x32 x30 x44y U+1338A
 x56 x32 x30 x45y U+1338B
 x56 x32 x30 x46y U+1338C
 x56 x32 x30 x47y U+1338D
 x56 x32 x30 x48y U+1338E
 x56 x32 x30 x49y U+1338F
 x56 x32 x30 x4Ay U+13390
 x56 x32 x30 x4By U+13391
 x56 x32 x30 x4Cy U+13392
 x56 x32 x31y U+13393
 x56 x32 x32y U+13394
 x56 x32 x33y U+13395
 x56 x32 x33 x41y U+13396
 x56 x32 x34y U+13397
 x56 x32 x35y U+13398
 x56 x32 x36y U+13399
 x56 x32 x37y U+1339A
 x56 x32 x38y U+1339B
 x56 x32 x38 x41y U+1339C
 x56 x32 x39y U+1339D
 x56 x32 x39 x41y U+1339E
 x56 x33 x30y U+1339F
 x56 x33 x30 x41y U+133A0
 x56 x33 x31y U+133A1
 x56 x33 x31 x41y U+133A2
 x56 x33 x32y U+133A3
 x56 x33 x33y U+133A4
 x56 x33 x33 x41y U+133A5
 x56 x33 x34y U+133A6
 x56 x33 x35y U+133A7
 x56 x33 x36y U+133A8
 x56 x33 x37y U+133A9
 x56 x33 x37 x41y U+133AA
 x56 x33 x38y U+133AB
 x56 x33 x39y U+133AC
 x56 x34 x30y U+133AD
 x56 x34 x30 x41y U+133AE
 x57 x31y U+133AF
 x57 x32y U+133B0
 x57 x33y U+133B1
 x57 x33 x41y U+133B2
 x57 x34y U+133B3
 x57 x35y U+133B4
 x57 x36y U+133B5
 x57 x37y U+133B6
 x57 x38y U+133B7
 x57 x39y U+133B8
 x57 x39 x41y U+133B9
 x57 x31 x30y U+133BA
 x57 x31 x30 x41y U+133BB
 x57 x31 x31y U+133BC
 x57 x31 x32y U+133BD
 x57 x31 x33y U+133BE
 x57 x31 x34y U+133BF
 x57 x31 x34 x41y U+133C0
 x57 x31 x35y U+133C1
 x57 x31 x36y U+133C2
 x57 x31 x37y U+133C3
 x57 x31 x37 x41y U+133C4
 x57 x31 x38y U+133C5
 x57 x31 x38 x41y U+133C6
 x57 x31 x39y U+133C7
 x57 x32 x30y U+133C8
 x57 x32 x31y U+133C9
 x57 x32 x32y U+133CA
 x57 x32 x33y U+133CB
 x57 x32 x34y U+133CC
 x57 x32 x34 x41y U+133CD
 x57 x32 x35y U+133CE
 x58 x31y U+133CF
 x58 x32y U+133D0
 x58 x33y U+133D1
 x58 x34y U+133D2
 x58 x34 x41y U+133D3
 x58 x34 x42y U+133D4
 x58 x35y U+133D5
 x58 x36y U+133D6
 x58 x36 x41y U+133D7
 x58 x37y U+133D8
 x58 x38y U+133D9
 x58 x38 x41y U+133DA
 x59 x31y U+133DB
 x59 x31 x41y U+133DC
 x59 x32y U+133DD
 x59 x33y U+133DE
 x59 x34y U+133DF
 x59 x35y U+133E0
 x59 x36y U+133E1
 x59 x37y U+133E2
 x59 x38y U+133E3
 x5A x31y U+133E4
 x5A x32y U+133E5
 x5A x32 x41y U+133E6
 x5A x32 x42y U+133E7
 x5A x32 x43y U+133E8
 x5A x32 x44y U+133E9
 x5A x33y U+133EA
 x5A x33 x41y U+133EB
 x5A x33 x42y U+133EC
 x5A x34y U+133ED
 x5A x34 x41y U+133EE
 x5A x35y U+133EF
 x5A x35 x41y U+133F0
 x5A x36y U+133F1
 x5A x37y U+133F2
 x5A x38y U+133F3
 x5A x39y U+133F4
 x5A x31 x30y U+133F5
 x5A x31 x31y U+133F6
 x5A x31 x32y U+133F7
 x5A x31 x33y U+133F8
 x5A x31 x34y U+133F9
 x5A x31 x35y U+133FA
 x5A x31 x35 x41y U+133FB
 x5A x31 x35 x42y U+133FC
 x5A x31 x35 x43y U+133FD
 x5A x31 x35 x44y U+133FE
 x5A x31 x35 x45y U+133FF
 x5A x31 x35 x46y U+13400
 x5A x31 x35 x47y U+13401
 x5A x31 x35 x48y U+13402
 x5A x31 x35 x49y U+13403
 x5A x31 x36y U+13404
 x5A x31 x36 x41y U+13405
 x5A x31 x36 x42y U+13406
 x5A x31 x36 x43y U+13407
 x5A x31 x36 x44y U+13408
 x5A x31 x36 x45y U+13409
 x5A x31 x36 x46y U+1340A
 x5A x31 x36 x47y U+1340B
 x5A x31 x36 x48y U+1340C
 x41 x41 x31y U+1340D
 x41 x41 x32y U+1340E
 x41 x41 x33y U+1340F
 x41 x41 x34y U+13410
 x41 x41 x35y U+13411
 x41 x41 x36y U+13412
 x41 x41 x37y U+13413
 x41 x41 x37 x41y U+13414
 x41 x41 x37 x42y U+13415
 x41 x41 x38y U+13416
 x41 x41 x39y U+13417
 x41 x41 x31 x30y U+13418
 x41 x41 x31 x31y U+13419
 x41 x41 x31 x32y U+1341A
 x41 x41 x31 x33y U+1341B
 x41 x41 x31 x34y U+1341C
 x41 x41 x31 x35y U+1341D
 x41 x41 x31 x36y U+1341E
 x41 x41 x31 x37y U+1341F
 x41 x41 x31 x38y U+13420
 x41 x41 x31 x39y U+13421
 x41 x41 x32 x30y U+13422
 x41 x41 x32 x31y U+13423
 x41 x41 x32 x32y U+13424
 x41 x41 x32 x33y U+13425
 x41 x41 x32 x34y U+13426
 x41 x41 x32 x35y U+13427
 x41 x41 x32 x36y U+13428
 x41 x41 x32 x37y U+13429
 x41 x41 x32 x38y U+1342A
 x41 x41 x32 x39y U+1342B
 x41 x41 x33 x30y U+1342C
 x41 x41 x33 x31y U+1342D
 x41 x41 x33 x32y U+1342E

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.