% c90.etx % Copyright (C) 1994-2021 Werner Lemberg % % 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 of the License, 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 in doc/COPYING; if not, write to the Free % Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, % MA 02110-1301 USA \relax \documentclass{article} \usepackage[specification]{fontdoc}[2001/06/01] \usepackage{textcomp} \usepackage{shortvrb} \usepackage{mflogo} \usepackage{multicol} \usepackage{url} \MakeShortVerb{\|} \newlength{\Stackwidth} \newcommand\StackAbove[2]{% \settowidth{\Stackwidth}{$#1$}% \vbox{\hbox{$#1$}% \hbox to \Stackwidth{\hss $#2$\hss}}% } \newcommand\StackBelow[2]{% \settowidth{\Stackwidth}{$#1$}% \vtop{\hbox{$#1$}% \hbox to \Stackwidth{\hss $#2$\hss}}% } \newcommand{\thaiclass}[1]{% {\textit{#1}}% } \newcommand{\thaiclassx}[2]{% \thaiclass{#1}% \raisebox{-0.4ex}{{\footnotesize\textit{#2}}}% } \newcommand{\thaiclassxx}[3]{% \thaiclassx{#1}{#2}% \raisebox{-0.8ex}{{\tiny\textit{#3}}}% } \begin{document} \title{The \texttt{C90} encoding for Thai} \author{Werner Lemberg} \date{2005/07/04} \maketitle \section{Introduction} This file describes a font encoding for Thai, as presented in a TUGboat article~\cite{TUG-Thai}. The glyph names follow the Adobe Glyph List (AGL)~\cite{AGL} recommendations. Since most available Thai fonts neither use AGL glyph names nor follow the font encoding used here, you have to be careful in setting up a proper encoding vector. A specialty (for reasons explained below) is that three glyphs, namely |/uni0E38| (Thai character `sara u'), |/uni0E39| (Thai character `sara uu'), and |/uni0E3A| (Thai character `phinthu') must appear twice in the encoding; the additional glyph indices are |0x80|, |0x81|, and |0x82|, respectively. \section{Ligatures} The tricky part is implementing the ligatures. TeX's ligature mechanism only provides contextual patterns of length~2. Due to the very nature of the ETX format, ligatures aren't grouped into classes which makes this file rather long. Thai glyphs can be grouped functionally into base glyphs (which are spacing glyphs) and diacritics (which have zero advance width). Usually, diacritical glyphs represent either vowels or tone indicators, whereas base glyphs represent consonants -- I won't go into detail here; please read the Unicode standard~\cite{Unicode} or any introduction into the Thai script for more information. The general composing rules are as follows: \[ CV \longrightarrow \StackAbove{V}{C}\,,\quad CT \longrightarrow \StackAbove{T}{C}\,,\quad CVT \longrightarrow \StackAbove{\StackAbove{T}{V}}{C}\,,\quad Cv \longrightarrow \StackBelow{C}{v}\,,\quad CvT \longrightarrow \StackBelow{\StackAbove{T}{C}}{v} \] \noindent where $C$ represents a base consonant, $V$ an upper vowel, $v$ a lower vowel, and $T$ a tone mark. The tone mark always comes last. Sometimes you will find documents which have first the tone mark and then the vowel. In real Thai input systems, this error will be catched and fixed by reordering the characters according to the TIS-620 Thai encoding standard before any output is created. The ligatures given below are not able to handle such incorrect data, and you have to normalize it before using them. It depends on context where the diacritics are exactly positioned; some base glyphs have overlong ascenders or descenders, making it necessary to shift the diacritics vertically and horizontally. To complicate things, the Thai vowel `sara am' (TIS-620 code point |0xD3|, Unicode value |U+0E33|), which looks like the final nasal sign `nikhahit' (|0xED|, |U+0E4D|) followed by the vowel `sara aa' (|0xD2|, |U+0E32|), will be decomposed into these two glyphs for rendering. The difficulty is that we must position the tone mark of the \emph{previous} character properly! Thus we have \[ C + SM \longrightarrow \StackAbove{N}{C} + SA\,,\quad C + T + SM \longrightarrow \StackAbove{\StackAbove{T}{N}}{C} + SA \] A last specialty (used for Sanskrit written in Thai) is that `sara aa' if it follows the independent vowel letter `ru' (|0xC4|, |U+0E24|) or `lu' (|0xC6|, |U+0E26|) is replaced with the `lakkhangyao' sign (|0xE5|, |U+0E45|). \section{Glyph Classes} To describe the patterns and rules we start with defining glyph classes. \begin{quote} \begin{description} \item[\thaiclassx{base}{normal}] Normal base glyphs without special features. \item[\thaiclassx{base}{desc}] Base glyphs with descender. \item[\thaiclassx{base}{desclike}] These base glyphs consist of two elements which look like a normal base glyph combined with a lower vowel diacritic; the diacritic-like element will be omitted if combined with a lower vowel. \item[\thaiclassx{base}{asc}] Base glyphs with an ascender on the right side. \item[\thaiclassx{base}{indic}] The two independent vowels \emph{ru} and \emph{lu}. \item[\thaiclassx{base}{sign}] The sign \emph{lakkhangyao}. \item[\thaiclassx{base}{sara am}] The vowel \emph{sara am}. \item[\thaiclassx{base}{sara aa}] The vowel \emph{sara aa}. \item[\thaiclass{lower}] Lower vowel diacritics. \item[\thaiclassx{upper}{vowel}] Upper vowel diacritics. \item[\thaiclassx{upper}{sign}] The \emph{nikhahit} final nasal sign. \item[\thaiclass{top}] Tone marks. \end{description} \end{quote} Here the glyph variant classes: \begin{quote} \begin{description} \item[\thaiclassx{base}{descless}] The glyphs of class \thaiclassx{base}{desclike} without the lower part. \item[\thaiclassx{lower}{low}] The glyphs of class \thaiclass{lower} shifted downwards. \item[\thaiclassxx{upper}{vowel}{left}] The glyphs of class \thaiclassx{upper}{vowel} shifted to the left. \item[\thaiclassxx{upper}{sign}{left}] The glyphs of class \thaiclassx{upper}{sign} shifted to the left. \item[\thaiclassx{top}{left}] The glyphs of class \thaiclass{top} shifted to the left. \item[\thaiclassx{top}{low}] The glyphs of class \thaiclass{top} shifted downwards. \item[\thaiclassx{top}{low-left}] The glyphs of class \thaiclass{top} shifted to the left and downwards. \end{description} \end{quote} \section{Context Patterns} Using the glyph classes defined in the last section it is easy to describe the context patterns for base glyphs with diacritical signs. Surprisingly, these patterns are quite systematic. Patterns in table~\ref{table:context-dia} which are marked with an asterisk do nothing and are listed for completeness only. Note that these patterns cover combinations which don't happen in the Thai script (which doesn't harm). \begin{table*} \centering \def\arraystretch{1.3} \begin{tabular} {l@{~}l@{~}l@{~}l@{\hbox{~\textrightarrow~}}l@{~}l@{~}l@{~}l@{~}l} \thaiclass{base} &\thaiclass{lower} & & &\thaiclass{base} &\thaiclass{lower} & & &* \\ \thaiclass{base} & &\thaiclass{upper} & &\thaiclass{base} & &\thaiclass{upper} & &* \\ \thaiclass{base} & & &\thaiclass{top} &\thaiclass{base} & & &\thaiclassx{top}{low} & \\ \thaiclass{base} &\thaiclass{lower} & &\thaiclass{top} &\thaiclass{base} &\thaiclass{lower} & &\thaiclassx{top}{low} & \\ \thaiclass{base} & &\thaiclass{upper} &\thaiclass{top} &\thaiclass{base} & &\thaiclass{upper} &\thaiclass{top} &* \\[2ex] \thaiclassx{base}{desc} &\thaiclass{lower} & & &\thaiclassx{base}{desc} &\thaiclassx{lower}{low} & & & \\ \thaiclassx{base}{desc} & &\thaiclass{upper} & &\thaiclassx{base}{desc} & &\thaiclass{upper} & &* \\ \thaiclassx{base}{desc} & & &\thaiclass{top} &\thaiclassx{base}{desc} & & &\thaiclassx{top}{low} & \\ \thaiclassx{base}{desc} &\thaiclass{lower} & &\thaiclass{top} &\thaiclassx{base}{desc} &\thaiclassx{lower}{low} & &\thaiclassx{top}{low} & \\ \thaiclassx{base}{desc} & &\thaiclass{upper} &\thaiclass{top} &\thaiclassx{base}{desc} & &\thaiclass{upper} &\thaiclass{top} &* \\[2ex] \thaiclassx{base}{desclike} &\thaiclass{lower} & & &\thaiclassx{base}{descless} & & & & \\ \thaiclassx{base}{desclike} & &\thaiclass{upper} & &\thaiclassx{base}{desclike} & &\thaiclass{upper} & &* \\ \thaiclassx{base}{desclike} & & &\thaiclass{top} &\thaiclassx{base}{desclike} & & &\thaiclassx{top}{low} & \\ \thaiclassx{base}{desclike} &\thaiclass{lower} & &\thaiclass{top} &\thaiclassx{base}{descless} &\thaiclass{lower} & &\thaiclassx{top}{low} & \\ \thaiclassx{base}{desclike} & &\thaiclass{upper} &\thaiclass{top} &\thaiclassx{base}{desclike} & &\thaiclass{upper} &\thaiclass{top} &* \\[2ex] \thaiclassx{base}{asc} &\thaiclass{lower} & & &\thaiclassx{base}{asc} &\thaiclass{lower} & & &* \\ \thaiclassx{base}{asc} & &\thaiclass{upper} & &\thaiclassx{base}{asc} & &\thaiclassx{upper}{left} & & \\ \thaiclassx{base}{asc} & & &\thaiclass{top} &\thaiclassx{base}{asc} & & &\thaiclassx{top}{low-left} & \\ \thaiclassx{base}{asc} &\thaiclass{lower} & &\thaiclass{top} &\thaiclassx{base}{asc} &\thaiclass{lower} & &\thaiclassx{top}{low-left} & \\ \thaiclassx{base}{asc} & &\thaiclass{upper} &\thaiclass{top} &\thaiclassx{base}{asc} & &\thaiclassx{upper}{left} &\thaiclassx{top}{left} & \\ \end{tabular} \caption{Context patterns for diacritical signs. Here, \thaiclass{base} refers to the union of the subclasses \thaiclass{normal}, \thaiclass{indic}, \thaiclass{sign}, \thaiclass{sara am}, and \thaiclass{sara aa} of \thaiclass{base}; \thaiclass{upper} is the union of the subclasses \thaiclass{vowel} and \thaiclass{sign} of \thaiclass{upper}.} \label{table:context-dia} \end{table*} Table~\ref{table:context-sara} covers the ligatures of the character \emph{sara am}. Finally, table~\ref{table:context-indic} describes the letters specific to Sanskrit. \begin{table*} \centering \def\arraystretch{1.3} \begin{tabular}{l@{~}l@{~}l@{\hbox{~\textrightarrow~}}l@{~}l@{~}l@{~}l} \thaiclass{base} &\thaiclassx{base}{sara am} & &\thaiclass{base} &\thaiclassx{upper}{sign} & &\thaiclassx{base}{sara aa} \\ \thaiclassx{base}{asc} &\thaiclassx{base}{sara am} & &\thaiclassx{base}{asc} &\thaiclassxx{upper}{sign}{left} & &\thaiclassx{base}{sara aa} \\[2ex] \thaiclass{base} &\thaiclass{top} &\thaiclassx{base}{sara am} &\thaiclass{base} &\thaiclassx{upper}{sign} &\thaiclass{top} &\thaiclassx{base}{sara aa} \\ \thaiclassx{base}{asc} &\thaiclass{top} &\thaiclassx{base}{sara am} &\thaiclassx{base}{asc} &\thaiclassxx{upper}{sign}{left} &\thaiclassx{top}{left} &\thaiclassx{base}{sara aa} \end{tabular} \caption{Context patterns for \emph{sara am}. Here, \thaiclass{base} denotes the union of subclasses \thaiclass{normal}, \thaiclass{desc}, and \thaiclass{desclike} of \thaiclass{base}.} \label{table:context-sara} \end{table*} \begin{table*} \centering \def\arraystretch{1.3} \begin{tabular}{l@{~}l@{\hbox{~\textrightarrow~}}l@{~}l} \thaiclassx{base}{indic} &\thaiclassx{base}{sara aa} &\thaiclassx{base}{indic} &\thaiclassx{base}{sign} \end{tabular} \caption{Context patterns for \emph{ru} and \emph{lu}.} \label{table:context-indic} \end{table*} \section{\TeX's Ligature Mechanism} \DeleteShortVerb{\|} A small introduction into the exotic variants of \TeX's ligature mechanism which probably many users haven't seen before. Additionally, the documentation in the \emph{\MF book}~\cite{MFbook} is very sparse. In the following examples \MF's notation is used. The usual ligature action of two glyphs $a$ and~$b$ is the replacement of both glyphs with another glyph~$c$. \begin{center} \texttt{a b =:\ c} \end{center} Another possibility is to retain the left or the right original glyph (before and after the ligature, respectively) or both. \begin{center} \texttt{a b |=:\ c} \quad \texttt{a b =:| c} \quad \texttt{a b |=:| c} \end{center} \noindent The first rule creates $ac$, the second $cb$, and the last $acb$. In all three cases, the current point after appying the ligature rule is still at the first glyph of the replaced glyphs, and \TeX\ simply restarts there to check ligatures (and kernings). A classical example is \begin{center} f f i \textrightarrow\ ff i \textrightarrow\ ffi \end{center} To advance the current point to the right, append either \texttt{>} or \texttt{>{}>} (the latter is only possible if you retain both input glyphs). Here are the remaining four ligature rules. \begin{center} \texttt{a b |=:> c} \quad \texttt{a b =:|> c} \\ \texttt{a b |=:|> c} \quad \texttt{a b |=:|>{}> c} \end{center} For Thai ligatures, the most often needed rule is \texttt{|=:}\ (i.e., retain the left glyph and stay at the same position before applying the next ligature rule). Note that using \texttt{|=:>} instead is not a good idea since this would prohibit kerning between the left glyph and the ligature. \section{Ligature Rules} \MakeShortVerb{\|} As just explained, \TeX\ can only handle context patterns of length~2, whereas Thai needs patterns of length~3. It was an interesting challenge to find out whether the problem can be solved with \TeX's somewhat restricted ligature rules -- the gentle reader is invited to find a solution by herself! There won't be any difficulties in understanding ligatures afterwards. The tables~\ref{table:liga-dia}, \ref{table:liga-sara}, and~\ref{table:liga-indic} use the same conventions as tables~\ref{table:context-dia}, \ref{table:context-sara}, and~\ref{table:context-indic}, respectively. The current point isn't increased in any of the rules. \begin{table*} \centering \def\arraystretch{1.3} \begin{tabular}{l@{~}l@{\hbox{~\textrightarrow~}}l@{~}l} \thaiclass{base} &\thaiclass{top} &\thaiclass{base} &\thaiclassx{top}{low} \\ \thaiclassx{base}{desc} &\thaiclass{lower} &\thaiclassx{base}{desc} &\thaiclassx{lower}{low} \\ \thaiclassx{base}{desc} &\thaiclass{top} &\thaiclassx{base}{desc} &\thaiclassx{top}{low} \\ \thaiclassx{base}{desclike} &\thaiclass{lower} &\thaiclassx{base}{descless} &\thaiclass{lower} \\ \thaiclassx{base}{desclike} &\thaiclass{top} &\thaiclassx{base}{desclike} &\thaiclassx{top}{low} \\ \thaiclassx{base}{asc} &\thaiclass{lower} &\thaiclassx{base}{asc} &\thaiclassx{lower}{left} \\ \thaiclassx{base}{asc} &\thaiclass{upper} &\thaiclassx{base}{asc} &\thaiclassx{upper}{left} \\ \thaiclassx{base}{asc} &\thaiclass{top} &\thaiclassx{base}{asc} &\thaiclassx{top}{low-left} \\[2ex] \thaiclass{lower} &\thaiclass{top} &\thaiclass{lower} &\thaiclassx{top}{low} \\ \thaiclassx{lower}{low} &\thaiclass{top} &\thaiclassx{lower}{low} &\thaiclassx{top}{low} \\[2ex] \thaiclassx{upper}{left} &\thaiclass{top} &\thaiclassx{upper}{left} &\thaiclassx{top}{left} \\[2ex] \thaiclassx{lower}{left} &\thaiclass{top} &\thaiclassx{lower}{left} &\thaiclassx{top}{low-left} \\ \end{tabular} \caption{Ligature rules for diacritical marks.} \label{table:liga-dia} \end{table*} \begin{table*} \centering \def\arraystretch{1.3} \begin{tabular}{l@{~}l@{\hbox{~\textrightarrow~}}l@{~}l@{~}l} \thaiclass{base} &\thaiclassx{base}{sara am} &\thaiclass{base} &\thaiclassx{upper}{sign} &\thaiclassx{base}{sara am} \\ \thaiclassx{base}{asc} &\thaiclassx{base}{sara am} &\thaiclassx{base}{asc} &\thaiclassxx{upper}{sign}{left} &\thaiclassx{base}{sara am} \\[2ex] \thaiclassx{upper}{sign} &\thaiclassx{base}{sara am} &\thaiclassx{upper}{sign} &\thaiclassx{base}{sara aa} & \\ \thaiclassxx{upper}{sign}{left} &\thaiclassx{base}{sara am} &\thaiclassxx{upper}{sign}{left} &\thaiclassx{base}{sara aa} & \\[2ex] \thaiclassx{top}{low} &\thaiclassx{base}{sara am} &\thaiclassx{top}{low} &\thaiclass{top} &\thaiclassx{base}{sara am} \\ \thaiclassx{top}{low} &\thaiclass{top} &\thaiclassx{upper}{sign} &\thaiclass{top} & \\ \thaiclass{top} &\thaiclassx{base}{sara am} &\thaiclass{top} &\thaiclassx{base}{sara aa} & \\[2ex] \thaiclassx{top}{low-left} &\thaiclassx{base}{sara am} &\thaiclassx{top}{low-left} &\thaiclassx{top}{left} &\thaiclassx{base}{sara am} \\ \thaiclassx{top}{low-left} &\thaiclassx{top}{left} &\thaiclassxx{upper}{sign}{left} &\thaiclassx{top}{left} & \\ \thaiclassx{top}{left} &\thaiclassx{base}{sara am} &\thaiclassx{top}{left} &\thaiclassx{base}{sara aa} \\ \end{tabular} \caption{Ligature rules for \emph{sara am}.} \label{table:liga-sara} \end{table*} \begin{table*} \centering \def\arraystretch{1.3} \begin{tabular}{l@{~}l@{\hbox{~\textrightarrow~}}l@{~}l} \thaiclassx{base}{indic} &\thaiclassx{base}{sara aa} &\thaiclassx{base}{indic} &\thaiclassx{base}{sign} \end{tabular} \caption{Ligature rule for \emph{ru} and \emph{lu}.} \label{table:liga-indic} \end{table*} Most of the ligature rules can be derived easily by handling the patterns sequentially (quite similar to logic puzzles found in various magazines), but at the end there remain two patterns which apparently contradict. \setlength{\tabcolsep}{3pt} \begin{center} \begin{tabular}{l@{~}l@{~}l@{\hbox{~\textrightarrow~}}l@{~}l@{~}l} \thaiclass{base} &\thaiclass{lower} &\thaiclass{top} &\thaiclass{base} &\thaiclass{lower} &\thaiclassx{top}{low} \\ \thaiclassx{base}{asc} &\thaiclass{lower} &\thaiclass{top} &\thaiclassx{base}{asc} &\thaiclass{lower} &\thaiclassx{top}{low-left} \\ \end{tabular} \end{center} After applying ligature rules for the first two glyph classes it is necessary to handle the context `\thaiclass{lower} \thaiclass{top}', but depending on the previous glyph class \thaiclass{top} must be replaced with \thaiclassx{top}{left} and \thaiclassx{top}{low-left}, respectively. With a context pattern length of~3 this would be easy to solve, but \TeX\ doesn't have this feature. What to do? The context `\thaiclass{base} \thaiclass{lower} \thaiclass{top}' must be distinguished from `\thaiclassx{base}{asc} \thaiclass{lower} \thaiclass{top}', i.e., two different \thaiclass{lower} classes are needed depending on the previous character since \TeX\ is not able to forward information from one ligature cycle to the next. The idea is now to create an `alias class', a class which behaves identically to the original one. The glyphs in this alias class are the same, but different glyph indices and glyph names are assigned to it. A closer look to table~\ref{table:liga-dia} shows that \thaiclassx{lower}{left} isn't a typo but the alias class of \thaiclass{lower}. \section{The Implementation} After solving the problem theoretically now the practical implementation. All glyph names follow the \emph{Adobe Glyph List (AGL)}~\cite{AGL}. There are no predefined Adobe glyph names for Thai, so the prefix `uni' with attached Unicode value will be used for all glyphs which are encoded in Unicode. Glyph variants are identified by an arbitrarily chosen postfix. Here the real glyph names for the various classes. Hexadecimal values in parentheses after the glyph name give the glyph indices in the encoding vector. \vspace{1ex} \multicolsep 1ex \begin{multicols}{2}[\thaiclassx{base}{normal}:] \begin{quote} |uni0E01| (|0xA1|)\\ |uni0E02| (|0xA2|)\\ |uni0E03| (|0xA3|)\\ |uni0E04| (|0xA4|)\\ |uni0E05| (|0xA5|)\\ |uni0E06| (|0xA6|)\\ |uni0E07| (|0xA7|)\\ |uni0E08| (|0xA8|)\\ |uni0E09| (|0xA9|)\\ |uni0E0A| (|0xAA|)\\ |uni0E0B| (|0xAB|)\\ |uni0E0C| (|0xAC|)\\ |uni0E11| (|0xB1|)\\ |uni0E12| (|0xB2|)\\ |uni0E13| (|0xB3|)\\ |uni0E14| (|0xB4|)\\ |uni0E15| (|0xB5|)\\ |uni0E16| (|0xB6|)\\ |uni0E17| (|0xB7|)\\ |uni0E18| (|0xB8|)\\ |uni0E19| (|0xB9|)\\ |uni0E1A| (|0xBA|)\\ |uni0E1C| (|0xBC|)\\ |uni0E1E| (|0xBE|)\\ |uni0E20| (|0xC0|)\\ |uni0E21| (|0xC1|)\\ |uni0E22| (|0xC2|)\\ |uni0E23| (|0xC3|)\\ |uni0E25| (|0xC5|)\\ |uni0E27| (|0xC7|)\\ |uni0E28| (|0xC8|)\\ |uni0E29| (|0xC9|)\\ |uni0E2A| (|0xCA|)\\ |uni0E2B| (|0xCB|)\\ |uni0E2D| (|0xCD|)\\ |uni0E2E| (|0xCE|)\\ |uni0E2F| (|0xCF|)\\ |uni0E30| (|0xD0|)\\ |uni0E40| (|0xE0|)\\ |uni0E41| (|0xE1|) \end{quote} \end{multicols} \begin{multicols}{2}[\thaiclassx{base}{desc}:] \begin{quote} |uni0E0E| (|0xAE|)\\ |uni0E0F| (|0xAF|) \end{quote} \end{multicols} \begin{multicols}{2}[\thaiclassx{base}{desclike}:] \begin{quote} |uni0E0D| (|0xAD|)\\ |uni0E10| (|0xB0|) \end{quote} \end{multicols} \begin{multicols}{2}[\thaiclassx{base}{indic}:] \begin{quote} |uni0E24| (|0xC4|)\\ |uni0E26| (|0xC6|) \end{quote} \end{multicols} \begin{multicols}{2}[\thaiclassx{base}{sign}:] \begin{quote} |uni0E45| (|0xE5|) \end{quote} \end{multicols} \begin{multicols}{2}[\thaiclassx{base}{asc}:] \begin{quote} |uni0E1B| (|0xBB|)\\ |uni0E1D| (|0xBD|)\\ |uni0E1F| (|0xBF|)\\ |uni0E2C| (|0xCC|) \end{quote} \end{multicols} \begin{multicols}{2}[\thaiclassx{base}{sara am}:] \begin{quote} |uni0E33| (|0xD3|) \end{quote} \end{multicols} \begin{multicols}{2}[\thaiclassx{base}{sara aa}:] \begin{quote} |uni0E32| (|0xD2|) \end{quote} \end{multicols} \begin{multicols}{2}[\thaiclassx{base}{descless}:] \begin{quote} |uni0E0D.descless| (|0x90|)\\ |uni0E10.descless| (|0x9F|) \end{quote} \end{multicols} \begin{multicols}{2}[\thaiclass{lower}:] \begin{quote} |uni0E38| (|0xD8|)\\ |uni0E39| (|0xD9|)\\ |uni0E3A| (|0xDA|) \end{quote} \end{multicols} \begin{multicols}{2}[\thaiclassx{lower}{left}:] \begin{quote} |uni0E38.left| (|0x80|)\\ |uni0E39.left| (|0x81|)\\ |uni0E3A.left| (|0x82|) \end{quote} \end{multicols} \begin{multicols}{2}[\thaiclassx{lower}{low}:] \begin{quote} |uni0E38.low| (|0xFC|)\\ |uni0E39.low| (|0xFD|)\\ |uni0E3A.low| (|0xFE|) \end{quote} \end{multicols} \begin{multicols}{2}[\thaiclassx{upper}{vowel}:] \begin{quote} |uni0E31| (|0xD1|)\\ |uni0E34| (|0xD4|)\\ |uni0E35| (|0xD5|)\\ |uni0E36| (|0xD6|)\\ |uni0E37| (|0xD7|)\\ |uni0E47| (|0xE7|)\\ |uni0E4D| (|0xED|) \end{quote} \end{multicols} \begin{multicols}{2}[\thaiclassx{upper}{sign}:] \begin{quote} |uni0E4D| (|0xED|) \end{quote} \end{multicols} \begin{multicols}{2}[\thaiclassxx{upper}{vowel}{left}:] \begin{quote} |uni0E31.left| (|0x92|)\\ |uni0E34.left| (|0x94|)\\ |uni0E35.left| (|0x95|)\\ |uni0E36.left| (|0x96|)\\ |uni0E37.left| (|0x97|)\\ |uni0E47.left| (|0x93|)\\ |uni0E4D.left| (|0x8F|) \end{quote} \end{multicols} \begin{multicols}{2}[\thaiclassxx{upper}{sign}{left}:] \begin{quote} |uni0E4D.left| (|0x8F|) \end{quote} \end{multicols} \begin{multicols}{2}[\thaiclass{top}:] \begin{quote} |uni0E48| (|0xE8|)\\ |uni0E49| (|0xE9|)\\ |uni0E4A| (|0xEA|)\\ |uni0E4B| (|0xEB|)\\ |uni0E4C| (|0xEC|) \end{quote} \end{multicols} \begin{multicols}{2}[\thaiclassx{top}{left}:] \begin{quote} |uni0E48.left| (|0x98|)\\ |uni0E49.left| (|0x99|)\\ |uni0E4A.left| (|0x9A|)\\ |uni0E4B.left| (|0x9B|)\\ |uni0E4C.left| (|0x9C|) \end{quote} \end{multicols} \begin{multicols}{2}[\thaiclassx{top}{low}:] \begin{quote} |uni0E48.low| (|0x88|)\\ |uni0E49.low| (|0x89|)\\ |uni0E4A.low| (|0x8A|)\\ |uni0E4B.low| (|0x8B|)\\ |uni0E4C.low| (|0x8C|) \end{quote} \end{multicols} \begin{multicols}{2}[\thaiclassx{top}{low-left}:] \begin{quote} |uni0E48.low_left| (|0x83|)\\ |uni0E49.low_left| (|0x84|)\\ |uni0E4A.low_left| (|0x85|)\\ |uni0E4B.low_left| (|0x86|)\\ |uni0E4C.low_left| (|0x87|) \end{quote} \end{multicols} \vspace{1ex} \encoding \needsfontinstversion{1.918} \begincomment \section{Coding Scheme} \endcomment \setstr{codingscheme}{C90 THAI ENCODING} \begincomment \section{Non-Thai Characters} Of the many different \LaTeX{} encodings, |OT1| supports {\small ASCII} best (and this is what most Type~1 Thai fonts have). This has two advantages: We can use the raw Thai font without specifying a new encoding (switching to |OT1| will be sufficient), and it will work with plain \TeX{} also. We use the |OT1| layout for typewriter fonts (i.e., for |cmtt|) with the exception that `arrowup' and `arrowdown' are replaced with `endash' and `emdash', and the seldom used `dotlessj' with `quotedblleft'. \endcomment % 0x00 | 0 \setslot{Gamma} \Unicode{0393}{GREEK CAPITAL LETTER GAMMA} \endsetslot \setslot{Delta} \Unicode{0394}{GREEK CAPITAL LETTER DELTA} \endsetslot \setslot{Theta} \Unicode{0398}{GREEK CAPITAL LETTER THETA} \endsetslot \setslot{Lambda} \Unicode{039B}{GREEK CAPITAL LETTER LAMDA} \endsetslot \setslot{Xi} \Unicode{039E}{GREEK CAPITAL LETTER XI} \endsetslot \setslot{Pi} \Unicode{03A0}{GREEK CAPITAL LETTER PI} \endsetslot \setslot{Sigma} \Unicode{03A3}{GREEK CAPITAL LETTER SIGMA} \endsetslot \setslot{Upsilon} \Unicode{03D2}{GREEK UPSILON WITH HOOK SYMBOL} \endsetslot \setslot{Phi} \Unicode{03A6}{GREEK CAPITAL LETTER PHI} \endsetslot \setslot{Psi} \Unicode{03A8}{GREEK CAPITAL LETTER PSI} \endsetslot \setslot{Omega} \Unicode{03A9}{GREEK CAPITAL LETTER OMEGA} \endsetslot \setslot{endash} \Unicode{2013}{EN DASH} \Ligature{LIG}{hyphen}{emdash} \comment{This is `arrowup' in |OT1| encoding.} \endsetslot \setslot{emdash} \Unicode{2014}{EM DASH} \comment{This is `arrowdown' in |OT1| encoding.} \endsetslot \setslot{quotesingle} \Unicode{0027}{APOSTROPHE} \endsetslot \setslot{exclamdown} \Unicode{00A1}{INVERTED EXCLAMATION MARK} \endsetslot \setslot{questiondown} \Unicode{00BF}{INVERTED QUESTION MARK} \endsetslot % 0x10 | 16 \setslot{dotlessi} \Unicode{0131}{LATIN SMALL LETTER DOTLESS I} \endsetslot \setslot{quotedblleft} \Unicode{201C}{LEFT DOUBLE QUOTATION MARK} \comment{This is `dotlessj' in |OT1| encoding.} \endsetslot \setslot{grave} \Unicode{0300}{COMBINING GRAVE ACCENT} \endsetslot \setslot{acute} \Unicode{0301}{COMBINING ACUTE ACCENT} \endsetslot \setslot{caron} \Unicode{030C}{COMBINING CARON} \endsetslot \setslot{breve} \Unicode{0306}{COMBINING BREVE} \endsetslot \setslot{macron} \Unicode{0304}{COMBINING MACRON} \endsetslot \setslot{ring} \Unicode{030A}{COMBINING RING ABOVE} \endsetslot \setslot{cedilla} \Unicode{0327}{COMBINING CEDILLA} \endsetslot \setslot{germandbls} \Unicode{00DF}{LATIN SMALL LETTER SHARP S} \endsetslot \setslot{ae} \Unicode{00E6}{LATIN SMALL LETTER AE} \endsetslot \setslot{oe} \Unicode{0153}{LATIN SMALL LIGATURE OE} \endsetslot \setslot{oslash} \Unicode{00F8}{LATIN SMALL LETTER O WITH STROKE} \endsetslot \setslot{AE} \Unicode{00C6}{LATIN CAPITAL LETTER AE} \endsetslot \setslot{OE} \Unicode{0152}{LATIN CAPITAL LIGATURE OE} \endsetslot \setslot{Oslash} \Unicode{00D8}{LATIN CAPITAL LETTER O WITH STROKE} \endsetslot % 0x20 | 32 \skipslots{1} \setslot{exclam} \Unicode{0021}{EXCLAMATION MARK} \Ligature{LIG}{quoteleft}{exclamdown} \endsetslot \setslot{quotedblright} \Unicode{201D}{RIGHT DOUBLE QUOTATION MARK} \endsetslot \setslot{numbersign} \Unicode{0023}{NUMBER SIGN} \endsetslot \setslot{dollar} \Unicode{0024}{DOLLAR SIGN} \endsetslot \setslot{percent} \Unicode{0025}{PERCENT SIGN} \endsetslot \setslot{ampersand} \Unicode{0026}{AMPERSAND} \endsetslot \setslot{quoteright} \Unicode{2019}{RIGHT SINGLE QUOTATION MARK} \Ligature{LIG}{quoteright}{quotedblright} \endsetslot \setslot{parenleft} \Unicode{0028}{LEFT PARENTHESIS} \endsetslot \setslot{parenright} \Unicode{0029}{RIGHT PARENTHESIS} \endsetslot \setslot{asterisk} \Unicode{002A}{ASTERISK} \endsetslot \setslot{plus} \Unicode{002B}{PLUS SIGN} \endsetslot \setslot{comma} \Unicode{002C}{COMMA} \endsetslot \setslot{hyphen} \Unicode{002D}{HYPHEN-MINUS} \Ligature{LIG}{hyphen}{endash} \endsetslot \setslot{period} \Unicode{002E}{FULL STOP} \endsetslot \setslot{slash} \Unicode{002F}{SOLIDUS} \endsetslot % 0x30 | 48 \setslot{zero} \Unicode{0030}{DIGIT ZERO} \endsetslot \setslot{one} \Unicode{0031}{DIGIT ONE} \endsetslot \setslot{two} \Unicode{0032}{DIGIT TWO} \endsetslot \setslot{three} \Unicode{0033}{DIGIT THREE} \endsetslot \setslot{four} \Unicode{0034}{DIGIT FOUR} \endsetslot \setslot{five} \Unicode{0035}{DIGIT FIVE} \endsetslot \setslot{six} \Unicode{0036}{DIGIT SIX} \endsetslot \setslot{seven} \Unicode{0037}{DIGIT SEVEN} \endsetslot \setslot{eight} \Unicode{0038}{DIGIT EIGHT} \endsetslot \setslot{nine} \Unicode{0039}{DIGIT NINE} \endsetslot \setslot{colon} \Unicode{003A}{COLON} \endsetslot \setslot{semicolon} \Unicode{003B}{SEMICOLON} \endsetslot \setslot{less} \Unicode{003C}{LESS-THAN SIGN} \endsetslot \setslot{equal} \Unicode{003D}{EQUALS SIGN} \endsetslot \setslot{greater} \Unicode{003E}{GREATER-THAN SIGN} \endsetslot \setslot{question} \Unicode{003F}{QUESTION MARK} \Ligature{LIG}{quoteleft}{questiondown} \endsetslot % 0x40 | 64 \setslot{at} \Unicode{0040}{COMMERCIAL AT} \endsetslot \setslot{A} \Unicode{0041}{LATIN CAPITAL LETTER A} \endsetslot \setslot{B} \Unicode{0042}{LATIN CAPITAL LETTER B} \endsetslot \setslot{C} \Unicode{0043}{LATIN CAPITAL LETTER C} \endsetslot \setslot{D} \Unicode{0044}{LATIN CAPITAL LETTER D} \endsetslot \setslot{E} \Unicode{0045}{LATIN CAPITAL LETTER E} \endsetslot \setslot{F} \Unicode{0046}{LATIN CAPITAL LETTER F} \endsetslot \setslot{G} \Unicode{0047}{LATIN CAPITAL LETTER G} \endsetslot \setslot{H} \Unicode{0048}{LATIN CAPITAL LETTER H} \endsetslot \setslot{I} \Unicode{0049}{LATIN CAPITAL LETTER I} \endsetslot \setslot{J} \Unicode{004A}{LATIN CAPITAL LETTER J} \endsetslot \setslot{K} \Unicode{004B}{LATIN CAPITAL LETTER K} \endsetslot \setslot{L} \Unicode{004C}{LATIN CAPITAL LETTER L} \endsetslot \setslot{M} \Unicode{004D}{LATIN CAPITAL LETTER M} \endsetslot \setslot{N} \Unicode{004E}{LATIN CAPITAL LETTER N} \endsetslot \setslot{O} \Unicode{004F}{LATIN CAPITAL LETTER O} \endsetslot % 0x50 | 80 \setslot{P} \Unicode{0050}{LATIN CAPITAL LETTER P} \endsetslot \setslot{Q} \Unicode{0051}{LATIN CAPITAL LETTER Q} \endsetslot \setslot{R} \Unicode{0052}{LATIN CAPITAL LETTER R} \endsetslot \setslot{S} \Unicode{0053}{LATIN CAPITAL LETTER S} \endsetslot \setslot{T} \Unicode{0054}{LATIN CAPITAL LETTER T} \endsetslot \setslot{U} \Unicode{0055}{LATIN CAPITAL LETTER U} \endsetslot \setslot{V} \Unicode{0056}{LATIN CAPITAL LETTER V} \endsetslot \setslot{W} \Unicode{0057}{LATIN CAPITAL LETTER W} \endsetslot \setslot{X} \Unicode{0058}{LATIN CAPITAL LETTER X} \endsetslot \setslot{Y} \Unicode{0059}{LATIN CAPITAL LETTER Y} \endsetslot \setslot{Z} \Unicode{005A}{LATIN CAPITAL LETTER Z} \endsetslot \setslot{bracketleft} \Unicode{005B}{LEFT SQUARE BRACKET} \endsetslot \setslot{backslash} \Unicode{005C}{REVERSE SOLIDUS} \endsetslot \setslot{bracketright} \Unicode{005D}{RIGHT SQUARE BRACKET} \endsetslot \setslot{circumflex} \Unicode{0302}{COMBINING CIRCUMFLEX ACCENT} \endsetslot \setslot{underscore} \Unicode{005F}{LOW LINE} \endsetslot % 0x60 | 96 \setslot{quoteleft} \Unicode{2018}{LEFT SINGLE QUOTATION MARK} \Ligature{LIG}{quoteleft}{quotedblleft} \endsetslot \setslot{a} \Unicode{0061}{LATIN SMALL LETTER A} \endsetslot \setslot{b} \Unicode{0062}{LATIN SMALL LETTER B} \endsetslot \setslot{c} \Unicode{0063}{LATIN SMALL LETTER C} \endsetslot \setslot{d} \Unicode{0064}{LATIN SMALL LETTER D} \endsetslot \setslot{e} \Unicode{0065}{LATIN SMALL LETTER E} \endsetslot \setslot{f} \Unicode{0066}{LATIN SMALL LETTER F} \endsetslot \setslot{g} \Unicode{0067}{LATIN SMALL LETTER G} \endsetslot \setslot{h} \Unicode{0068}{LATIN SMALL LETTER H} \endsetslot \setslot{i} \Unicode{0069}{LATIN SMALL LETTER I} \endsetslot \setslot{j} \Unicode{006A}{LATIN SMALL LETTER J} \endsetslot \setslot{k} \Unicode{006B}{LATIN SMALL LETTER K} \endsetslot \setslot{l} \Unicode{006C}{LATIN SMALL LETTER L} \endsetslot \setslot{m} \Unicode{006D}{LATIN SMALL LETTER M} \endsetslot \setslot{n} \Unicode{006E}{LATIN SMALL LETTER N} \endsetslot \setslot{o} \Unicode{006F}{LATIN SMALL LETTER O} \endsetslot % 0x70 | 112 \setslot{p} \Unicode{0070}{LATIN SMALL LETTER P} \endsetslot \setslot{q} \Unicode{0071}{LATIN SMALL LETTER Q} \endsetslot \setslot{r} \Unicode{0072}{LATIN SMALL LETTER R} \endsetslot \setslot{s} \Unicode{0073}{LATIN SMALL LETTER S} \endsetslot \setslot{t} \Unicode{0074}{LATIN SMALL LETTER T} \endsetslot \setslot{u} \Unicode{0075}{LATIN SMALL LETTER U} \endsetslot \setslot{v} \Unicode{0076}{LATIN SMALL LETTER V} \endsetslot \setslot{w} \Unicode{0077}{LATIN SMALL LETTER W} \endsetslot \setslot{x} \Unicode{0078}{LATIN SMALL LETTER X} \endsetslot \setslot{y} \Unicode{0079}{LATIN SMALL LETTER Y} \endsetslot \setslot{z} \Unicode{007A}{LATIN SMALL LETTER Z} \endsetslot \setslot{braceleft} \Unicode{007B}{LEFT CURLY BRACKET} \endsetslot \setslot{bar} \Unicode{007C}{VERTICAL LINE} \endsetslot \setslot{braceright} \Unicode{007D}{RIGHT CURLY BRACKET} \endsetslot \setslot{tilde} \Unicode{0303}{COMBINING TILDE} \endsetslot \setslot{dieresis} \Unicode{0308}{COMBINING DIAERESIS} \endsetslot \begincomment \section{Thai Characters} This is |TIS-620| encoding with glyph variants. The encoding presented in~\cite{TUG-Thai} contained two alternate glyph forms at positions 157 and 158 which have been removed meanwhile. The number of all Thai ligature rules is quite big (464~in total). Note that |vptovf| will make the ligature table much more compact as it may appear here. \endcomment % 0x80 | 128 \ifisint{makeenc}\then \setslot{uni0E38} \endsetslot \Else \setslot{uni0E38.left} \comment{An alias for \textunicode{0E38}{THAI CHARACTER SARA U}.} \Ligature{/LIG}{uni0E48}{uni0E48.low_left} \Ligature{/LIG}{uni0E49}{uni0E49.low_left} \Ligature{/LIG}{uni0E4A}{uni0E4A.low_left} \Ligature{/LIG}{uni0E4B}{uni0E4B.low_left} \Ligature{/LIG}{uni0E4C}{uni0E4C.low_left} \endsetslot \Fi \ifisint{makeenc}\then \setslot{uni0E39} \endsetslot \Else \setslot{uni0E39.left} \comment{An alias for \textunicode{0E39}{THAI CHARACTER SARA UU}.} \Ligature{/LIG}{uni0E48}{uni0E48.low_left} \Ligature{/LIG}{uni0E49}{uni0E49.low_left} \Ligature{/LIG}{uni0E4A}{uni0E4A.low_left} \Ligature{/LIG}{uni0E4B}{uni0E4B.low_left} \Ligature{/LIG}{uni0E4C}{uni0E4C.low_left} \endsetslot \Fi \ifisint{makeenc}\then \setslot{uni0E3A} \endsetslot \Else \setslot{uni0E3A.left} \comment{An alias for \textunicode{0E3A}{THAI CHARACTER PHINTHU}.} \Ligature{/LIG}{uni0E48}{uni0E48.low_left} \Ligature{/LIG}{uni0E49}{uni0E49.low_left} \Ligature{/LIG}{uni0E4A}{uni0E4A.low_left} \Ligature{/LIG}{uni0E4B}{uni0E4B.low_left} \Ligature{/LIG}{uni0E4C}{uni0E4C.low_left} \endsetslot \Fi \setslot{uni0E48.low_left} \comment{A glyph variant of \textunicode{0E48}{THAI CHARACTER MAI EK}.} \Ligature{/LIG/}{uni0E33}{uni0E48.left} \Ligature{LIG/}{uni0E48.left}{uni0E4D.left} \endsetslot \setslot{uni0E49.low_left} \comment{A glyph variant of \textunicode{0E49}{THAI CHARACTER MAI THO}.} \Ligature{/LIG/}{uni0E33}{uni0E49.left} \Ligature{LIG/}{uni0E49.left}{uni0E4D.left} \endsetslot \setslot{uni0E4A.low_left} \comment{A glyph variant of \textunicode{0E4A}{THAI CHARACTER MAI TRI}.} \Ligature{/LIG/}{uni0E33}{uni0E4A.left} \Ligature{LIG/}{uni0E4A.left}{uni0E4D.left} \endsetslot \setslot{uni0E4B.low_left} \comment{A glyph variant of \textunicode{0E4B}{THAI CHARACTER MAI CHATTAWA}.} \Ligature{/LIG/}{uni0E33}{uni0E4B.left} \Ligature{LIG/}{uni0E4B.left}{uni0E4D.left} \endsetslot \setslot{uni0E4C.low_left} \comment{A glyph variant of \textunicode{0E4C}{THAI CHARACTER THANTHAKHAT}.} \Ligature{/LIG/}{uni0E33}{uni0E4C.left} \Ligature{LIG/}{uni0E4C.left}{uni0E4D.left} \endsetslot \setslot{uni0E48.low} \comment{A glyph variant of \textunicode{0E48}{THAI CHARACTER MAI EK}.} \Ligature{/LIG/}{uni0E33}{uni0E48} \Ligature{LIG/}{uni0E48}{uni0E4D} \endsetslot \setslot{uni0E49.low} \comment{A glyph variant of \textunicode{0E49}{THAI CHARACTER MAI THO}.} \Ligature{/LIG/}{uni0E33}{uni0E49} \Ligature{LIG/}{uni0E49}{uni0E4D} \endsetslot \setslot{uni0E4A.low} \comment{A glyph variant of \textunicode{0E4A}{THAI CHARACTER MAI TRI}.} \Ligature{/LIG/}{uni0E33}{uni0E4A} \Ligature{LIG/}{uni0E4A}{uni0E4D} \endsetslot \setslot{uni0E4B.low} \comment{A glyph variant of \textunicode{04EB}{THAI CHARACTER MAI CHATTAWA}.} \Ligature{/LIG/}{uni0E33}{uni0E4B} \Ligature{LIG/}{uni0E4B}{uni0E4D} \endsetslot \setslot{uni0E4C.low} \comment{A glyph variant of \textunicode{0E4C}{THAI CHARACTER THANTHAKHAT}.} \Ligature{/LIG/}{uni0E33}{uni0E4C} \Ligature{LIG/}{uni0E4C}{uni0E4D} \endsetslot \skipslots{2} \setslot{uni0E4D.left} \comment{A glyph variant of \textunicode{0E4D}{THAI CHARACTER NIKHAHIT}.} \Ligature{/LIG}{uni0E33}{uni0E32} \Ligature{/LIG}{uni0E48}{uni0E48.left} \Ligature{/LIG}{uni0E49}{uni0E49.left} \Ligature{/LIG}{uni0E4A}{uni0E4A.left} \Ligature{/LIG}{uni0E4B}{uni0E4B.left} \Ligature{/LIG}{uni0E4C}{uni0E4C.left} \endsetslot % 0x90 | 144 \setslot{uni0E0D.descless} \comment{A glyph variant of \textunicode{0E0D}{THAI CHARACTER YO YING}.} \endsetslot \skipslots{1} \setslot{uni0E31.left} \comment{A glyph variant of \textunicode{0E31}{THAI CHARACTER MAI HAN-AKAT}.} \Ligature{/LIG}{uni0E48}{uni0E48.left} \Ligature{/LIG}{uni0E49}{uni0E49.left} \Ligature{/LIG}{uni0E4A}{uni0E4A.left} \Ligature{/LIG}{uni0E4B}{uni0E4B.left} \Ligature{/LIG}{uni0E4C}{uni0E4C.left} \endsetslot \setslot{uni0E47.left} \comment{A glyph variant of \textunicode{0E47}{THAI CHARACTER MAITAIKHU}.} \Ligature{/LIG}{uni0E48}{uni0E48.left} \Ligature{/LIG}{uni0E49}{uni0E49.left} \Ligature{/LIG}{uni0E4A}{uni0E4A.left} \Ligature{/LIG}{uni0E4B}{uni0E4B.left} \Ligature{/LIG}{uni0E4C}{uni0E4C.left} \endsetslot \setslot{uni0E34.left} \comment{A glyph variant of \textunicode{0E34}{THAI CHARACTER SARA I}.} \Ligature{/LIG}{uni0E48}{uni0E48.left} \Ligature{/LIG}{uni0E49}{uni0E49.left} \Ligature{/LIG}{uni0E4A}{uni0E4A.left} \Ligature{/LIG}{uni0E4B}{uni0E4B.left} \Ligature{/LIG}{uni0E4C}{uni0E4C.left} \endsetslot \setslot{uni0E35.left} \comment{A glyph variant of \textunicode{0E35}{THAI CHARACTER SARA II}.} \Ligature{/LIG}{uni0E48}{uni0E48.left} \Ligature{/LIG}{uni0E49}{uni0E49.left} \Ligature{/LIG}{uni0E4A}{uni0E4A.left} \Ligature{/LIG}{uni0E4B}{uni0E4B.left} \Ligature{/LIG}{uni0E4C}{uni0E4C.left} \endsetslot \setslot{uni0E36.left} \comment{A glyph variant of \textunicode{0E36}{THAI CHARACTER SARA UE}.} \Ligature{/LIG}{uni0E48}{uni0E48.left} \Ligature{/LIG}{uni0E49}{uni0E49.left} \Ligature{/LIG}{uni0E4A}{uni0E4A.left} \Ligature{/LIG}{uni0E4B}{uni0E4B.left} \Ligature{/LIG}{uni0E4C}{uni0E4C.left} \endsetslot \setslot{uni0E37.left} \comment{A glyph variant of \textunicode{0E37}{THAI CHARACTER SARA UEE}.} \Ligature{/LIG}{uni0E48}{uni0E48.left} \Ligature{/LIG}{uni0E49}{uni0E49.left} \Ligature{/LIG}{uni0E4A}{uni0E4A.left} \Ligature{/LIG}{uni0E4B}{uni0E4B.left} \Ligature{/LIG}{uni0E4C}{uni0E4C.left} \endsetslot \setslot{uni0E48.left} \comment{A glyph variant of \textunicode{0E48}{THAI CHARACTER MAI EK}.} \Ligature{/LIG}{uni0E33}{uni0E32} \endsetslot \setslot{uni0E49.left} \comment{A glyph variant of \textunicode{0E49}{THAI CHARACTER MAI THO}.} \Ligature{/LIG}{uni0E33}{uni0E32} \endsetslot \setslot{uni0E4A.left} \comment{A glyph variant of \textunicode{0E4A}{THAI CHARACTER MAI TRI}.} \Ligature{/LIG}{uni0E33}{uni0E32} \endsetslot \setslot{uni0E4B.left} \comment{A glyph variant of \textunicode{0E4B}{THAI CHARACTER MAI CHATTAWA}.} \Ligature{/LIG}{uni0E33}{uni0E32} \endsetslot \setslot{uni0E4C.left} \comment{A glyph variant of \textunicode{0E4C}{THAI CHARACTER THANTHAKHAT}.} \Ligature{/LIG}{uni0E33}{uni0E32} \endsetslot \skipslots{2} \setslot{uni0E10.descless} \comment{A glyph variant of \textunicode{0E10}{THAI CHARACTER THO THAN}.} \endsetslot % 0xA0 | 160 \skipslots{1} \setslot{uni0E01} \Unicode{0E01}{THAI CHARACTER KO KAI} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E02} \Unicode{0E02}{THAI CHARACTER KHO KHAI} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E03} \Unicode{0E03}{THAI CHARACTER KHO KHUAT} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E04} \Unicode{0E04}{THAI CHARACTER KHO KHWAI} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E05} \Unicode{0E05}{THAI CHARACTER KHO KHON} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E06} \Unicode{0E06}{THAI CHARACTER KHO RAKHANG} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E07} \Unicode{0E07}{THAI CHARACTER NGO NGU} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E08} \Unicode{0E08}{THAI CHARACTER CHO CHAN} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E09} \Unicode{0E09}{THAI CHARACTER CHO CHING} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E0A} \Unicode{0E0A}{THAI CHARACTER CHO CHANG} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E0B} \Unicode{0E0B}{THAI CHARACTER SO SO} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E0C} \Unicode{0E0C}{THAI CHARACTER CHO CHOE} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E0D} \Unicode{0E0D}{THAI CHARACTER YO YING} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{LIG/}{uni0E38}{uni0E0D.descless} \Ligature{LIG/}{uni0E39}{uni0E0D.descless} \Ligature{LIG/}{uni0E3A}{uni0E0D.descless} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E0E} \Unicode{0E0E}{THAI CHARACTER DO CHADA} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{/LIG}{uni0E38}{uni0E38.low} \Ligature{/LIG}{uni0E39}{uni0E39.low} \Ligature{/LIG}{uni0E3A}{uni0E3A.low} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E0F} \Unicode{0E0F}{THAI CHARACTER TO PATAK} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{/LIG}{uni0E38}{uni0E38.low} \Ligature{/LIG}{uni0E39}{uni0E39.low} \Ligature{/LIG}{uni0E3A}{uni0E3A.low} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot % 0xB0 | 176 \setslot{uni0E10} \Unicode{0E10}{THAI CHARACTER THO THAN} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{LIG/}{uni0E38}{uni0E10.descless} \Ligature{LIG/}{uni0E39}{uni0E10.descless} \Ligature{LIG/}{uni0E3A}{uni0E10.descless} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E11} \Unicode{0E11}{THAI CHARACTER THO NANGMONTHO} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E12} \Unicode{0E12}{THAI CHARACTER THO PHUTHAO} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E13} \Unicode{0E13}{THAI CHARACTER NO NEN} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E14} \Unicode{0E14}{THAI CHARACTER DO DEK} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E15} \Unicode{0E15}{THAI CHARACTER TO TAO} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E16} \Unicode{0E16}{THAI CHARACTER THO THUNG} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E17} \Unicode{0E17}{THAI CHARACTER THO THAHAN} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E18} \Unicode{0E18}{THAI CHARACTER THO THONG} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E19} \Unicode{0E19}{THAI CHARACTER NO NU} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E1A} \Unicode{0E1A}{THAI CHARACTER BO BAIMAI} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E1B} \Unicode{0E1B}{THAI CHARACTER PO PLA} \Ligature{/LIG}{uni0E31}{uni0E31.left} \Ligature{/LIG/}{uni0E33}{uni0E4D.left} \Ligature{/LIG}{uni0E34}{uni0E34.left} \Ligature{/LIG}{uni0E35}{uni0E35.left} \Ligature{/LIG}{uni0E36}{uni0E36.left} \Ligature{/LIG}{uni0E37}{uni0E37.left} \Ligature{/LIG}{uni0E38}{uni0E38.left} \Ligature{/LIG}{uni0E39}{uni0E39.left} \Ligature{/LIG}{uni0E3A}{uni0E3A.left} \Ligature{/LIG}{uni0E47}{uni0E47.left} \Ligature{/LIG}{uni0E48}{uni0E48.low_left} \Ligature{/LIG}{uni0E49}{uni0E49.low_left} \Ligature{/LIG}{uni0E4A}{uni0E4A.low_left} \Ligature{/LIG}{uni0E4B}{uni0E4B.low_left} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \Ligature{/LIG}{uni0E4D}{uni0E4D.left} \endsetslot \setslot{uni0E1C} \Unicode{0E1C}{THAI CHARACTER PHO PHUNG} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E1D} \Unicode{0E1D}{THAI CHARACTER FO FA} \Ligature{/LIG}{uni0E31}{uni0E31.left} \Ligature{/LIG/}{uni0E33}{uni0E4D.left} \Ligature{/LIG}{uni0E34}{uni0E34.left} \Ligature{/LIG}{uni0E35}{uni0E35.left} \Ligature{/LIG}{uni0E36}{uni0E36.left} \Ligature{/LIG}{uni0E37}{uni0E37.left} \Ligature{/LIG}{uni0E38}{uni0E38.left} \Ligature{/LIG}{uni0E39}{uni0E39.left} \Ligature{/LIG}{uni0E3A}{uni0E3A.left} \Ligature{/LIG}{uni0E47}{uni0E47.left} \Ligature{/LIG}{uni0E48}{uni0E48.low_left} \Ligature{/LIG}{uni0E49}{uni0E49.low_left} \Ligature{/LIG}{uni0E4A}{uni0E4A.low_left} \Ligature{/LIG}{uni0E4B}{uni0E4B.low_left} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \Ligature{/LIG}{uni0E4D}{uni0E4D.left} \endsetslot \setslot{uni0E1E} \Unicode{0E1E}{THAI CHARACTER PHO PHAN} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E1F} \Unicode{0E1F}{THAI CHARACTER FO FAN} \Ligature{/LIG}{uni0E31}{uni0E31.left} \Ligature{/LIG/}{uni0E33}{uni0E4D.left} \Ligature{/LIG}{uni0E34}{uni0E34.left} \Ligature{/LIG}{uni0E35}{uni0E35.left} \Ligature{/LIG}{uni0E36}{uni0E36.left} \Ligature{/LIG}{uni0E37}{uni0E37.left} \Ligature{/LIG}{uni0E38}{uni0E38.left} \Ligature{/LIG}{uni0E39}{uni0E39.left} \Ligature{/LIG}{uni0E3A}{uni0E3A.left} \Ligature{/LIG}{uni0E47}{uni0E47.left} \Ligature{/LIG}{uni0E48}{uni0E48.low_left} \Ligature{/LIG}{uni0E49}{uni0E49.low_left} \Ligature{/LIG}{uni0E4A}{uni0E4A.low_left} \Ligature{/LIG}{uni0E4B}{uni0E4B.low_left} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \Ligature{/LIG}{uni0E4D}{uni0E4D.left} \endsetslot % 0xC0 | 192 \setslot{uni0E20} \Unicode{0E20}{THAI CHARACTER PHO SAMPHAO} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E21} \Unicode{0E21}{THAI CHARACTER MO MA} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E22} \Unicode{0E22}{THAI CHARACTER YO YAK} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E23} \Unicode{0E23}{THAI CHARACTER RO RUA} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E24} \Unicode{0E24}{THAI CHARACTER RU} \Ligature{/LIG}{uni0E32}{uni0E45} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E25} \Unicode{0E25}{THAI CHARACTER LO LING} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E26} \Unicode{0E26}{THAI CHARACTER LU} \Ligature{/LIG}{uni0E32}{uni0E45} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E27} \Unicode{0E27}{THAI CHARACTER WO WAEN} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E28} \Unicode{0E28}{THAI CHARACTER SO SALA} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E29} \Unicode{0E29}{THAI CHARACTER SO RUSI} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E2A} \Unicode{0E2A}{THAI CHARACTER SO SUA} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E2B} \Unicode{0E2B}{THAI CHARACTER HO HIP} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E2C} \Unicode{0E2C}{THAI CHARACTER LO CHULA} \Ligature{/LIG/}{uni0E33}{uni0E4D.left} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \endsetslot \setslot{uni0E2D} \Unicode{0E2D}{THAI CHARACTER O ANG} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E2E} \Unicode{0E2E}{THAI CHARACTER HO NOKHUK} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E2F} \Unicode{0E2F}{THAI CHARACTER PAIYANNOI} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot % 0xD0 | 208 \setslot{uni0E30} \Unicode{0E30}{THAI CHARACTER SARA A} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E31} \Unicode{0E31}{THAI CHARACTER MAI HAN-AKAT} \endsetslot \setslot{uni0E32} \Unicode{0E32}{THAI CHARACTER SARA AA} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E33} \Unicode{0E33}{THAI CHARACTER SARA AM} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E34} \Unicode{0E34}{THAI CHARACTER SARA I} \endsetslot \setslot{uni0E35} \Unicode{0E35}{THAI CHARACTER SARA II} \endsetslot \setslot{uni0E36} \Unicode{0E36}{THAI CHARACTER SARA UE} \endsetslot \setslot{uni0E37} \Unicode{0E37}{THAI CHARACTER SARA UEE} \endsetslot \setslot{uni0E38} \Unicode{0E38}{THAI CHARACTER SARA U} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E39} \Unicode{0E39}{THAI CHARACTER SARA UU} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E3A} \Unicode{0E3A}{THAI CHARACTER PHINTHU} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \skipslots{4} \setslot{uni0E3F} \Unicode{0E3F}{THAI CURRENCY SYMBOL BAHT} \endsetslot % 0xE0 | 224 \setslot{uni0E40} \Unicode{0E40}{THAI CHARACTER SARA E} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E41} \Unicode{0E41}{THAI CHARACTER SARA AE} \Ligature{/LIG/}{uni0E33}{uni0E4D} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E42} \Unicode{0E42}{THAI CHARACTER SARA O} \endsetslot \setslot{uni0E43} \Unicode{0E43}{THAI CHARACTER SARA AI MAIMUAN} \endsetslot \setslot{uni0E44} \Unicode{0E44}{THAI CHARACTER SARA AI MAIMALAI} \endsetslot \setslot{uni0E45} \Unicode{0E45}{THAI CHARACTER LAKKHANGYAO} \endsetslot \setslot{uni0E46} \Unicode{0E46}{THAI CHARACTER MAIYAMOK} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E47} \Unicode{0E47}{THAI CHARACTER MAITAIKHU} \endsetslot \setslot{uni0E48} \Unicode{0E48}{THAI CHARACTER MAI EK} \Ligature{/LIG}{uni0E33}{uni0E32} \endsetslot \setslot{uni0E49} \Unicode{0E49}{THAI CHARACTER MAI THO} \Ligature{/LIG}{uni0E33}{uni0E32} \endsetslot \setslot{uni0E4A} \Unicode{0E4A}{THAI CHARACTER MAI TRI} \Ligature{/LIG}{uni0E33}{uni0E32} \endsetslot \setslot{uni0E4B} \Unicode{0E4B}{THAI CHARACTER MAI CHATTAWA} \Ligature{/LIG}{uni0E33}{uni0E32} \endsetslot \setslot{uni0E4C} \Unicode{0E4C}{THAI CHARACTER THANTHAKHAT} \Ligature{/LIG}{uni0E33}{uni0E32} \endsetslot \setslot{uni0E4D} \Unicode{0E4D}{THAI CHARACTER NIKHAHIT} \Ligature{/LIG}{uni0E33}{uni0E32} \endsetslot \setslot{uni0E4E} \Unicode{0E4E}{THAI CHARACTER YAMAKKAN} \endsetslot \setslot{uni0E4F} \Unicode{0E4F}{THAI CHARACTER FONGMAN} \endsetslot % 0xF0 | 240 \setslot{uni0E50} \Unicode{0E50}{THAI DIGIT ZERO} \endsetslot \setslot{uni0E51} \Unicode{0E51}{THAI DIGIT ONE} \endsetslot \setslot{uni0E52} \Unicode{0E52}{THAI DIGIT TWO} \endsetslot \setslot{uni0E53} \Unicode{0E53}{THAI DIGIT THREE} \endsetslot \setslot{uni0E54} \Unicode{0E54}{THAI DIGIT FOUR} \endsetslot \setslot{uni0E55} \Unicode{0E55}{THAI DIGIT FIVE} \endsetslot \setslot{uni0E56} \Unicode{0E56}{THAI DIGIT SIX} \endsetslot \setslot{uni0E57} \Unicode{0E57}{THAI DIGIT SEVEN} \endsetslot \setslot{uni0E58} \Unicode{0E58}{THAI DIGIT EIGHT} \endsetslot \setslot{uni0E59} \Unicode{0E59}{THAI DIGIT NINE} \endsetslot \setslot{uni0E5A} \Unicode{0E5A}{THAI CHARACTER ANGKHANKHU} \endsetslot \setslot{uni0E5B} \Unicode{0E5B}{THAI CHARACTER KHOMUT} \endsetslot \setslot{uni0E38.low} \comment{A glyph variant of \textunicode{0E38}{THAI CHARACTER SARA U}.} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E39.low} \comment{A glyph variant of \textunicode{0E39}{THAI CHARACTER SARA UU}.} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \setslot{uni0E3A.low} \comment{A glyph variant of \textunicode{0E3A}{THAI CHARACTER PHINTHU}.} \Ligature{/LIG}{uni0E48}{uni0E48.low} \Ligature{/LIG}{uni0E49}{uni0E49.low} \Ligature{/LIG}{uni0E4A}{uni0E4A.low} \Ligature{/LIG}{uni0E4B}{uni0E4B.low} \Ligature{/LIG}{uni0E4C}{uni0E4C.low} \endsetslot \skipslots{1} \begincomment \section{Font Dimensions} \endcomment \setfontdimen{1}{italicslant} \setfontdimen{2}{interword} \setfontdimen{3}{stretchword} \setfontdimen{4}{shrinkword} \setfontdimen{5}{xheight} \setfontdimen{6}{quad} \setfontdimen{7}{extraspace} \endencoding \begin{thebibliography}{9} \bibitem{TUG-Thai} Werner Lemberg: \textit{Thai Fonts}, in \textit{TUGboat}, 21(2):113--120, June 2000. Available online in PDF format as \url{http://tug.org/TUGboat/Articles/tb21-2/tb67lemb.pdf}. \bibitem{AGL} Adobe Systems Incorporated: \textit{Adobe Glyph List}, 2003; \url{http://partners.adobe.com/asn/developer/type/unicodegn.html}. \bibitem{MFbook} Donald E.\ Knuth, Duane Bibby (illustrations): \textit{The \MF book}, Ad\-di\-son--Wes\-ley, 1986; ISBN~0-201-13445-4. \bibitem{Unicode} The Unicode Consortium (editor), \emph{et al.}: \textit{The Unicode Standard, Version 4.0}, Addison Wesley Longman Publisher, 2003; ISBN~0-321-18578-1. Most of the information in this book is also available online at the Unicode consortium website, at \url{http://www.unicode.org/versions/Unicode4.0.1}. \end{thebibliography} \end{document} % end of c90.etx