## LATEX-L@LISTSERV.UNI-HEIDELBERG.DE

 Options: Use Forum View Use Monospaced Font Show Text Part by Default Show All Mail Headers Message: [<< First] [< Prev] [Next >] [Last >>] Topic: [<< First] [< Prev] [Next >] [Last >>] Author: [<< First] [< Prev] [Next >] [Last >>]

 Subject: Re: Multilingual Encodings Summary 2.0 From: Lars Hellström <[log in to unmask]> Reply To: Mailing list for the LaTeX3 project <[log in to unmask]> Date: Mon, 19 Feb 2001 17:44:41 +0100 Content-Type: text/plain Parts/Attachments: text/plain (120 lines)
In http://na.uni-tuebingen.de/~oliver/latex/encodings-2.tex, Marcel Oliver
wrote (edited?):

[Section 2]
>\item It is rather hard to make a new font available under LaTeX.
>  Essentially one must create a virtual font which has all the
>  character slots in the places where hyphenation expects them to be.
>
>  FM disagrees.
>
>  Can we have more comments from people who have actually dealt with
>  making fonts available?

I believe what Frank disagreed about here is primarily that it should be a
big problem that, with the current TeX engine, the hyphenation patterns
encoding has to be the same as the font encoding. It certainly is a design
flaw in TeX which should be fixed in its successor, but it is nothing you
cannot live with as a user. Even when you have to use one \language code
for each language+encoding pair you have you don't reach TeX's limit for
the number of different languages, because there are never more than a
handfull of font encodings that are useful for any given language (possibly
with the exception of the a--z only languages, but then you can reuse the
same hyphenation patterns anyway). The problems that exist are more at an
administative level, which means things get more complicated for those that
implement language support in LaTeX, but those are manageable.

[Subsection 3.5]
>Biased judgment: Cross-platform support is probably nothing to worry
>about at this point.  As far as commercial TeX goes: vendors should
>find it easy to port to Omega.  If not, they must have already created
>a significant code fork, and should therefore fall outside our
>consideration.  (Diverging opinions, anyone?)

I'm not so sure the port is that easy. In the case of Textures, the main
extra feature not present in normal TeX seems to be the "flash mode", in
which the text is typeset and shown in a different window as you are typing
it. Something like this has to involve a major rewrite of TeX as a program,
so don't count on them doing it all over again for Omega in the foreseeable
future. (OTOH this never seemed to work satisfactory with LaTeX when I used
Textures back in 95/96; this was a major reason why I switched to OzTeX.
But there are a lot of people who still use Textures, so we can expect that
they will not switch to Omega unless Blue Sky reconstructs it similarly.)

[Section 4:]
>\item Could type a math paper without saying \verb+Schr\"o\-din\-ger+
>  all the time.  (Yes, I know it's easy to get around this, but it
>  requires active intervention on part of the user when it's logically
>  not necessary.)

I don't get this argument. What's your point?

[Still Section 4:]
>\item Availability of different fonts may increase as they would
>  typically not need to be VF re-encoded.
>
>  FM: i guess this is a red herring. you need to provide support for
>  a font in any encoding to make it accessible to a typesetting
>  system. it might be easier, perhaps but in any case it is a onetime
>  effort.''

It's _not_ hard to make a virtual font, provided you use some tool like
fontinst to do all the file format conversions and shuffling numbers around
(without such a tool I can agree it is a nightmare). I certainly found it
much easier to use fontinst "out of the box" than I found babel (although I
may be a bad example as I have now ended up being the maintainer of
fontinst). What has been missing though is the basic support for non-latin
scripts, but there the situation has improved lately with Vladimir
Volovich's t2 package (currently in
CTAN:macros/latex/contrib/supported/t2/) which covers the cyrillic script.

Support for other scripts (even if it is no more than the basic
descriptions of some encoding as an .etx file) is welcome and will be added
to the distribution if only someone contributes it. I suspect a partial
reason noone seems to have done so for the other scripts is that you need
to understand a lot of esoterical matters (many of which are poorly
documented, or at least very hard to find the documentation for, if
documented at all) to develop support for new encodings (whether for LaTeX
or for fontinst) and thus the set of people who are qualified to do it may
in many cases be almost empty. But in any case it is a onetime effort; if
you do it for one font for a script, there's very little work involved in
later doing it for any other font for that script (unless you're a font
freak which absolutely has to produce the very best results with the glyphs
available in the base fonts).

My experience is that the driver map files are troublesome much more often
than the VF files are, but that problem should also become less important,
as fontinst v1.9 can now write the necessary map files for e.g. dvips as
well.

Concerning the appendices:
Appendix A and C really adress the same matter, so they should be merged.
The reason Achim's suggestion is unfeasible is the mere size of the
automaton you would have to implement in TeX's mouth to handle all the
emulation necessary; it would have to completely take over tasks whose
current implementation ranges over about a dozen of the 55 sections
(including index) that comprise TeX (the program).

Most of Appendix B can be removed. With the exception of the JB remark at
the end I don't think it is relevant for the discussion.

Concerning the inputenc problems discussed in Appendix D I don't think the
way to go is to reimplement \inputencoding to select an OCP, due to the
problems this raises with switching encoding inside a paragraph that are
described. If anything, the use of the inputenc package should select an
OCP that does something equivalent to the current active character
mechanism, and then as today the exact meaning of a character should depend
on the current definition of a macro. Although imperfect, this approach
doesn't introduce any new problems, and those who need something better can
always use Unicode instead of the old 8-bit encodings.

Question raised by this: Can OCPs output control sequences, or do they just
produce characters? Can one specify what catcode the characters should have?

Another question regarding OCPs: Is the OCP model general enough to support
a reasonable size OCP that translates UTF-8 to 32-bit Unicode, or is it
necessary to implement the entire translation as a gigantic (2^31 entries)
table?

Lars Hellström