From b32cf2a4c09291d4cd7a992ecbd8c9454cff5a37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Milde?= Date: Tue, 9 Apr 2019 22:52:31 +0200 Subject: [PATCH] unicodesymbols: support Thai characters. Also update the ctests. --- .../export/latex/en-th_language-default.lyx | 508 ++++++++++++++++++ autotests/export/latex/luainputenc-utf8.lyx | 27 +- .../export/latex/supported-languages.lyx | 40 +- ...1-hebrew_he-thai.lyx => 012-hebrew_he.lyx} | 48 +- .../unicodesymbols/012-hebrew_he_HE8.lyx | 14 +- .../latex/unicodesymbols/031-thai_th.lyx | 145 +++++ .../export/latex/xetex-inputenc-ascii.lyx | 27 +- .../export/latex/xetex-inputenc-utf8.lyx | 27 +- development/autotests/invertedTests | 12 +- lib/unicodesymbols | 91 +++- 10 files changed, 880 insertions(+), 59 deletions(-) create mode 100644 autotests/export/latex/en-th_language-default.lyx rename autotests/export/latex/unicodesymbols/{012-31-hebrew_he-thai.lyx => 012-hebrew_he.lyx} (90%) create mode 100644 autotests/export/latex/unicodesymbols/031-thai_th.lyx diff --git a/autotests/export/latex/en-th_language-default.lyx b/autotests/export/latex/en-th_language-default.lyx new file mode 100644 index 0000000000..2b1c8f8e4f --- /dev/null +++ b/autotests/export/latex/en-th_language-default.lyx @@ -0,0 +1,508 @@ +#LyX 2.4 created this file. For more info see https://www.lyx.org/ +\lyxformat 571 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass article +\begin_preamble +\AtBeginDocument{\usepackage{fonts-tlwg}} +\end_preamble +\use_default_options true +\maintain_unincluded_children false +\language english +\language_package default +\inputencoding auto +\fontencoding auto +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures true +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\float_placement class +\float_alignment class +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry false +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\use_minted 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style english +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tablestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Subsection* +Thai +\end_layout + +\begin_layout Standard +Up to version 2013/03/31 v1.8, Babel’s “thai.ldf” changes character categories + and the definitions for up-/dowcasing of letters (catcode, uccode, lccode) + +\series bold +globally +\series default +. + As a result, some high bit characters come out wrong in the output. +\end_layout + +\begin_layout Standard +For English text, we have (with +\begin_inset Quotes eld +\end_inset + +inputenc=auto +\begin_inset Quotes erd +\end_inset + +): +\end_layout + +\begin_layout Quotation + +\backslash +languagename +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +languagename +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Quotation + +\backslash +inputencodingname +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +inputencodingname +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Quotation + +\backslash +familydefault +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +familydefault +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Quotation + +\backslash +f@encoding +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +makeatletter +\backslash +f@encoding +\backslash +makeatother +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +and the +\emph on +Latin supplement +\emph default + characters are written +\end_layout + +\begin_layout Quotation +A0   ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ® ¯ +\end_layout + +\begin_layout Quotation +B0 ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ +\end_layout + +\begin_layout Quotation +C0 À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï +\end_layout + +\begin_layout Quotation +D0 Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß +\end_layout + +\begin_layout Quotation +E0 à á â ã ä å æ ç è é ê ë ì í î ï +\end_layout + +\begin_layout Quotation +F0 ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ +\end_layout + +\begin_layout Itemize +catcode 11 or 12 means, the characters are directly passed to the font and + come out wrong when the T1 font encoding differs from latin9. +\end_layout + +\begin_layout Itemize +uc/lccode changes prevent up/downcasing of high-bit characters +\begin_inset Newline newline +\end_inset + +(lösen → +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +MakeUppercase{ +\end_layout + +\end_inset + +lösen +\begin_inset ERT +status open + +\begin_layout Plain Layout + +} +\end_layout + +\end_inset + +, LÖSEN → +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +MakeLowercase{ +\end_layout + +\end_inset + +LÖSEN +\begin_inset ERT +status open + +\begin_layout Plain Layout + +} +\end_layout + +\end_inset + +). +\end_layout + +\begin_layout Standard + +\lang thai +Setting the text language to Thai: +\end_layout + +\begin_layout Quotation + +\lang thai + +\backslash +languagename +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +languagename +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Quotation + +\lang thai + +\backslash +inputencodingname +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +inputencodingname +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Quotation + +\lang thai + +\backslash +familydefault +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +familydefault +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Quotation + +\lang thai + +\backslash +f@encoding +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +makeatletter +\backslash +f@encoding +\backslash +makeatother +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard + +\lang thai +All +\emph on +Latin supplement +\emph default + characters are converted to LICR macros by LyX and come out right: +\end_layout + +\begin_layout Quotation + +\lang thai +A0   ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ® ¯ +\end_layout + +\begin_layout Quotation + +\lang thai +B0 ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ +\end_layout + +\begin_layout Quotation + +\lang thai +C0 À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï +\end_layout + +\begin_layout Quotation + +\lang thai +D0 +\begin_inset Note Note +status open + +\begin_layout Plain Layout + +\lang thai +Ð +\end_layout + +\end_inset + + Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý +\begin_inset Note Note +status open + +\begin_layout Plain Layout + +\lang thai +Þ +\end_layout + +\end_inset + + ß +\end_layout + +\begin_layout Quotation + +\lang thai +E0 à á â ã ä å æ ç è é ê ë ì í î ï +\end_layout + +\begin_layout Quotation + +\lang thai +F0 +\begin_inset Note Note +status open + +\begin_layout Plain Layout + +\lang thai +ð +\end_layout + +\end_inset + + ñ ò ó ô õ ö ÷ ø ù ú û ü ý +\begin_inset Note Note +status open + +\begin_layout Plain Layout + +\lang thai +þ +\end_layout + +\end_inset + + ÿ +\end_layout + +\begin_layout Standard +Example text in Thai. + Emphasizing works, if +\begin_inset Quotes eld +\end_inset + +fonts-tlwg +\begin_inset Quotes erd +\end_inset + + is loaded +\series bold +after +\series default +Babel: +\end_layout + +\begin_layout Quote + +\series bold +\lang thai +ภาษาไทย +\series default + หรือ +\emph on +ภาษาไทยกลาง +\emph default + เป็นภาษาราชการและภาษาประจำชาติของประเทศไทย ภาษาไทยเป็นภาษาในกลุ่มภาษาไท + ซึ่งเป็นกลุ่มย่อยของตระกูลภาษาไท-กะได สันนิษฐานว่า ภาษาในตระกูลนี้มีถิ่นกำเนิดจ +ากทางตอนใต้ของประเทศจีน และนักภาษาศาสตร์บางส่วนเสนอว่า ภาษาไทยน่าจะมีความเชื่อมโ +ยงกับตระกูลภาษาออสโตร-เอเชียติก ตระกูลภาษาออสโตรนีเซียน และตระกูลภาษาจีน-ทิเบต +\end_layout + +\end_body +\end_document diff --git a/autotests/export/latex/luainputenc-utf8.lyx b/autotests/export/latex/luainputenc-utf8.lyx index 477ce34e26..4503290417 100644 --- a/autotests/export/latex/luainputenc-utf8.lyx +++ b/autotests/export/latex/luainputenc-utf8.lyx @@ -209,7 +209,7 @@ status open \begin_layout Plain Layout \begin_inset CommandInset include LatexCommand input -filename "unicodesymbols/012-31-hebrew_he-thai.lyx" +filename "unicodesymbols/012-hebrew_he.lyx" literal "false" \end_inset @@ -240,6 +240,31 @@ Error 256 (driver return code) generating output; file 012-hebrew_he_HE8.pdf \end_inset +\end_layout + +\begin_layout Standard +\begin_inset Note Note +status open + +\begin_layout Plain Layout +\begin_inset CommandInset include +LatexCommand input +filename "unicodesymbols/031-thai_th.lyx" +literal "false" + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +Thai sets catcodes for characters in Latin-Supplement block leading to wrong + output there. +\end_layout + +\end_inset + + \end_layout \begin_layout Standard diff --git a/autotests/export/latex/supported-languages.lyx b/autotests/export/latex/supported-languages.lyx index cb9741f8d4..c990a25f1c 100644 --- a/autotests/export/latex/supported-languages.lyx +++ b/autotests/export/latex/supported-languages.lyx @@ -4381,11 +4381,25 @@ LangCode th_TH \end_layout \begin_layout Itemize -The input encoding must support Thai characters. +Non-ASCII characters are not parsed by +\emph on +inputenc +\emph default +because Babel-Thai’s “thai.ldf” changes character categories (catcode) +\series bold +globally +\series default +. +\begin_inset Foot +status collapsed + +\begin_layout Plain Layout +tested with version 1.8 (2013/03/31) \end_layout -\begin_layout Itemize -If the input encoding is set to +\end_inset + + If the input encoding is set to \begin_inset Quotes eld \end_inset @@ -4393,23 +4407,15 @@ language default \begin_inset Quotes erd \end_inset -, some high bit characters are mixed up in the output. -\begin_inset Foot -status collapsed - -\begin_layout Plain Layout -Up to version 2013/03/31 v1.8, Babel’s “thai.ldf” changes character categories - and the definitions for up-/dowcasing of letters (catcode, uccode, lccode) - -\series bold -globally -\series default -. -\end_layout - +, some high bit characters are mixed up in the output, with +\begin_inset Quotes eld \end_inset +utf8 +\begin_inset Quotes erd +\end_inset +, non-ASCII characters (except Thai) are wrong or lead to compilation errors. \end_layout \begin_deeper diff --git a/autotests/export/latex/unicodesymbols/012-31-hebrew_he-thai.lyx b/autotests/export/latex/unicodesymbols/012-hebrew_he.lyx similarity index 90% rename from autotests/export/latex/unicodesymbols/012-31-hebrew_he-thai.lyx rename to autotests/export/latex/unicodesymbols/012-hebrew_he.lyx index a02e1bd3cc..8e83d3af6a 100644 --- a/autotests/export/latex/unicodesymbols/012-31-hebrew_he-thai.lyx +++ b/autotests/export/latex/unicodesymbols/012-hebrew_he.lyx @@ -1,5 +1,5 @@ #LyX 2.4 created this file. For more info see https://www.lyx.org/ -\lyxformat 569 +\lyxformat 571 \begin_document \begin_header \save_transient_properties true @@ -92,10 +92,23 @@ 12) Hebrew \end_layout +\begin_layout Standard +Hebrew text must be set to the +\begin_inset Quotes eld +\end_inset + +hebrew +\begin_inset Quotes erd +\end_inset + + language in order to select the right font encoding (LHE or HE8). + Hebrew 8-bit TeX fonts are not part of TeXLive. +\end_layout + \begin_layout Standard Babel-Hebrew defaults to the legacy font encoding LHE, that only supports the basic Hebrew alphabet. - Hebrew 8-bit fonts are not part of TeXLive. + \end_layout \begin_layout Standard @@ -193,37 +206,6 @@ status open \end_inset -\end_layout - -\begin_layout Subsection* -31 Thai -\end_layout - -\begin_layout Labeling -\labelwidthstring 00.00.0000 -3640 -\begin_inset Branch na -inverted 0 -status open - -\begin_layout Standard -ุ ู ฺ -\end_layout - -\end_inset - - ฿ -\begin_inset Branch na -inverted 0 -status open - -\begin_layout Standard -เ แ -\end_layout - -\end_inset - - \end_layout \end_body diff --git a/autotests/export/latex/unicodesymbols/012-hebrew_he_HE8.lyx b/autotests/export/latex/unicodesymbols/012-hebrew_he_HE8.lyx index 692c256d10..33694d6ecb 100644 --- a/autotests/export/latex/unicodesymbols/012-hebrew_he_HE8.lyx +++ b/autotests/export/latex/unicodesymbols/012-hebrew_he_HE8.lyx @@ -1,5 +1,5 @@ #LyX 2.4 created this file. For more info see https://www.lyx.org/ -\lyxformat 569 +\lyxformat 571 \begin_document \begin_header \save_transient_properties true @@ -92,6 +92,18 @@ 12 Hebrew \end_layout +\begin_layout Standard +Hebrew text must be set to the +\begin_inset Quotes eld +\end_inset + +hebrew +\begin_inset Quotes erd +\end_inset + + language in order to select the right font encoding. +\end_layout + \begin_layout Standard This document uses the nonstandard Hebrew font encoding HE8 that includes additional characters (see Document>Settings>Fonts and >User Preamble). diff --git a/autotests/export/latex/unicodesymbols/031-thai_th.lyx b/autotests/export/latex/unicodesymbols/031-thai_th.lyx new file mode 100644 index 0000000000..00f1def7e7 --- /dev/null +++ b/autotests/export/latex/unicodesymbols/031-thai_th.lyx @@ -0,0 +1,145 @@ +#LyX 2.4 created this file. For more info see https://www.lyx.org/ +\lyxformat 571 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass article +\begin_preamble +\usepackage{textalpha} +\end_preamble +\use_default_options false +\maintain_unincluded_children false +\language english +\language_package default +\inputencoding utf8 +\fontencoding auto +\font_roman "lmodern" "default" +\font_sans "lmss" "default" +\font_typewriter "lmtt" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures false +\graphics default +\default_output_format pdf2 +\output_sync 0 +\bibtex_command default +\index_command default +\float_placement class +\float_alignment class +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry false +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 0 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 0 +\use_minted 0 +\branch na +\selected 0 +\filename_suffix 0 +\color #faf0e6 +\end_branch +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation skip +\defskip medskip +\is_math_indent 0 +\math_numbering_side default +\quotes_style english +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tablestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Subsection* +31 Thai +\end_layout + +\begin_layout Standard +Thai characters require the font encoding (LTH). + Set as (document wide) custom encoding or set Thai text to the +\begin_inset Quotes eld +\end_inset + +thai +\begin_inset Quotes erd +\end_inset + + language. +\end_layout + +\begin_layout Standard + +\lang thai +E00 ก ข ฃ ค ฅ ฆ ง จ ฉ ช ซ ฌ ญ ฎ ฏ +\end_layout + +\begin_layout Standard + +\lang thai +E10 ฐ ฑ ฒ ณ ด ต ถ ท ธ น บ ป ผ ฝ พ ฟ +\end_layout + +\begin_layout Standard + +\lang thai +E20 ภ ม ย ร ฤ ล ฦ ว ศ ษ ส ห ฬ อ ฮ ฯ +\end_layout + +\begin_layout Standard + +\lang thai +E30 วะ วั วา วำ วิ วี วึ วื วุ วู วฺ ฿ +\end_layout + +\begin_layout Standard + +\lang thai +E40 เ แ โ ใ ไ ๅ ๆ ว็ ว่ ว้ ว๊ ว๋ ว์ วํ ว๎ ๏ +\end_layout + +\begin_layout Standard + +\lang thai +E50 ๐ ๑ ๒ ๓ ๔ ๕ ๖ ๗ ๘ ๙ ๚ ๛ +\end_layout + +\end_body +\end_document diff --git a/autotests/export/latex/xetex-inputenc-ascii.lyx b/autotests/export/latex/xetex-inputenc-ascii.lyx index 4dff9d18ea..9ed5333743 100644 --- a/autotests/export/latex/xetex-inputenc-ascii.lyx +++ b/autotests/export/latex/xetex-inputenc-ascii.lyx @@ -195,7 +195,7 @@ status open \begin_layout Plain Layout \begin_inset CommandInset include LatexCommand input -filename "unicodesymbols/012-31-hebrew_he-thai.lyx" +filename "unicodesymbols/012-hebrew_he.lyx" literal "false" \end_inset @@ -227,6 +227,31 @@ Error 256 (driver return code) generating output; file 012-hebrew_he_HE8.pdf \end_inset +\end_layout + +\begin_layout Standard +\begin_inset Note Note +status open + +\begin_layout Plain Layout +\begin_inset CommandInset include +LatexCommand input +filename "unicodesymbols/031-thai_th.lyx" +literal "false" + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +Thai sets catcodes for characters in Latin-Supplement block leading to wrong + output there. +\end_layout + +\end_inset + + \end_layout \begin_layout Standard diff --git a/autotests/export/latex/xetex-inputenc-utf8.lyx b/autotests/export/latex/xetex-inputenc-utf8.lyx index 5db0010479..6eca34fe32 100644 --- a/autotests/export/latex/xetex-inputenc-utf8.lyx +++ b/autotests/export/latex/xetex-inputenc-utf8.lyx @@ -214,7 +214,7 @@ status open \begin_layout Plain Layout \begin_inset CommandInset include LatexCommand input -filename "unicodesymbols/012-31-hebrew_he-thai.lyx" +filename "unicodesymbols/012-hebrew_he.lyx" literal "false" \end_inset @@ -246,6 +246,31 @@ Error 256 (driver return code) generating output; file 012-hebrew_he_HE8.pdf \end_inset +\end_layout + +\begin_layout Standard +\begin_inset Note Note +status open + +\begin_layout Plain Layout +\begin_inset CommandInset include +LatexCommand input +filename "unicodesymbols/031-thai_th.lyx" +literal "false" + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +Thai sets catcodes for characters in Latin-Supplement block leading to wrong + output there. +\end_layout + +\end_inset + + \end_layout \begin_layout Standard diff --git a/development/autotests/invertedTests b/development/autotests/invertedTests index 2d1df5a73c..45ff017c2d 100644 --- a/development/autotests/invertedTests +++ b/development/autotests/invertedTests @@ -110,10 +110,6 @@ export/export/latex/6197-polish-amssymb_pdf._texF # (For some reason, the false positive error is not thrown with PDF (luatex).) export/examples/sr/Modules/Braille_(dvi3|pdf4)_systemF -# Missing 8-bit fonts (see unreliableTests) -# After reinstalling culmus under the TL19 control, it compiles -#export/export/latex/unicodesymbols/012-31-hebrew_he-.*_pdf2 - #9871 LyX sends invalid Unicode to iconv when converting to ASCII # most probably due to BabelPreamble code (language specific headings for # theorems, problems , ... are written in the language's default encoding @@ -315,6 +311,14 @@ export/.*/he/.*_texF # See comment in unreliableTests export/export/latex/uk-babel-date-missing-chars-with-ascii_pdf5_texF +# Missing 8-bit fonts (see unreliableTests) +# After reinstalling culmus under the TL19 control, it compiles +#export/export/latex/unicodesymbols/012-31-hebrew_he-.*_pdf2 + +# Thai with CJK package requires the babel option "thaicjk" instead of "thai". +# see thaifont.txt for setup details. +export/export/latex/unicodesymbols/031-thai_th_(euc-|gbk|jis|utf8-cjk).* + # ================================================ Sublabel: externalissues diff --git a/lib/unicodesymbols b/lib/unicodesymbols index c4f40a6b39..7d9e49b09d 100644 --- a/lib/unicodesymbols +++ b/lib/unicodesymbols @@ -1100,6 +1100,7 @@ # # 12 Hebrew # +# requires font encoding LHE or HE8 ("texthebrew" feature?) # The "nikud" (vowel) signs, shindot, and shindot are combining Unicode # characters. However, LaTeX-Hebrew expects them as postfix characters, not # accent macros (cf. www.cs.tau.ac.il/~stoledo/Bib/Pubs/vowels.pdf). @@ -1163,7 +1164,95 @@ # # 31 Thai # -0x0e3f "\\textbaht" "textcomp" "" # THAI CURRENCY SYMBOL BAHT +# requires font encoding LTH ("textthai" feature?) +# Combining characters are handled by the font. +0x0e01 "\\thaiKoKai" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER KO KAI +0x0e02 "\\thaiKhoKhai" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER KHO KHAI +0x0e03 "\\thaiKhoKhuat" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER KHO KHUAT +0x0e04 "\\thaiKhoKhwai" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER KHO KHWAI +0x0e05 "\\thaiKhoKhon" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER KHO KHON +0x0e06 "\\thaiKhoRakhang" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER KHO RAKHANG +0x0e07 "\\thaiNgoNgu" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER NGO NGU +0x0e08 "\\thaiChoChan" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER CHO CHAN +0x0e09 "\\thaiChoChing" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER CHO CHING +0x0e0a "\\thaiChoChang" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER CHO CHANG +0x0e0b "\\thaiSoSo" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER SO SO +0x0e0c "\\thaiChoChoe" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER CHO CHOE +0x0e0d "\\thaiYoYing" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER YO YING +0x0e0e "\\thaiDoChada" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER DO CHADA +0x0e0f "\\thaiToPatak" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER TO PATAK +0x0e10 "\\thaiThoThan" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER THO THAN +0x0e11 "\\thaiThoNangmontho" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER THO NANGMONTHO +0x0e12 "\\thaiThoPhuthao" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER THO PHUTHAO +0x0e13 "\\thaiNoNen" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER NO NEN +0x0e14 "\\thaiDoDek" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER DO DEK +0x0e15 "\\thaiToTao" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER TO TAO +0x0e16 "\\thaiThoThung" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER THO THUNG +0x0e17 "\\thaiThoThahan" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER THO THAHAN +0x0e18 "\\thaiThoThong" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER THO THONG +0x0e19 "\\thaiNoNu" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER NO NU +0x0e1a "\\thaiBoBaimai" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER BO BAIMAI +0x0e1b "\\thaiPoPla" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER PO PLA +0x0e1c "\\thaiPhoPhung" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER PHO PHUNG +0x0e1d "\\thaiFoFa" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER FO FA +0x0e1e "\\thaiPhoPhan" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER PHO PHAN +0x0e1f "\\thaiFoFan" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER FO FAN +0x0e20 "\\thaiPhoSamphao" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER PHO SAMPHAO +0x0e21 "\\thaiMoMa" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER MO MA +0x0e22 "\\thaiYoYak" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER YO YAK +0x0e23 "\\thaiRoRua" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER RO RUA +0x0e24 "\\thaiRu" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER RU +0x0e25 "\\thaiLoLing" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER LO LING +0x0e26 "\\thaiLu" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER LU +0x0e27 "\\thaiWoWaen" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER WO WAEN +0x0e28 "\\thaiSoSala" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER SO SALA +0x0e29 "\\thaiSoRusi" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER SO RUSI +0x0e2a "\\thaiSoSua" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER SO SUA +0x0e2b "\\thaiHoHip" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER HO HIP +0x0e2c "\\thaiLoChula" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER LO CHULA +0x0e2d "\\thaiOAng" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER O ANG +0x0e2e "\\thaiHoNokhuk" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER HO NOKHUK +0x0e2f "\\thaiPaiyannoi" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER PAIYANNOI +0x0e30 "\\thaiSaraA" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER SARA A +0x0e31 "\\thaiMaiHanakat" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER MAI HAN-AKAT +0x0e32 "\\thaiSaraAa" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER SARA AA +0x0e33 "\\thaiSaraAm" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER SARA AM +0x0e34 "\\thaiSaraI" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER SARA I +0x0e35 "\\thaiSaraIi" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER SARA II +0x0e36 "\\thaiSaraUe" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER SARA UE +0x0e37 "\\thaiSaraUee" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER SARA UEE +0x0e38 "\\thaiSaraU" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER SARA U +0x0e39 "\\thaiSaraUu" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER SARA UU +0x0e3a "\\thaiPhinthu" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER PHINTHU +0x0e3f "\\textbaht" "textcomp" "" # THAI CURRENCY SYMBOL BAHT +0x0e40 "\\thaiSaraE" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER SARA E +0x0e41 "\\thaiSaraAe" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER SARA AE +0x0e42 "\\thaiSaraO" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER SARA O +0x0e43 "\\thaiSaraAiMaimuan" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER SARA AI MAIMUAN +0x0e44 "\\thaiSaraAiMaimalai" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER SARA AI MAIMALAI +0x0e45 "\\thaiLakkhangyao" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER LAKKHANGYAO +0x0e46 "\\thaiMaiyamok" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER MAIYAMOK +0x0e47 "\\thaiMaitaikhu" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER MAITAIKHU +0x0e48 "\\thaiMaiEk" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER MAI EK +0x0e49 "\\thaiMaiTho" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER MAI THO +0x0e4a "\\thaiMaiTri" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER MAI TRI +0x0e4b "\\thaiMaiChattawa" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER MAI CHATTAWA +0x0e4c "\\thaiThanthakhat" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER THANTHAKHAT +0x0e4d "\\thaiNikhahit" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER NIKHAHIT +0x0e4e "\\thaiYamakkan" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER YAMAKKAN +0x0e4f "\\thaiFongman" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER FONGMAN +0x0e50 "\\thaizero" "" "force=utf8;utf8-cjk" "" "" # THAI DIGIT ZERO +0x0e51 "\\thaione" "" "force=utf8;utf8-cjk" "" "" # THAI DIGIT ONE +0x0e52 "\\thaitwo" "" "force=utf8;utf8-cjk" "" "" # THAI DIGIT TWO +0x0e53 "\\thaithree" "" "force=utf8;utf8-cjk" "" "" # THAI DIGIT THREE +0x0e54 "\\thaifour" "" "force=utf8;utf8-cjk" "" "" # THAI DIGIT FOUR +0x0e55 "\\thaifive" "" "force=utf8;utf8-cjk" "" "" # THAI DIGIT FIVE +0x0e56 "\\thaisix" "" "force=utf8;utf8-cjk" "" "" # THAI DIGIT SIX +0x0e57 "\\thaiseven" "" "force=utf8;utf8-cjk" "" "" # THAI DIGIT SEVEN +0x0e58 "\\thaieight" "" "force=utf8;utf8-cjk" "" "" # THAI DIGIT EIGHT +0x0e59 "\\thainine" "" "force=utf8;utf8-cjk" "" "" # THAI DIGIT NINE +0x0e5a "\\thaiAngkhankhu" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER ANGKHANKHU +0x0e5b "\\thaiKhomut" "" "force=utf8;utf8-cjk" "" "" # THAI CHARACTER KHOMUT # # 65 Phonetic Extensions #