From d88d5fb97edbc142a5ad5f9fd9da5624c1ad9b2b Mon Sep 17 00:00:00 2001 From: =?utf8?q?G=C3=BCnter=20Milde?= Date: Wed, 10 Apr 2019 16:05:46 +0200 Subject: [PATCH] Force unicodesymbols conversion with uf8-platex. Fixes Japanese (platex) documents with text parts in other languages. --- .../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 fe77924f04..40bb2abe47 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 691f14633c..21e5fa6c1b 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 750a2ba3cd..321744c166 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()) -- 2.39.5