"thai.ldf" breaks "inputenc" by changing catcodes.
Loading "inputenc" after "babel" allows a workaround.
\origin unavailable
\textclass article
\begin_preamble
-\AtBeginDocument{\usepackage{fonts-tlwg}}
+
\end_preamble
\use_default_options true
\maintain_unincluded_children false
\use_microtype false
\use_dash_ligatures true
\graphics default
-\default_output_format default
+\default_output_format pdf2
\output_sync 0
\bibtex_command default
\index_command default
\begin_body
\begin_layout Subsection*
-Thai
+Test workaround for Thai language
\end_layout
\begin_layout Standard
\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 utf8
\fontencoding auto
-\font_roman "lmodern" "FreeSerif"
-\font_sans "default" "FreeSans"
-\font_typewriter "default" "FreeMono"
+\font_roman "lmodern" "Norasi"
+\font_sans "default" "Garuda"
+\font_typewriter "default" "Tlwg Mono"
\font_math "auto" "auto"
\font_default_family default
\use_non_tex_fonts false
\begin_body
\begin_layout Subsection*
-Thai
+Test workaround for Thai language
\end_layout
\begin_layout Standard
\begin_inset Newline newline
\end_inset
-(lösen →
+(lösen
+\begin_inset Formula $→$
+\end_inset
+
+
\begin_inset ERT
status open
\end_inset
-, LÖSEN →
+, LÖSEN
+\begin_inset Formula $→$
+\end_inset
+
+
\begin_inset ERT
status open
export/export/latex/.*(lyx..|xhtml)
# don't test with non-TeX fonts:
-export/export/latex/en-th_(LTH|language-default).*systemF
+#export/export/latex/en-th_(LTH|language-default).*systemF
export/templates/Articles/R_Journal_(dvi3|pdf[45])_systemF
#export/templates/Articles/Kluwer_.*_systemF
-# Babel and fontenc not fails for some supported languages
+# Babel and fontenc fails for some supported languages
# * check BabelPremble definitions in lib/languages
# * fails also due to #11522, see "lyxbugs" below.
export/export/latex/supported-languages_.*_systemF
# See comment in unreliableTests
export/export/latex/uk-babel-date-missing-chars-with-ascii_pdf5_texF
-# Thai
-# babel-thai globally changes catcodes for high-bit chars
-# which prevents parsing of utf8 with vanilla inputenc (utf8x works)
-# see also unreliable.wrong_output and unreliable.varying_versions
-export/export/latex/en-th_utf8_(dvi|pdf[23]?|pdf4_texF)
-# luainputenc fails with TL19:
-export/export/latex/en-th_language-default_(dvi3|pdf5)_texF
-
# ================================================
Sublabel: externalissues
export/templates/Articles/Association_for_Computing_Machinery_pdf[45]_texF
-# Thai
-# Babel-thai globally changes catcodes for high-bit chars
-# which clashes with vanilla inputenc (utf8x and 8-bit input encodings and
-# luainputenc work with TL17 but luainputenc fails with TL19):
-export/export/latex/en-th_language-default_(dvi3|pdf5)_texF
-
Sublabel: wrong_output
######################
# Export does not fail but the resulting document has errors.
export/export/latex/uk-babel-date-missing-chars-with-ascii_.*_texF
export/doc/uk/Intro_.*_texF
-# Thai
-# Babel-thai globally changes catcodes for high-bit chars
-# which prevents parsing of utf8 with vanilla inputenc (utf8x works).
-# see also invertedTests
-export/export/latex/en-th_language-default_(dvi|pdf).?
-export/export/latex/en-th_utf8_(dvi|pdf).*
-#
-# only ASCII characters in DVI (LuaTeX) with non-TeX fonts:
-export/export/latex/en-th_utf8_dvi3_systemF
# LyX issues
# **********
FontEncoding LTH
DateFormats "dd MMMM yyyy|d MMM yyyy|dd/MM/yyyy"
LangCode th_TH
+ # The first workaround requires loading inputenc after babel
+ # (cf. BufferParams.cpp):
PostBabelPreamble
- % Restore \coyright definition corrupted by lthenc.def
- \DeclareRobustCommand{\copyright}{%
- \ifmmode{\nfss@text{\textcopyright}}\else\textcopyright\fi}
- \DeclareTextSymbol{\textcopyright}{LTH}{8}
% Restore catcodes changed by thai.ldf (active characters required for inputenc)
\@tempcnta=161%
\@whilenum\@tempcnta<252\do{%
\catcode\@tempcnta=13
\advance\@tempcnta\@ne
}%
+ % Restore \coyright definition corrupted by lthenc.def
+ \DeclareRobustCommand{\copyright}{%
+ \ifmmode{\nfss@text{\textcopyright}}\else\textcopyright\fi}
+ \DeclareTextSymbol{\textcopyright}{LTH}{8}
+ % set up Thai fonts as substitue for the default families
+ \usepackage{substitutefont}
+ \substitutefont{LTH}{\rmdefault}{norasi}
+ \substitutefont{LTH}{\sfdefault}{garuda}
+ \substitutefont{LTH}{\ttdefault}{ttypist}
EndPostBabelPreamble
- # Fixme: load font package?
- # +1 support for font attributes in thai emphasizing etc.
- # -1 forces ComputerModern as "non-thai" font
- # TODO: set norasi as surrogate font for LTH (substitutefont.sty)
- # PostBabelPreamble
- # \usepackage{fonts-tlwg}
- # EndPostBabelPreamble
End
# not supported by babel
if (features.mustProvide("pmboxdraw"))
os << "\\usepackage{pmboxdraw}\n";
- // FIXME: In any document containing text in Thai language,
- // we must load babel before inputenc (see lib/languages).
// handle inputenc etc.
- writeEncodingPreamble(os, features);
+ // (In documents containing text in Thai language,
+ // we must load inputenc after babel, see lib/languages).
+ if (!contains(features.getBabelPostsettings(), from_ascii("thai.ldf")))
+ writeEncodingPreamble(os, features);
// includeonly
if (!features.runparams().includeall && !included_children_.empty()) {
!lyxrc.language_global_options)) + '\n';
os << features.getBabelPostsettings();
}
+ // In documents containing text in Thai language,
+ // we must load inputenc after babel (see lib/languages).
+ if (contains(features.getBabelPostsettings(), from_ascii("thai.ldf")))
+ writeEncodingPreamble(os, features);
+
if (features.isRequired("bicaption"))
os << "\\usepackage{bicaption}\n";
if (!listings_params.empty()