Dear Jürgen, dear LyX developers,

On 2019-03-30, Jürgen Spitzmüller wrote:

> After some more pondering, here is a proposal that, I think, addresses
> my and your concerns:

> * We keep the "auto" functionality as is (selecting the appropriate
> 8bit encoding), but rename it (e.g., to \inputencoding traditional).

Done in 27ba6f282d.

> * We introduce a new default encoding, \inputencoding uni.

Possibly not required, see below.

> * In languages, we keep the 8bit encodings, but rename Encoding to
> TradEncoding, introduce language.tradEncoding() and basically replace
> all current calls to encoding().

Possibly not required, see below.

> * Encoding now defaults to utf8, but it can be set to override this for
> a given language (e.g., Japanese).

All languages supported by Babel now also support "\inputencoding utf8"
(see autotests/export/latex/languages/supported-languages.lyx: changing the
input encoding to utf8 works).

The problematic languages were:

Hebrew: 
  new "unicodesymbols", forced for "utf8" (missing support with inputenc)

Japanese (platex): 
  the combination of "\language japanese" and "\inputencoding utf8" sets
  the buffer input encoding to "utf8-platex".

Thai:
  new "unicodesymbols", forced for "utf8" (missing support with inputenc)



> * \inputencoding uni selects language->encoding().

"uni" can be set to "utf8" for all languages.

A separate setting is only sensible, if there is consensus that 
LyX should default to legacy encodings or utf8x.
This would avoid LICR replacements with Thai/Hebrew and TeX-fonts.
However:

   * Hebrew is preferably used with non-TeX fonts anyway,
   
   * inputenc "utf8" support for Thai and Hebrew will be in CTAN soon,
   
   * "utf8x" clashes with some packages.
   
   * "supported-languages.lyx" revealed some bugs with the automatic
     input encoding switches that would become irrelevant with a
     document-wide input encoding. For mixed-language documents, "utf8"
     is better suited than any of the legacy encodings.


> In the GUI, we get rid of the two radio boxes and add a combo instead
> with
...
> Unicode (Default) is \inputencoding uni and the new default.

Suggestion for Document>Settings>Language:

     Encoding: (x) Unicode (utf8)
               ( ) ASCII
               ( ) [ Legacy language default (mixed) ]

Unicode (utf8) is "utf8".
The third line is a drop-down list. It should start with the special
"auto-legacy" and "auto-legacy-plain" mixed-encodings and then add the
encodings in lib/encodings (except inherit and ASCII).

This would make the three most often used encodings (utf8, ascii, and
auto-legacy) easily available.


> In lyx2lyx, we:

> * convert/revert \inputencoding auto <-> traditional

Done.

> * \inputencoding utf8 or utf8-platex <-> uni (for all languages that
> have that)

Possibly not required, because "uni" can be "utf8" for all languages.

We may add "utf8" -> "utf8-platex" in the back-conversion of Japanese
(platex) documents.


> We can do all this in subsequent steps.

> That way, we don't lose the old functionality, but we make clear that
> we have a new default.

Yes.

Günter

Reply via email to