summaryrefslogtreecommitdiff
path: root/language/thai/thailatex/babel/thai.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'language/thai/thailatex/babel/thai.dtx')
-rw-r--r--language/thai/thailatex/babel/thai.dtx845
1 files changed, 0 insertions, 845 deletions
diff --git a/language/thai/thailatex/babel/thai.dtx b/language/thai/thailatex/babel/thai.dtx
deleted file mode 100644
index 5f8bedfa05..0000000000
--- a/language/thai/thailatex/babel/thai.dtx
+++ /dev/null
@@ -1,845 +0,0 @@
-% \iffalse meta-comment
-%
-% Copyright (C) 1999 National Electronics and Computer Technology Center
-% (NECTEC), Thailand. All rights reserved.
-%
-% It may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3
-% of this license or (at your option) any later version.
-% The latest version of this license is in
-% http://www.latex-project.org/lppl.txt
-% and version 1.3 or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
-%
-% This work has the LPPL maintenance status "maintained".
-%
-% The Current Maintainer of this work is Theppitak Karoonboonyanan.
-%
-% This work consists of the files thai.dtx and thai.ins
-% and the derived file thai.ldf.
-%
-% \fi
-% \CheckSum{272}
-% \iffalse
-% Tell the \LaTeX\ system who we are and write an entry on the
-% transcript.
-%<*dtx>
-\ProvidesFile{thai.dtx}
-%</dtx>
-%<code>\ProvidesLanguage{thai}
-%\fi
-%\ProvidesFile{thai.dtx}
- [2013/01/29 v1.5 Thai support from the babel system]
-%\iffalse
-%% File `thai.dtx'
-%% Thai Language Definition File
-%% Copyright (C) 1999 - 2013
-%% by Surapant Meknavin,
-%% Theppitak Karoonboonyanan (thep at linux.thai.net),
-%% Chanop Silpa-Anan (chanop at debian.org),
-%% Poonlap Veerathanabutr (poonlap at linux.thai.net)
-%% Thai Linux Working Group
-%% http://linux.thai.net/
-%%
-%% Please report errors to: Theppitak Karoonboonyanan
-%% (thep at linux.thai.net)
-%%
-%% This file is part of the babel system, it provides the source
-%% code for the Thai language definition file. The original version
-%% was written by Surapant Meknavin.
-%%
-%% It is currently maintained by Theppitak Karoonboonyanan
-%% (thep at linux.thai.net), Chanop Silpa-Anan (chanop at debian.org)
-%% and Poonlap Veerathanabutr (poonlap at linux.thai.net).
-%
-%<*filedriver>
-\documentclass{ltxdoc}
-\newcommand*\TeXhax{\TeX hax}
-\newcommand*\babel{\textsf{babel}}
-\newcommand*\langvar{$\langle \it lang \rangle$}
-\newcommand*\note[1]{}
-\newcommand*\Lopt[1]{\textsf{#1}}
-\newcommand*\file[1]{\texttt{#1}}
-\begin{document}
- \DocInput{thai.dtx}
-\end{document}
-%</filedriver>
-%\fi
-% \GetFileInfo{thai.dtx}
-%
-% \changes{thai-1.0d}{2000/05/09}{Theppitak Karoonboonyanan:
-% Encoding changed from TIS to LTH, according to TeX convention.
-% Let `norasi' be Thai roman font, `dbttx' Thai sans serif.
-% Correct some Thai translations.}
-% \changes{thai-1.0d}{2001/12/04}{Theppitak Karoonboonyanan:
-% Add checks for \cs{thechapter} existence before redefining
-% digits as Thai.
-% Move thaitoday definitions into thainumber and remove
-% thainumber option.
-% Use \cs{ifcase} instead of nested \cs{if} in \cs{thaitranslate}.
-% Fix wrong encoding in heading for book style (as suggested by Chanop).}
-% \changes{thai-1.0d}{2001/12/04}{Chanop Silpa-Anan:
-% Add thainumber and thaitoday option}
-% \changes{thai-1.0d}{2002/01/16}{Theppitak Karoonboonyanan:
-% Fix extra spaces appearing in \cs{selectlanguage\{thai\}}
-% (as suggested by C. Visavakul)}
-% \changes{thai-1.0d}{2003/01/07}{Poonlap Veerathanabutr:
-% Change `dbttx' to `dbtt'}
-% \changes{thai-1.0d}{2003/02/26}{Theppitak Karoonboonyanan:
-% Run Thai number in part, subsubsection, paragraph,
-% subparagraph also}
-% \changes{thai-1.0d}{2003/06/02}{Chanop Silpa-Anan:
-% Use `garuda' for default Thai sans serif since
-% `dbtt' is still slightly buggy}
-% \changes{thai-1.0d}{2003/08/10}{Theppitak Karoonboonyanan:
-% Fix translation of \cs{prefacename}.
-% Redefine \cs{frontmatter} and \cs{mainmatter} for book class
-% so thainumber option applies to the page numbering styles.
-% (Experimental:) Add initialization of Thai character codes
-% to fix the \cs{MakeUppercase} and \cs{MakeLowercase} problem
-% also comment out the old workarounds.}
-% \changes{thai-1.0d}{2004/02/02}{Poonlap Veerathanabutr:
-% Fix \cs{lccode} and \cs{uccode}}
-% \changes{thai-1.0d}{2004/02/28}{Theppitak Karoonboonyanan:
-% Always use Thai alphabets for appendix (as suggested by K. chakkree01)}
-% \changes{thai-1.0d}{2004/03/04}{Theppitak Karoonboonyanan:
-% Use `pmono' as default Thai ttfamily}
-% \changes{thai-1.0d}{2004/03/06}{Theppitak Karoonboonyanan:
-% Use `garuda' instead of `dbtt' as default Thai sffamily}
-% \changes{thai-1.0d}{2004/03/18}{Theppitak Karoonboonyanan:
-% Move \cs{frontmatter} and \cs{mainmatter} redefinition back under
-% `thainumber' option (wrongly moved along with previous
-% appendix fix)}
-% \changes{thai-1.0d}{2004/04/08}{Theppitak Karoonboonyanan:
-% Borrow code from previous encoding fix to inhibit capitalizing
-% chapters \& sections in book headers. (proposed by P'Joy)}
-% \changes{thai-1.0d}{2004/11/15}{Theppitak Karoonboonyanan:
-% `pmono' is now `ttype'}
-% \changes{thai-1.1}{2006/07/05}{Theppitak Karoonboonyanan:
-% Create `thai.dtx' for documenting and generating `thai.ldf'.
-% Remove unnecessary workarounds for inhibition of capitalization
-% of headers, as the catcodes already do the job.
-% Also remove the mysterious redefinitions of figure and table counters.}
-% \changes{thai-1.2}{2009/07/27}{Theppitak Karoonboonyanan:
-% Re-encode Thai messages with unicode symbolic names, instead of explicit
-% TIS-620 bytes. Adjust documentation to cover UTF-8 support. Make
-% \cs{ttypist} the default typewriter font instead of \cs{ttype}.
-% Drop the obsolete \cs{\backslash{}thai} command.}
-% \changes{thai-1.3}{2011/03/17}{Theppitak Karoonboonyanan:
-% Add \cs{\backslash{}textpali} macro for typesetting Pali text with
-% descender-less Yo Ying and Tho Than. Update translation for
-% \cs{\backslash{}refname}}
-% \changes{thai-1.4}{2011/10/18}{Theppitak Karoonboonyanan:
-% Remove font-specific macros}
-% \changes{thai-1.4a}{2011/11/23}{Theppitak Karoonboonyanan:
-% Revise documentation}
-% \changes{thai-1.4b}{2011/12/16}{Theppitak Karoonboonyanan:
-% Remove extra space in \cs{\backslash{}wbr}. Word spacing is considered
-% suboptimal.}
-% \changes{thai-1.4c}{2011/12/19}{Theppitak Karoonboonyanan:
-% Revise documentation}
-% \changes{thai-1.4d}{2012/02/10}{Theppitak Karoonboonyanan:
-% Revise documentation. Add documentation for Thai line stretching.}
-% \changes{thai-1.5}{2013/01/29}{Theppitak Karoonboonyanan:
-% Add space stretching support.}
-%
-% \section{The Thai language}
-%
-% The file \file{\filename}\footnote{The file described in this section has
-% version number \fileversion\ and was last revised on \filedate. The
-% original author was Surapant Meknavin, and it was composed into
-% \file{\filename} and maintained by Theppitak Karoonboonyanan
-% (\texttt{thep@linux.thai.net}).}
-% defines language-specific macros for Thai language.
-%
-% \subsection{Input encoding}
-%
-% Thai documents supported by this language definition can be encoded in
-% either TIS-620 (ISO/IEC 8859-11) or UTF-8 with the aids of the
-% \texttt{inputenc} package.
-%
-% \DescribeMacro{\thaitext}
-% \DescribeMacro{\latintext}
-% The commands |\thaitext| and |\latintext| can be used to switch to Thai
-% or Latin fonts. These are declarations.
-%
-% \DescribeMacro{\textthai}
-% \DescribeMacro{\textlatin}
-% The commands |\textthai| and |\textlatin| both take one text argument
-% which is then typeset using the requested language settings.
-%
-% \DescribeMacro{\textpali}
-% The command |\textpali| takes one text argument which is then typeset
-% using Thai font, with special shapes for certain characters, such as
-% descender-less Yo Ying and Tho Than, as required by usual Pali-Sanskrit
-% transliteration.
-%
-% \subsection{Word breaks}
-%
-% Thai is written continuously without word delimitors. The word boundary
-% analysis is considered too complicated for rule-based approaches.
-% Most available good-quality word analysis tools employ special matching
-% algorithms against pre-defined dictionaries. Some even use
-% statistics-based contextual analysis to resolve ambiguities. Therefore,
-% no good hyphenation pattern is found to be comparable with those tools
-% yet.
-%
-% \DescribeMacro{\wbr}
-% What provided here for the word boundary problem is the |\wbr| command
-% for separating words. It delimits words without taking physical space,
-% so that the \TeX\ typesetter still wraps lines at word boundary like
-% when it typesets English text.
-%
-% Therefore, one can preprocess their Thai document using Thai word analysis
-% tools which automatically insert the |\wbr| commands between words, such
-% as:
-% \begin{itemize}
-% \item \emph{cttex} by Vuthichai Ampornaramveth
-% \item \emph{swath} by Phaisarn Charoenpornsawat, now maintained by Thai
-% Linux Working Group, which can be downloaded from:\\
-% \texttt{ftp://linux.thai.net/pub/thailinux/software/swath}
-%
-% To compile \emph{swath}, you need \emph{libdatrie} as the
-% dependency, which is provided under the \emph{libthai} project:\\
-% \texttt{ftp://linux.thai.net/pub/thailinux/software/libthai}
-% \end{itemize}
-%
-% \subsection{Thai numbering}
-% \label{thai-numbering}
-%
-% Some certain Thai documents use Thai digits instead of Arabic.
-% And Thai alphabetic numbering is also commonly used for appendices.
-% This file provides a number of numbering styles that can be applied
-% to \LaTeX\ |\pagenumbering| command:
-%
-% \begin{itemize}
-% \item |\thainum| for plain Thai digits
-% \item |\thaibracenum| for Thai digits in parentheses
-% \item |\thaialph| for Thai alphabetic numbering, using a reduced set
-% (with three alphabets skipped: Kho Khuat, Kho Khon and Kho Rakhang)
-% \item |\thaiAlph| for Thai alphabetic numbering, using the full set
-% (with full alphabet set, plus two semi-vowels, Ru and Lu, in the
-% order defined in Thai official dictionary)
-% \end{itemize}
-%
-% \DescribeEnv{thainumber}
-% The above numbering styles can be automatically chosen using the
-% \Lopt{thainumber} option. When this option is supplied to the \babel{}
-% package, Thai numberings will be applied to pages, sections,
-% enumerations, dates, etc.
-%
-% \StopEventually{}
-%
-% \subsection{Thai language definition}
-%
-% The macro |\LdfInit| takes care of preventing file from being
-% loaded more than once, checking the category code of the
-% \texttt{@} sign, etc.
-% \begin{macrocode}
-%<*code>
-\LdfInit\CurrentOption{captions\CurrentOption}
-% \end{macrocode}
-%
-% When this file is read as an option, i.e. by the |\usepackage{babel}|
-% command, \texttt{thai} will be an `unknown' language, in which
-% case we have to make it known. So, we check for the existence of
-% |\l@thai| to see whether we have to do something here.
-%
-% \begin{macrocode}
-\ifx\l@thai\@undefined
- \@nopatterns{thai}
- \adddialect\l@thai0\fi
-% \end{macrocode}
-%
-% \subsubsection{Thai character encoding}
-%
-% In this language definition, we support TIS-620, the national standard
-% 8-bit character encoding, and Unicode by means of \texttt{inputenc}
-% package.
-%
-% The encoding has been described in terms of TIS-620 as \texttt{LTH} in
-% the \file{lthenc.def} file. So, we require it.
-%
-% \begin{macrocode}
-\InputIfFileExists{lthenc.def}%
- {\message{Loading the definitions for the Thai font encoding}}%
- {%
- \errhelp{I can't find the lthenc.def file for the Thai fonts}%
- \errmessage{Since I do not know what the LTH encoding means^^J
- I can't typeset Thai.^^J
- I stop here, while you get a suitable lthenc.def file}\@@end
- }
-% \end{macrocode}
-%
-% The next step consists of defining commands to switch to the Thai
-% language, for users to switch back and forth between languages.
-%
-% \begin{macro}{\thaitext}
-% We define |\thaitext| as a declarative switch to Thai font encoding.
-% \begin{macrocode}
-\DeclareRobustCommand{\thaitext}{%
- \fontencoding{LTH}\selectfont%
- \def\encodingdefault{LTH}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\textthai}
-% This command takes one text argument which is then typeset using Thai font
-% encoding.
-% \begin{macrocode}
-\DeclareRobustCommand{\textthai}[1]{{\thaitext #1}}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsubsection{Pali-Sanskrit Transliteration}
-%
-% Thai script can also be used for writing Pali and Sanskrit. Additional
-% conventions are applied when doing so: (a) Yo Ying and Tho Than must be
-% written without descender; (b) Phinthu is used for marking cluster;
-% (c) Nikhahit is used as a Pali-Sanskrit consonant.
-%
-% (b) is inherently applicable as combining character. So is (c), with
-% an exception for the case in which it is combined over upper vowel
-% (namely, Sara I), where it must be shifted to higher position. Nikhahit
-% shifting is implemented in the ligkern rules with the extra glyph
-% provision in the fonts.
-%
-% What is left here is (a). Yo Ying and Tho Than must be converted to
-% their descender-less variants. The |\textpali| macro is defined
-% for this purpose. Note that |\wbr| commands which are normally inserted
-% by automatic tools are ignored here, as most of such tools are not
-% designed for Pali/Sanskrit. Besides, Pali/Sanskrit is already space
-% delimited.
-%
-% \begin{macro}{\textpali}
-% This command converts all Yo Ying and Tho Than in its argument to
-% their descender-less variations.
-% \begin{macrocode}
-\DeclareRobustCommand{\textpali}[1]{%
- \begingroup
- \def\thaiYoYing{\textYoYingPali{}}%
- \def\thaiThoThan{\textThoThanPali{}}%
- \def\wbr{}%
- \scantokens\expandafter{#1}\relax
- \endgroup
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsubsection{Hyphenation}
-%
-% We define |\thaihyphenmins| macro for hyphenation parameters. This is
-% one of the five macros required by \babel{}.
-%
-% \begin{macro}{\thaihyphenmins}
-% This macro is used to store the correct values of the hyphenation
-% parameters |\lefthyphenmin| and |\righthyphenmin|. They are set to 11.
-% \changes{thai-1.1}{2006/07/02}{Theppitak Karoonboonyanan:
-% Now use \cs{providehyphenmins} to provide a default value}
-% \begin{macrocode}
-\providehyphenmins{thai}{11}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsubsection{Captions translation}
-%
-% We define |\captionsthai| macro for translations of strings. This is
-% one of the five macros required by \babel{}.
-%
-% \begin{macro}{\captionsthai}
-% The macro |\captionsthai| defines all strings used in the four
-% standard documentclasses provided with \LaTeX.
-% \begin{macrocode}
-\addto\captionsthai{%
- \def\prefacename{\thaiKhoKhwai\thaiSaraAm\thaiNoNu\thaiSaraAm}%
- \def\refname{\thaiSaraE\thaiOAng\thaiKoKai\thaiSoSua\thaiSaraAa\thaiRoRua%
- \thaiOAng\thaiMaiTho\thaiSaraAa\thaiNgoNgu%
- \thaiOAng\thaiSaraI\thaiNgoNgu}%
- \def\abstractname{\thaiBoBaimai\thaiThoThahan%
- \thaiKhoKhwai\thaiMaiHanakat\thaiDoDek%
- \thaiYoYak\thaiMaiEk\thaiOAng}%
- \def\bibname{\thaiBoBaimai\thaiRoRua\thaiRoRua\thaiNoNen\thaiSaraAa%
- \thaiNoNu\thaiSaraU\thaiKoKai\thaiRoRua\thaiMoMa}%
- \def\chaptername{\thaiBoBaimai\thaiThoThahan%
- \thaiThoThahan\thaiSaraIi\thaiMaiEk}%
- \def\appendixname{\thaiPhoSamphao\thaiSaraAa\thaiKhoKhwai%
- \thaiPhoPhung\thaiNoNu\thaiWoWaen\thaiKoKai}%
- \def\contentsname{\thaiSoSua\thaiSaraAa\thaiRoRua%
- \thaiBoBaimai\thaiMaiHanakat\thaiYoYing}%
- \def\listfigurename{\thaiSoSua\thaiSaraAa\thaiRoRua%
- \thaiBoBaimai\thaiMaiHanakat\thaiYoYing%
- \thaiRoRua\thaiSaraUu\thaiPoPla}%
- \def\listtablename{\thaiSoSua\thaiSaraAa\thaiRoRua%
- \thaiBoBaimai\thaiMaiHanakat\thaiYoYing%
- \thaiToTao\thaiSaraAa\thaiRoRua\thaiSaraAa\thaiNgoNgu}%
- \def\indexname{\thaiDoDek\thaiRoRua\thaiRoRua\thaiChoChang%
- \thaiNoNu\thaiSaraIi}%
- \def\figurename{\thaiRoRua\thaiSaraUu\thaiPoPla%
- \thaiThoThahan\thaiSaraIi\thaiMaiEk}%
- \def\tablename{\thaiToTao\thaiSaraAa\thaiRoRua\thaiSaraAa\thaiNgoNgu%
- \thaiThoThahan\thaiSaraIi\thaiMaiEk}%
- \def\partname{\thaiPhoSamphao\thaiSaraAa\thaiKhoKhwai}%
- \def\enclname{\thaiSoSua\thaiSaraI\thaiMaiEk\thaiNgoNgu%
- \thaiThoThahan\thaiSaraIi\thaiMaiEk%
- \thaiSaraAe\thaiNoNu\thaiBoBaimai%
- \thaiMoMa\thaiSaraAa%
- \thaiDoDek\thaiMaiTho\thaiWoWaen\thaiYoYak}%
- \def\ccname{\thaiSoSua\thaiSaraAm\thaiSaraE\thaiNoNu\thaiSaraAa%
- \thaiThoThung\thaiSaraUe\thaiNgoNgu}%
- \def\headtoname{\thaiSaraE\thaiRoRua\thaiSaraIi\thaiYoYak\thaiNoNu}%
- \def\pagename{\thaiHoHip\thaiNoNu\thaiMaiTho\thaiSaraAa}%
- \def\seename{\thaiDoDek\thaiSaraUu}%
- \def\alsoname{\thaiDoDek\thaiSaraUu%
- \thaiSaraE\thaiPhoPhan\thaiSaraI\thaiMaiEk\thaiMoMa%
- \thaiSaraE\thaiToTao\thaiSaraI\thaiMoMa}%
- \def\proofname{\thaiPhoPhan\thaiSaraI%
- \thaiSoSua\thaiSaraUu\thaiChoChan\thaiNoNu\thaiThanthakhat}%
- }
-% \end{macrocode}
-% \end{macro}
-%
-% \subsubsection{Date}
-%
-% Here we define |\datethai| macro for Thai date format. This is
-% one of the five macros required by \babel{}.
-%
-% First, let's define the months in Thai.
-%
-% \begin{macrocode}
-\def\th@month{%
- \ifcase\month\or
- \thaiMoMa\thaiKoKai\thaiRoRua\thaiSaraAa\thaiKhoKhwai\thaiMoMa \or
- \thaiKoKai\thaiSaraU\thaiMoMa\thaiPhoSamphao\thaiSaraAa%
- \thaiPhoPhan\thaiMaiHanakat\thaiNoNu\thaiThoThong\thaiThanthakhat \or
- \thaiMoMa\thaiSaraIi\thaiNoNu\thaiSaraAa\thaiKhoKhwai\thaiMoMa \or
- \thaiSaraE\thaiMoMa\thaiSoRusi\thaiSaraAa\thaiYoYak\thaiNoNu \or
- \thaiPhoPhan\thaiRu\thaiSoRusi\thaiPhoSamphao\thaiSaraAa%
- \thaiKhoKhwai\thaiMoMa \or
- \thaiMoMa\thaiSaraI\thaiThoThung\thaiSaraU\thaiNoNu\thaiSaraAa%
- \thaiYoYak\thaiNoNu \or
- \thaiKoKai\thaiRoRua\thaiKoKai\thaiDoChada\thaiSaraAa%
- \thaiKhoKhwai\thaiMoMa \or
- \thaiSoSua\thaiSaraI\thaiNgoNgu\thaiHoHip\thaiSaraAa%
- \thaiKhoKhwai\thaiMoMa \or
- \thaiKoKai\thaiMaiHanakat\thaiNoNu\thaiYoYak\thaiSaraAa%
- \thaiYoYak\thaiNoNu \or
- \thaiToTao\thaiSaraU\thaiLoLing\thaiSaraAa\thaiKhoKhwai\thaiMoMa \or
- \thaiPhoPhan\thaiRu\thaiSoSala\thaiChoChan\thaiSaraI\thaiKoKai\thaiSaraAa%
- \thaiYoYak\thaiNoNu \or
- \thaiThoThong\thaiMaiHanakat\thaiNoNu\thaiWoWaen\thaiSaraAa%
- \thaiKhoKhwai\thaiMoMa
- \fi}
-% \end{macrocode}
-%
-% Thai official calendar uses Buddhist Era, the era whose start is marked
-% by Buddha's entry into Parinirvana. In original form, it is a lunar
-% calendar. But in Thai contemporary calendar, it is synchronized to
-% Gregorian calendar, with offset of 543 years back.
-%
-% \begin{macrocode}
-\newcount\th@year
-\th@year=\year
-\advance\th@year by 543
-% \end{macrocode}
-%
-% Then, we come to the |\datethai| macro.
-%
-% \begin{macro}{\datethai}
-% Thai date format is in the day-month-year order, using Buddhist Era.
-% \begin{macrocode}
-\def\datethai{%
- \def\today{\number\day \space \th@month\space %
- \thaiPhoPhan.\thaiSoSala.~\number\th@year}}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsubsection{Extra definitions for language switching}
-%
-% Then, the last two macros required by \babel{} are |\extrasthai| and
-% |\noextrasthai| containing extra definitions needed for Thai language
-% upon switching to and out of it, respectively.
-%
-% \begin{macrocode}
-\addto\extrasthai{\thaitext}
-\addto\noextrasthai{\latintext}
-% \end{macrocode}
-%
-% \subsection{Word break support}
-%
-% As Thai script is written continuously without word delimitors, we define
-% |\wbr| command to mark word boundaries without taking space, so that
-% \TeX typesetter can wrap Thai lines at proper positions.
-%
-% \begin{macrocode}
-\def\wbr{\hskip0pt\relax}
-% \end{macrocode}
-%
-% \subsection{Space stretching}
-%
-% Since ordinary Thai text contains fewer spaces than English,
-% the \TeX{} justification is stressed with fewer places to stretch
-% to make the line reach the right margin. This usually ends up with
-% overfull lines when \TeX{} decides to include the next word to fill
-% the space, instead of trying to manipulate spacing with appropriate
-% amount of text. Possible solutions to this problem include:
-% \begin{itemize}
-% \item \emph{Use letter spacing.} This is a common practice in Thai
-% publishing. However, \TeX{} does not allow this, probably not to
-% shag sheep.\footnote{\emph{``Men who would letterspace blackletter
-% would shag sheep'' --- Frederick Goudy.}}
-% \item \emph{Allow stretching between words.} This used to be a simple
-% hack in an old version of this module, until it was finally
-% dropped in version 1.4b, as it was considered suboptimal.
-% \item \emph{Allow more space stretching.} This can be more acceptable,
-% compared to the ragged right margin. And it is what we do here.
-% \end{itemize}
-%
-% \begin{macrocode}
-\setlength{\emergencystretch}{0.6em}
-% \end{macrocode}
-%
-% \subsection{Line spacing}
-%
-% Due to multi-level combining character stacking, Thai text lines
-% can occupy more vertical space than English. To prevent overlapping,
-% \TeX{} allocates more height for lines with combining characters
-% but not for those without. This can cause irregular line spacing.
-% To avoid this problem, we need to stretch the line spacing.
-%
-% \begin{macrocode}
-\renewcommand{\baselinestretch}{1.2}
-% \end{macrocode}
-%
-% \subsection{Thai numbering support}
-%
-% This section provides Thai numbering styles as described in
-% \S\ref{thai-numbering}: |\thainum|, |\thaibracenum|, |\thaialph| and
-% |\thaiAlph|.
-%
-% First, we define a macro for translating decimal digits into Thai digits.
-%
-% \begin{macro}{\thaitranslate}
-% The |\thaitranslate| macro determines decimal digits in the argument and
-% convert them to Thai digit one by one, until the `|@|' terminator is found.
-% \begin{macrocode}
-\def\thaitranslate#1{\ifx @#1%
- \else\ifcase#1
- \thaizero \or \thaione \or \thaitwo \or \thaithree \or \thaifour \or
- \thaifive \or \thaisix \or \thaiseven \or \thaieight \or \thainine
- \else\fi
- \expandafter\thaitranslate
- \fi
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\thainum}
-% The |\thainum| macro is to be used as a numbering style in \LaTeX\
-% |\pagenumbering| command.
-%
-% It takes a counter name and converts its value into Thai digits.
-% In details, it prepends the counter name with `|c@|' to access the counter
-% value, then calls |\@thainum| to convert it into Thai digits.
-%
-% The |\@thainum| macro converts a number into Thai digits. It expands the
-% argument into a number, terminates it with `|@|', and calls
-% |\thaitranslate| to convert it into Thai digits.
-%
-% \begin{macrocode}
-\def\@thainum#1{\expandafter\thaitranslate\number#1@}
-\def\thainum#1{\expandafter\@thainum\csname c@#1\endcsname}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\thaibracenum}
-% Similar to |\thainum|, the |\thaibracenum| macro is to be used as a
-% numbering style in \LaTeX\ |\pagenumbering| command.
-%
-% It provides Thai digits numbering, surrounded by parentheses.
-%
-% \begin{macrocode}
-\def\@thaibracenum#1{(\expandafter\thaitranslate\number#1@)}
-\def\thaibracenum#1{\expandafter\@thaibracenum\csname c@#1\endcsname}
-% \end{macrocode}
-% \end{macro}
-%
-% Now come to Thai alphabetic numbering, beginning with the reduced set.
-%
-% \begin{macro}{\thaialph}
-% The |\thaialph| macro is to be used as a numbering style in \LaTeX\
-% |\pagenumbering| command.
-%
-% It converts a number not greater than 41 into Thai alphabet in the
-% corresponding order in the reduced set. In this set, 3 characters
-% are skipped: Kho Khuat, Kho Khon and Kho Rakhang.
-%
-% \begin{macrocode}
-\def\thaialph#1{\expandafter\@thaialph\csname c@#1\endcsname}
-\def\@thaialph#1{%
- \ifcase#1\or \thaiKoKai\or \thaiKhoKhai\or \thaiKhoKhwai\or \thaiNgoNgu\or
- \thaiChoChan\or \thaiChoChing\or \thaiChoChang\or \thaiSoSo\or
- \thaiChoChoe\or \thaiYoYing\or \thaiDoChada\or \thaiToPatak\or
- \thaiThoThan\or \thaiThoNangmontho\or \thaiThoPhuthao\or \thaiNoNen\or
- \thaiDoDek\or \thaiToTao\or \thaiThoThung\or \thaiThoThahan\or
- \thaiThoThong\or \thaiNoNu\or \thaiBoBaimai\or \thaiPoPla\or
- \thaiPhoPhung\or \thaiFoFa\or \thaiPhoPhan\or \thaiFoFan\or
- \thaiPhoSamphao\or \thaiMoMa\or \thaiYoYak\or \thaiRoRua\or
- \thaiLoLing\or \thaiWoWaen\or \thaiSoSala\or \thaiSoRusi\or
- \thaiSoSua\or \thaiHoHip\or \thaiLoChula\or \thaiOAng\or
- \thaiHoNokhuk\else\@ctrerr\fi}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\thaiAlph}
-% Similar to |\thaialph|, the |\thaiAlph| macro provides Thai alphabetic
-% numbering with full alphabet set in the order defined in Thai official
-% dictionary. So, it supports up to 44 entries.
-%
-% \begin{macrocode}
-\def\thaiAlph#1{\expandafter\@thaiAlph\csname c@#1\endcsname}
-\def\@thaiAlph#1{%
- \ifcase#1\or \thaiKoKai\or \thaiKhoKhai\or \thaiKhoKhuat\or \thaiKhoKhwai\or
- \thaiKhoKhon\or \thaiKhoRakhang\or \thaiNgoNgu\or \thaiChoChan\or
- \thaiChoChing\or \thaiChoChang\or \thaiSoSo\or \thaiChoChoe\or
- \thaiYoYing\or \thaiDoChada\or \thaiToPatak\or \thaiThoThan\or
- \thaiThoNangmontho\or \thaiThoPhuthao\or \thaiNoNen\or \thaiDoDek\or
- \thaiToTao\or \thaiThoThung\or \thaiThoThahan\or \thaiThoThong\or
- \thaiNoNu\or \thaiBoBaimai\or \thaiPoPla\or \thaiPhoPhung\or
- \thaiFoFa\or \thaiPhoPhan\or \thaiFoFan\or \thaiPhoSamphao\or
- \thaiMoMa\or \thaiYoYak\or \thaiRoRua\or \thaiLoLing\or
- \thaiWoWaen\or \thaiSoSala\or \thaiSoRusi\or \thaiSoSua\or
- \thaiHoHip\or \thaiLoChula\or \thaiOAng\or \thaiHoNokhuk\else\@ctrerr\fi}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsubsection{\Lopt{thainumber} option}
-%
-% Not all Thai documents use Thai digits. So, we support this as an
-% option. If \Lopt{thainumber} option is supplied in the |\usepackage|
-% command, Thai digits will be used in all numberings.
-%
-% \begin{macrocode}
-\DeclareOption{thainumber}{
-% \end{macrocode}
-%
-% We need to use the `|@|' character in macro implementations. So, make it
-% a normal charactor.
-%
-% \begin{macrocode}
-\catcode`\@=11
-% \end{macrocode}
-%
-% Then, set default page numbering to |thainum|, and redefine counters
-% to |thainum|.
-%
-% \begin{macrocode}
-\pagenumbering{thainum}
-\renewcommand\theenumi{\@thainum\c@enumi}
-\renewcommand\theenumii{\@thaialph\c@enumii}
-%\renewcommand\theenumiii{\@roman\c@enumiii}
-%\renewcommand\theenumiv{\@Alph\c@enumiv}
-\@ifundefined{thechapter}%
- {\renewcommand\thesection{\@thainum\c@section}%
- \renewcommand\thesubsection{\thesection.\@thainum\c@subsection}%
- \renewcommand\thesubsubsection{\thesubsection.\@thainum\c@subsubsection}%
- \renewcommand\theparagraph {\thesubsubsection.\@thainum\c@paragraph}%
- \renewcommand\thesubparagraph {\theparagraph.\@thainum\c@subparagraph}%
- \renewcommand\theequation{\@thainum\c@equation}%
- \renewcommand\thetable{\@thainum\c@table}%
- \renewcommand\thefigure{\@thainum\c@figure}}%
- {\renewcommand\thepart{\@thainum\c@part}%
- \renewcommand\thechapter{\@thainum\c@chapter}%
- \renewcommand\thesection{\thechapter.\@thainum\c@section}%
- \renewcommand\thesubsection{\thesection.\@thainum\c@subsection}%
- \renewcommand\thesubsubsection{\thesubsection.\@thainum\c@subsubsection}%
- \renewcommand\theparagraph {\thesubsubsection.\@thainum\c@paragraph}%
- \renewcommand\thesubparagraph {\theparagraph.\@thainum\c@subparagraph}%
- \renewcommand\theequation%
- {\ifnum \c@chapter>\z@ \thechapter.\fi \@thainum\c@equation}%
- \renewcommand \thetable%
- {\ifnum \c@chapter>\z@ \thechapter.\fi \@thainum\c@table}%
- \renewcommand \thefigure%
- {\ifnum \c@chapter>\z@ \thechapter.\fi \@thainum\c@figure}}
-\renewcommand\thefootnote{\@thainum\c@footnote}
-% \end{macrocode}
-%
-% For theorems, we support all custom theorem counters at once by
-% redefining |\@thmcounter| macro.
-%
-% \begin{macrocode}
-\def\@thmcounter#1{\noexpand\thainum{#1}}
-% \end{macrocode}
-%
-% In book class, page numberings for frontmatter and mainmatter are
-% different. So, redefine them.
-%
-% \begin{macrocode}
-\@ifclassloaded{book}{%
- % redefine page numbering for frontmatter and mainmatter
- \def\ps@headnum{\let\@mkboth\@gobbletwo
- \def\@oddhead{\reset@font\hfil\thepage\hfil}\let\@oddfoot\@empty
- \let\@evenhead\@oddhead\let\@evenfoot\@empty}
- \let\@ltxfrontmatter\frontmatter
- \renewcommand\frontmatter%
- {\@ltxfrontmatter\pagestyle{headnum}\pagenumbering{thaibracenum}}
- \let\@ltxmainmatter\mainmatter
- \renewcommand\mainmatter%
- {\@ltxmainmatter\pagestyle{headings}\pagenumbering{thainum}}
-}{}
-% \end{macrocode}
-%
-% Redefine Thai date using Thai digits.
-%
-% \begin{macrocode}
-\def\datethai{%
- \def\today{\@thainum\day\space \th@month\space %
- \thaiPhoPhan.\thaiSoSala.~\@thainum\th@year}
-}
-% \end{macrocode}
-%
-% And finish declaration of \Lopt{thainumber} option
-%
-% \begin{macrocode}
-\relax
-}
-% \end{macrocode}
-%
-% Always use thaialph as counter for appendix
-%
-% \begin{macrocode}
-\@ifclassloaded{book}{%
-\renewcommand\appendix{\par
- \setcounter{chapter}{0}%
- \setcounter{section}{0}%
- \gdef\@chapapp{\appendixname}%
- \gdef\thechapter{\@thaialph\c@chapter}}
-}{}
-\@ifclassloaded{report}{%
-\renewcommand\appendix{\par
- \setcounter{chapter}{0}%
- \setcounter{section}{0}%
- \gdef\@chapapp{\appendixname}%
- \gdef\thechapter{\@thaialph\c@chapter}}
-}{}
-\@ifclassloaded{article}{%
-\renewcommand\appendix{\par
- \setcounter{section}{0}%
- \setcounter{subsection}{0}%
- \gdef\thesection{\@thaialph\c@section}}
-}{}
-% \end{macrocode}
-%
-% \subsection{Miscellaneous}
-%
-% Initialize character codes for Thai
-%
-% \begin{macrocode}
-\catcode`\^^a1=11 \lccode`\^^a1=`\^^a1 \uccode`\^^a1=`\^^a1
-\catcode`\^^a2=11 \lccode`\^^a2=`\^^a2 \uccode`\^^a2=`\^^a2
-\catcode`\^^a3=11 \lccode`\^^a3=`\^^a3 \uccode`\^^a3=`\^^a3
-\catcode`\^^a4=11 \lccode`\^^a4=`\^^a4 \uccode`\^^a4=`\^^a4
-\catcode`\^^a5=11 \lccode`\^^a5=`\^^a5 \uccode`\^^a5=`\^^a5
-\catcode`\^^a6=11 \lccode`\^^a6=`\^^a6 \uccode`\^^a6=`\^^a6
-\catcode`\^^a7=11 \lccode`\^^a7=`\^^a7 \uccode`\^^a7=`\^^a7
-\catcode`\^^a8=11 \lccode`\^^a8=`\^^a8 \uccode`\^^a8=`\^^a8
-\catcode`\^^a9=11 \lccode`\^^a9=`\^^a9 \uccode`\^^a9=`\^^a9
-\catcode`\^^aa=11 \lccode`\^^aa=`\^^aa \uccode`\^^aa=`\^^aa
-\catcode`\^^ab=11 \lccode`\^^ab=`\^^ab \uccode`\^^ab=`\^^ab
-\catcode`\^^ac=11 \lccode`\^^ac=`\^^ac \uccode`\^^ac=`\^^ac
-\catcode`\^^ad=11 \lccode`\^^ad=`\^^ad \uccode`\^^ad=`\^^ad
-\catcode`\^^ae=11 \lccode`\^^ae=`\^^ae \uccode`\^^ae=`\^^ae
-\catcode`\^^af=11 \lccode`\^^af=`\^^af \uccode`\^^af=`\^^af
-\catcode`\^^b0=11 \lccode`\^^b0=`\^^b0 \uccode`\^^b0=`\^^b0
-\catcode`\^^b1=11 \lccode`\^^b1=`\^^b1 \uccode`\^^b1=`\^^b1
-\catcode`\^^b2=11 \lccode`\^^b2=`\^^b2 \uccode`\^^b2=`\^^b2
-\catcode`\^^b3=11 \lccode`\^^b3=`\^^b3 \uccode`\^^b3=`\^^b3
-\catcode`\^^b4=11 \lccode`\^^b4=`\^^b4 \uccode`\^^b4=`\^^b4
-\catcode`\^^b5=11 \lccode`\^^b5=`\^^b5 \uccode`\^^b5=`\^^b5
-\catcode`\^^b6=11 \lccode`\^^b6=`\^^b6 \uccode`\^^b6=`\^^b6
-\catcode`\^^b7=11 \lccode`\^^b7=`\^^b7 \uccode`\^^b7=`\^^b7
-\catcode`\^^b8=11 \lccode`\^^b8=`\^^b8 \uccode`\^^b8=`\^^b8
-\catcode`\^^b9=11 \lccode`\^^b9=`\^^b9 \uccode`\^^b9=`\^^b9
-\catcode`\^^ba=11 \lccode`\^^ba=`\^^ba \uccode`\^^ba=`\^^ba
-\catcode`\^^bb=11 \lccode`\^^bb=`\^^bb \uccode`\^^bb=`\^^bb
-\catcode`\^^bc=11 \lccode`\^^bc=`\^^bc \uccode`\^^bc=`\^^bc
-\catcode`\^^bd=11 \lccode`\^^bd=`\^^bd \uccode`\^^bd=`\^^bd
-\catcode`\^^be=11 \lccode`\^^be=`\^^be \uccode`\^^be=`\^^be
-\catcode`\^^bf=11 \lccode`\^^bf=`\^^bf \uccode`\^^bf=`\^^bf
-\catcode`\^^c0=11 \lccode`\^^c0=`\^^c0 \uccode`\^^c0=`\^^c0
-\catcode`\^^c1=11 \lccode`\^^c1=`\^^c1 \uccode`\^^c1=`\^^c1
-\catcode`\^^c2=11 \lccode`\^^c2=`\^^c2 \uccode`\^^c2=`\^^c2
-\catcode`\^^c3=11 \lccode`\^^c3=`\^^c3 \uccode`\^^c3=`\^^c3
-\catcode`\^^c4=11 \lccode`\^^c4=`\^^c4 \uccode`\^^c4=`\^^c4
-\catcode`\^^c5=11 \lccode`\^^c5=`\^^c5 \uccode`\^^c5=`\^^c5
-\catcode`\^^c6=11 \lccode`\^^c6=`\^^c6 \uccode`\^^c6=`\^^c6
-\catcode`\^^c7=11 \lccode`\^^c7=`\^^c7 \uccode`\^^c7=`\^^c7
-\catcode`\^^c8=11 \lccode`\^^c8=`\^^c8 \uccode`\^^c8=`\^^c8
-\catcode`\^^c9=11 \lccode`\^^c9=`\^^c9 \uccode`\^^c9=`\^^c9
-\catcode`\^^ca=11 \lccode`\^^ca=`\^^ca \uccode`\^^ca=`\^^ca
-\catcode`\^^cb=11 \lccode`\^^cb=`\^^cb \uccode`\^^cb=`\^^cb
-\catcode`\^^cc=11 \lccode`\^^cc=`\^^cc \uccode`\^^cc=`\^^cc
-\catcode`\^^cd=11 \lccode`\^^cd=`\^^cd \uccode`\^^cd=`\^^cd
-\catcode`\^^ce=11 \lccode`\^^ce=`\^^ce \uccode`\^^ce=`\^^ce
-\catcode`\^^cf=11 \lccode`\^^cf=`\^^cf \uccode`\^^cf=`\^^cf
-\catcode`\^^d0=11 \lccode`\^^d0=`\^^d0 \uccode`\^^d0=`\^^d0
-\catcode`\^^d1=11 \lccode`\^^d1=`\^^d1 \uccode`\^^d1=`\^^d1
-\catcode`\^^d2=11 \lccode`\^^d2=`\^^d2 \uccode`\^^d2=`\^^d2
-\catcode`\^^d3=11 \lccode`\^^d3=`\^^d3 \uccode`\^^d3=`\^^d3
-\catcode`\^^d4=11 \lccode`\^^d4=`\^^d4 \uccode`\^^d4=`\^^d4
-\catcode`\^^d5=11 \lccode`\^^d5=`\^^d5 \uccode`\^^d5=`\^^d5
-\catcode`\^^d6=11 \lccode`\^^d6=`\^^d6 \uccode`\^^d6=`\^^d6
-\catcode`\^^d7=11 \lccode`\^^d7=`\^^d7 \uccode`\^^d7=`\^^d7
-\catcode`\^^d8=11 \lccode`\^^d8=`\^^d8 \uccode`\^^d8=`\^^d8
-\catcode`\^^d9=11 \lccode`\^^d9=`\^^d9 \uccode`\^^d9=`\^^d9
-\catcode`\^^da=11 \lccode`\^^da=`\^^da \uccode`\^^da=`\^^da
-\catcode`\^^df=12 \lccode`\^^df=`\^^df \uccode`\^^df=`\^^df
-\catcode`\^^e0=11 \lccode`\^^e0=`\^^e0 \uccode`\^^e0=`\^^e0
-\catcode`\^^e1=11 \lccode`\^^e1=`\^^e1 \uccode`\^^e1=`\^^e1
-\catcode`\^^e2=11 \lccode`\^^e2=`\^^e2 \uccode`\^^e2=`\^^e2
-\catcode`\^^e3=11 \lccode`\^^e3=`\^^e3 \uccode`\^^e3=`\^^e3
-\catcode`\^^e4=11 \lccode`\^^e4=`\^^e4 \uccode`\^^e4=`\^^e4
-\catcode`\^^e5=11 \lccode`\^^e5=`\^^e5 \uccode`\^^e5=`\^^e5
-\catcode`\^^e6=11 \lccode`\^^e6=`\^^e6 \uccode`\^^e6=`\^^e6
-\catcode`\^^e7=11 \lccode`\^^e7=`\^^e7 \uccode`\^^e7=`\^^e7
-\catcode`\^^e8=11 \lccode`\^^e8=`\^^e8 \uccode`\^^e8=`\^^e8
-\catcode`\^^e9=11 \lccode`\^^e9=`\^^e9 \uccode`\^^e9=`\^^e9
-\catcode`\^^ea=11 \lccode`\^^ea=`\^^ea \uccode`\^^ea=`\^^ea
-\catcode`\^^eb=11 \lccode`\^^eb=`\^^eb \uccode`\^^eb=`\^^eb
-\catcode`\^^ec=11 \lccode`\^^ec=`\^^ec \uccode`\^^ec=`\^^ec
-\catcode`\^^ed=11 \lccode`\^^ed=`\^^ed \uccode`\^^ed=`\^^ed
-\catcode`\^^ee=11 \lccode`\^^ee=`\^^ee \uccode`\^^ee=`\^^ee
-\catcode`\^^ef=12 \lccode`\^^ef=`\^^ef \uccode`\^^ef=`\^^ef
-\catcode`\^^f0=12 \lccode`\^^f0=`\^^f0 \uccode`\^^f0=`\^^f0
-\catcode`\^^f1=12 \lccode`\^^f1=`\^^f1 \uccode`\^^f1=`\^^f1
-\catcode`\^^f2=12 \lccode`\^^f2=`\^^f2 \uccode`\^^f2=`\^^f2
-\catcode`\^^f3=12 \lccode`\^^f3=`\^^f3 \uccode`\^^f3=`\^^f3
-\catcode`\^^f4=12 \lccode`\^^f4=`\^^f4 \uccode`\^^f4=`\^^f4
-\catcode`\^^f5=12 \lccode`\^^f5=`\^^f5 \uccode`\^^f5=`\^^f5
-\catcode`\^^f6=12 \lccode`\^^f6=`\^^f6 \uccode`\^^f6=`\^^f6
-\catcode`\^^f7=12 \lccode`\^^f7=`\^^f7 \uccode`\^^f7=`\^^f7
-\catcode`\^^f8=12 \lccode`\^^f8=`\^^f8 \uccode`\^^f8=`\^^f8
-\catcode`\^^f9=12 \lccode`\^^f9=`\^^f9 \uccode`\^^f9=`\^^f9
-\catcode`\^^fa=12 \lccode`\^^fa=`\^^fa \uccode`\^^fa=`\^^fa
-\catcode`\^^fb=12 \lccode`\^^fb=`\^^fb \uccode`\^^fb=`\^^fb
-\ldf@finish{\CurrentOption}
-%</code>
-% \end{macrocode}
-%
-%%
-%% \CharacterTable
-%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-%% Digits \0\1\2\3\4\5\6\7\8\9
-%% Exclamation \! Double quote \" Hash (number) \#
-%% Dollar \$ Percent \% Ampersand \&
-%% Acute accent \' Left paren \( Right paren \)
-%% Asterisk \* Plus \+ Comma \,
-%% Minus \- Point \. Solidus \/
-%% Colon \: Semicolon \; Less than \<
-%% Equals \= Greater than \> Question mark \?
-%% Commercial at \@ Left bracket \[ Backslash \\
-%% Right bracket \] Circumflex \^ Underscore \_
-%% Grave accent \` Left brace \{ Vertical bar \|
-%% Right brace \} Tilde \~}
-%%
-\endinput