From 0aa0f6c6a87f4b26e62809f03cdc0f0f17f5e27f Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 18 May 2013 22:26:31 +0000 Subject: babel-thai (18may13) git-svn-id: svn://tug.org/texlive/trunk@30564 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/source/generic/babel-thai/thai.dtx | 914 +++++++++++++++++++++ .../texmf-dist/source/generic/babel-thai/thai.ins | 148 ++++ 2 files changed, 1062 insertions(+) create mode 100644 Master/texmf-dist/source/generic/babel-thai/thai.dtx create mode 100644 Master/texmf-dist/source/generic/babel-thai/thai.ins (limited to 'Master/texmf-dist/source/generic') diff --git a/Master/texmf-dist/source/generic/babel-thai/thai.dtx b/Master/texmf-dist/source/generic/babel-thai/thai.dtx new file mode 100644 index 00000000000..6b30f049d19 --- /dev/null +++ b/Master/texmf-dist/source/generic/babel-thai/thai.dtx @@ -0,0 +1,914 @@ +% \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} +% +%\ProvidesLanguage{thai} +%\fi +%\ProvidesFile{thai.dtx} + [2013/03/31 v1.8 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} +% +%\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.} +% \changes{thai-1.6}{2013/03/12}{Theppitak Karoonboonyanan: +% Fix crash on \cs{\backslash{}renewcommand} when \cs{thainumber} option +% is used with section-less document classes, such as letter.} +% \changes{thai-1.7}{2013/03/13}{Theppitak Karoonboonyanan: +% Limit the scope of emergency stretch within Thai language by using +% \cs{\backslash{}extrasthai} and \cs{\backslash{}noextrasthai}.} +% \changes{thai-1.8}{2013/03/31}{Pruet Boonma: +% Add \Lopt{thaiindentfirst} option to force indentation on section's +% first paragraph.} +% +% \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 paragraph} +% \label{thai-paragraph} +% Generally speaking, Thai paragraph uses the same rule as in English. +% However, there are some differences, such as how to start the paragraph +% in a new chapter or section. +% +% \DescribeEnv{thaiindentfirst} +% As suggested by English writing guideline, the first paragraph in each +% section shall not be indented. However, for Thai language, indenting the +% first paragraph is more popular and widely suggested. The option +% \Lopt{thaiindentfirst} can be used to control this behavior. +% +% \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} +\addto\extrasthai{% + \edef\th@restoreemstretch{\emergencystretch=\the\emergencystretch} + \setlength{\emergencystretch}{0.6em}} +\addto\noextrasthai{\th@restoreemstretch} +% \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{Paragraph} +% This section provides Thai paragarph formating style as described in +% \S\ref{thai-paragraph}. +% +% \subsubsection{\Lopt{thaiindentfirst} option} +% +% If \Lopt{thaiindentfirst} is supplied in the |\usepackage| command, the +% first Thai paragraph in each section will be indented. The other +% paragraphs will behave as default. +% +% \begin{macrocode} +\DeclareOption{thaiindentfirst} {% +% \end{macrocode} +% +% When switching to Thai language, point |\@afterindentfalse| to +% |\@afterindentrue|, so that \LaTeX\ will never indent the first +% paragraph. +% +% \begin{macrocode} + \addto\extrasthai{% + \let\th@afterindentfalse\@afterindentfalse + \let\@afterindentfalse\@afterindenttrue + \@afterindenttrue + } +% \end{macrocode} +% +% When switching out of Thai language, point |\@afterindentfalse| +% back to its original function. +% +% \begin{macrocode} + \addto\noextrasthai{% + \let\@afterindentfalse\th@afterindentfalse + } +} +% \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} +% +% Since |\renewcommand| will fail if the renewed command does not exist, +% and we are redefining counters independently on the document class +% being used, we had better check for the counters' existence before +% redefining them. To do so, we define a helper macro for this. +% +% \begin{macrocode} +\def\@overridecommand#1#2{\ifdefined#1\renewcommand{#1}{#2}\fi} +% \end{macrocode} +% +% Then, set default page numbering to |thainum|, and redefine counters +% to |thainum|. +% +% \begin{macrocode} +\pagenumbering{thainum} +\@overridecommand\theenumi{\@thainum\c@enumi} +\@overridecommand\theenumii{\@thaialph\c@enumii} +%\@overridecommand\theenumiii{\@roman\c@enumiii} +%\@overridecommand\theenumiv{\@Alph\c@enumiv} +\@ifundefined{thechapter}% + {\@overridecommand\thesection{\@thainum\c@section}% + \@overridecommand\thesubsection{\thesection.\@thainum\c@subsection}% + \@overridecommand\thesubsubsection{\thesubsection.\@thainum\c@subsubsection}% + \@overridecommand\theparagraph {\thesubsubsection.\@thainum\c@paragraph}% + \@overridecommand\thesubparagraph {\theparagraph.\@thainum\c@subparagraph}% + \@overridecommand\theequation{\@thainum\c@equation}% + \@overridecommand\thetable{\@thainum\c@table}% + \@overridecommand\thefigure{\@thainum\c@figure}}% + {\@overridecommand\thepart{\@thainum\c@part}% + \@overridecommand\thechapter{\@thainum\c@chapter}% + \@overridecommand\thesection{\thechapter.\@thainum\c@section}% + \@overridecommand\thesubsection{\thesection.\@thainum\c@subsection}% + \@overridecommand\thesubsubsection{\thesubsection.\@thainum\c@subsubsection}% + \@overridecommand\theparagraph {\thesubsubsection.\@thainum\c@paragraph}% + \@overridecommand\thesubparagraph {\theparagraph.\@thainum\c@subparagraph}% + \@overridecommand\theequation% + {\ifnum \c@chapter>\z@ \thechapter.\fi \@thainum\c@equation}% + \@overridecommand \thetable% + {\ifnum \c@chapter>\z@ \thechapter.\fi \@thainum\c@table}% + \@overridecommand \thefigure% + {\ifnum \c@chapter>\z@ \thechapter.\fi \@thainum\c@figure}} +\@overridecommand\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} +% +% \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 diff --git a/Master/texmf-dist/source/generic/babel-thai/thai.ins b/Master/texmf-dist/source/generic/babel-thai/thai.ins new file mode 100644 index 00000000000..a7dc43dde57 --- /dev/null +++ b/Master/texmf-dist/source/generic/babel-thai/thai.ins @@ -0,0 +1,148 @@ +%% +%% This file will generate fast loadable files and documentation +%% driver files from the doc files in this package when run through +%% LaTeX or TeX. +%% +%% Copyright 1989-2005 Johannes L. Braams and any individual authors +%% listed elsewhere in this file. All rights reserved. +%% +%% This file is part of the Babel system. +%% -------------------------------------- +%% +%% 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 2003/12/01 or later. +%% +%% This work has the LPPL maintenance status "maintained". +%% +%% The Current Maintainer of this work is Johannes Braams. +%% +%% The list of all files belonging to the LaTeX base distribution is +%% given in the file `manifest.bbl. See also `legal.bbl' for additional +%% information. +%% +%% The list of derived (unpacked) files belonging to the distribution +%% and covered by LPPL is defined by the unpacking scripts (with +%% extension .ins) which are part of the distribution. +%% +%% --------------- start of docstrip commands ------------------ +%% +\def\filedate{1999/04/11} +\def\batchfile{thai.ins} +\input docstrip.tex + +{\ifx\generate\undefined +\Msg{**********************************************} +\Msg{*} +\Msg{* This installation requires docstrip} +\Msg{* version 2.3c or later.} +\Msg{*} +\Msg{* An older version of docstrip has been input} +\Msg{*} +\Msg{**********************************************} +\errhelp{Move or rename old docstrip.tex.} +\errmessage{Old docstrip in input path} +\batchmode +\csname @@end\endcsname +\fi} + +\declarepreamble\mainpreamble +This is a generated file. + +Copyright 1989-2005 Johannes L. Braams and any individual authors +listed elsewhere in this file. All rights reserved. + +This file was generated from file(s) of the Babel system. +--------------------------------------------------------- + +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 2003/12/01 or later. + +This work has the LPPL maintenance status "maintained". + +The Current Maintainer of this work is Johannes Braams. + +This file may only be distributed together with a copy of the Babel +system. You may however distribute the Babel system without +such generated files. + +The list of all files belonging to the Babel distribution is +given in the file `manifest.bbl'. See also `legal.bbl for additional +information. + +The list of derived (unpacked) files belonging to the distribution +and covered by LPPL is defined by the unpacking scripts (with +extension .ins) which are part of the distribution. +\endpreamble + +\declarepreamble\fdpreamble +This is a generated file. + +Copyright 1989-2005 Johannes L. Braams and any individual authors +listed elsewhere in this file. All rights reserved. + +This file was generated from file(s) of the Babel system. +--------------------------------------------------------- + +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 2003/12/01 or later. + +This work has the LPPL maintenance status "maintained". + +The Current Maintainer of this work is Johannes Braams. + +This file may only be distributed together with a copy of the Babel +system. You may however distribute the Babel system without +such generated files. + +The list of all files belonging to the Babel distribution is +given in the file `manifest.bbl'. See also `legal.bbl for additional +information. + +In particular, permission is granted to customize the declarations in +this file to serve the needs of your installation. + +However, NO PERMISSION is granted to distribute a modified version +of this file under its original name. + +\endpreamble + +\keepsilent + +\usedir{tex/generic/babel} + +\usepreamble\mainpreamble +\generate{\file{thai.ldf}{\from{thai.dtx}{code}} + } +\usepreamble\fdpreamble + +\ifToplevel{ +\Msg{***********************************************************} +\Msg{*} +\Msg{* To finish the installation you have to move the following} +\Msg{* files into a directory searched by TeX:} +\Msg{*} +\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty} +\Msg{*} +\Msg{* To produce the documentation run the files ending with} +\Msg{* '.dtx' and `.fdd' through LaTeX.} +\Msg{*} +\Msg{* Happy TeXing} +\Msg{***********************************************************} +} + +\endinput -- cgit v1.2.3