]> git.lyx.org Git - features.git/commitdiff
Load inputenc after babel with Thai.
authorGünter Milde <milde@lyx.org>
Sat, 27 Apr 2019 14:00:29 +0000 (16:00 +0200)
committerGünter Milde <milde@lyx.org>
Sat, 27 Apr 2019 15:09:29 +0000 (17:09 +0200)
"thai.ldf" breaks "inputenc" by changing catcodes.
Loading "inputenc" after "babel" allows a workaround.

autotests/export/latex/en-th_language-default.lyx
autotests/export/latex/en-th_utf8.lyx
development/autotests/ignoredTests
development/autotests/invertedTests
development/autotests/unreliableTests
lib/languages
src/BufferParams.cpp

index 51035786a4aefcf049a06cf9fcb06448573f5acc..a10f028e50de5bfef6d30db3caa36b02f3c7d58a 100644 (file)
@@ -6,7 +6,7 @@
 \origin unavailable
 \textclass article
 \begin_preamble
-\AtBeginDocument{\usepackage{fonts-tlwg}}
+
 \end_preamble
 \use_default_options true
 \maintain_unincluded_children false
@@ -27,7 +27,7 @@
 \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
@@ -84,7 +84,7 @@
 \begin_body
 
 \begin_layout Subsection*
-Thai
+Test workaround for Thai language
 \end_layout
 
 \begin_layout Standard
index 12958db477bbdf61a82c1bf4698720778c8e37bb..ce9f924e40d2070955388baa66dec6c92f3781e8 100644 (file)
@@ -5,18 +5,15 @@
 \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
@@ -84,7 +81,7 @@
 \begin_body
 
 \begin_layout Subsection*
-Thai
+Test workaround for Thai language
 \end_layout
 
 \begin_layout Standard
@@ -203,7 +200,11 @@ uc/lccode changes prevent up/downcasing of high-bit characters
 \begin_inset Newline newline
 \end_inset
 
-(lösen → 
+(lösen 
+\begin_inset Formula $→$
+\end_inset
+
 \begin_inset ERT
 status open
 
@@ -227,7 +228,11 @@ status open
 
 \end_inset
 
-, LÖSEN → 
+, LÖSEN 
+\begin_inset Formula $→$
+\end_inset
+
 \begin_inset ERT
 status open
 
index dccf88bcfdf525f0c3f8ec3dec28c12ce34b3699..b14e9a220ec0f90c856d9fbb8830fbf1a892f553 100644 (file)
@@ -171,4 +171,4 @@ lyx2lyx/export/latex/.*
 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
index fe176ddfb34dbc00cebfe5241012e73e775780e6..4e7a0a59363f223caffab920d3ec0b90d92aad2c 100644 (file)
@@ -74,7 +74,7 @@ export/templates/Articles/International_Union_of_Crystallography.*_pdf4_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
@@ -332,14 +332,6 @@ export/.*/he/.*_texF
 # 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
index 1787602da2644c851828d393d606cab391079abb..e939e2ca633aff013bc7c65123996aeceaa71a73 100644 (file)
@@ -143,12 +143,6 @@ export/templates/Articles/American_Astronomical_Society_.*
 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.
@@ -173,15 +167,6 @@ export/export/latex/es_auto-legacy_texF
 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
 # **********
index 3358366a4ffe2ea13b8badfb6ca0d83d6c35298e..9e6731f4693d7b43b4111a94ee0bafcf11fc5aae 100644 (file)
@@ -1366,25 +1366,25 @@ Language thai
        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
index 8478f8c3564f7542e4524e8056d99ebce76b0573..8b2afe15ba5888cefbac0418405f10b1afd367f3 100644 (file)
@@ -1801,10 +1801,11 @@ bool BufferParams::writeLaTeX(otexstream & os, LaTeXFeatures & features,
        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()) {
@@ -2288,6 +2289,11 @@ bool BufferParams::writeLaTeX(otexstream & os, LaTeXFeatures & features,
                                          !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()