commit 02e7bb80d391509ef12811a6443638cad69e3e29
Author: Günter Milde <[email protected]>
Date:   Wed Apr 10 16:05:46 2019 +0200

    Force unicodesymbols conversion with uf8-platex.
    
    Fixes Japanese (platex) documents with text parts in other languages.
---
 .../ja/Multilingual_Typesetting_%28platex%29.lyx   |   86 +++++++-------------
 lib/examples/ja/Welcome.lyx                        |   13 ++-
 src/Encoding.cpp                                   |    8 ++
 3 files changed, 45 insertions(+), 62 deletions(-)

diff --git a/lib/examples/ja/Multilingual_Typesetting_%28platex%29.lyx 
b/lib/examples/ja/Multilingual_Typesetting_%28platex%29.lyx
index fe77924..40bb2ab 100644
--- a/lib/examples/ja/Multilingual_Typesetting_%28platex%29.lyx
+++ b/lib/examples/ja/Multilingual_Typesetting_%28platex%29.lyx
@@ -9,9 +9,9 @@
 \maintain_unincluded_children false
 \language japanese
 \language_package auto
-\inputencoding jis-platex
-\fontencoding OT1
-\font_roman "default" "default"
+\inputencoding utf8-platex
+\fontencoding auto
+\font_roman "lmodern" "default"
 \font_sans "default" "default"
 \font_typewriter "default" "default"
 \font_math "auto" "auto"
@@ -104,8 +104,19 @@ Deutsch: Grüße aus Österreich!
 \end_layout
 
 \begin_layout Standard
-Greek and Cyrillic script use too wide characters (except for force-converted
- letters):
+Greek and Cyrillic Unicode characters are too wide.
+ With Document\SpecialChar menuseparator
+Settings\SpecialChar menuseparator
+Language\SpecialChar menuseparator
+Encoding 
+\begin_inset Quotes eld
+\end_inset
+
+Japanese (platex) (utf8)
+\begin_inset Quotes erd
+\end_inset
+
+ they are converted to LaTeX macros, so that the output matches Latin letters:
 \end_layout
 
 \begin_layout Quotation
@@ -140,80 +151,41 @@ Afrikaans: Good dag minher.
 
 \begin_layout Standard
 
-\lang french
-French: «Bonsoir à vous.»
-\end_layout
-
-\begin_layout Standard
-
-\lang swedish
-Swedish: Hej då.
-\end_layout
-
-\begin_layout Standard
-
 \emph on
-Missing characters with inputenc 
+Missing and wrong characters with 
+\emph default
+Language\SpecialChar menuseparator
+Encoding 
 \begin_inset Quotes eld
 \end_inset
 
-auto
-\begin_inset Quotes erd
-\end_inset
-
- 
-\emph default
-(language default) 
+language default
 \emph on
-and 
-\begin_inset Quotes eld
-\end_inset
 
-utf8-platex
 \begin_inset Quotes erd
 \end_inset
 
 
 \emph default
-: 
+:
 \end_layout
 
 \begin_layout Standard
 
-\lang ngerman
-Deutsch: Grüße aus Österreich! 
-\lang japanese
-
-\begin_inset Note Note
-status open
-
-\begin_layout Plain Layout
-wrong encoding?, (Umlaut not as 
-\backslash
-
-\begin_inset Quotes erd
-\end_inset
-
-{O})
+\lang swedish
+Swedish: Hej då.
 \end_layout
 
-\end_inset
-
+\begin_layout Standard
 
+\lang ngerman
+Deutsch: Grüße aus Österreich! 
 \end_layout
 
 \begin_layout Standard
 
-\emph on
-Wrong characters with inputenc 
-\begin_inset Quotes eld
-\end_inset
-
-auto
-\begin_inset Quotes erd
-\end_inset
-
- (language default):
+\lang french
+French: «Bonsoir à vous.»
 \end_layout
 
 \begin_layout Standard
diff --git a/lib/examples/ja/Welcome.lyx b/lib/examples/ja/Welcome.lyx
index 691f146..21e5fa6 100644
--- a/lib/examples/ja/Welcome.lyx
+++ b/lib/examples/ja/Welcome.lyx
@@ -1,5 +1,5 @@
-#LyX 2.3 created this file. For more info see http://www.lyx.org/
-\lyxformat 544
+#LyX 2.4 created this file. For more info see https://www.lyx.org/
+\lyxformat 572
 \begin_document
 \begin_header
 \save_transient_properties true
@@ -9,9 +9,9 @@
 \maintain_unincluded_children false
 \language japanese
 \language_package auto
-\inputencoding jis-platex
-\fontencoding OT1
-\font_roman "default" "default"
+\inputencoding utf8-platex
+\fontencoding auto
+\font_roman "lmodern" "default"
 \font_sans "default" "default"
 \font_typewriter "default" "default"
 \font_math "auto" "auto"
@@ -28,6 +28,8 @@
 \output_sync 0
 \bibtex_command default
 \index_command default
+\float_placement class
+\float_alignment class
 \paperfontsize default
 \spacing single
 \use_hyperref false
@@ -68,6 +70,7 @@
 \papercolumns 1
 \papersides 1
 \paperpagestyle default
+\tablestyle default
 \tracking_changes false
 \output_changes false
 \html_math_output 0
diff --git a/src/Encoding.cpp b/src/Encoding.cpp
index 750a2ba..321744c 100644
--- a/src/Encoding.cpp
+++ b/src/Encoding.cpp
@@ -192,6 +192,14 @@ bool Encoding::encodable(char_type c) const
 
        if (iconvName_ == "UTF-8" && package_ == none)
                return true;
+       // platex does not load inputenc: force conversion of supported 
characters
+       if (name_ == "utf8-platex"
+           &&  c > 0x007f                 // Latin-1 Supplement
+               && (c < 0x05ff || c > 0x1d00)  // ... Hebrew + Phonetic 
Extensions
+               && (c < 0x2aff || c > 0xfb00)  // ... Supplemental Mathematical 
Operators + Alphabetic...
+               && (c < 0xfb4f || c > 0x1d400) // ...Presentation Forms + 
Mathematical...
+           &&  c < 0x1d7ff)                       // ...Alphanumeric Symbols
+               return false;  
        if (c < start_encodable_ && !isForced(c))
                return true;
        if (encodable_.find(c) != encodable_.end())

Reply via email to