musings-dontusetex.tex /size: 12 Kb    last modification: 2024-01-16 10:21
1% language=us runpath=texruns:manuals/musings
2
3\startcomponent musings-dontusetex
4
5\environment musings-style
6
7\setupquotation[style=italic]
8
9\startchapter[title={Don't use \TEX !}]
10
11Occasionally I run into a web post that involves \LUATEX\ and it is sometimes
12surprising what nonsense one can read. Now, I normally don't care that much but
13there are cases where I feel that a comment is justified. Partly because I'm one
14of the developers, but also because I'm involved in user groups.
15
16In this particular case the title of a (small) blog post was \quotation {Why I do
17not like luaTeX!} and the website announced itself ambitiously as \quote {DIGITAL
18TYPOGRAPHY NEWS}. Normally I assume that in such a case it is a general site
19about typesetting and that the author has not much experience or insight in the
20already ancient \TEX\ typesetting system. However, the \URL\ is:
21
22\starttyping
23eutypon.gr/e-blog/index.php/2021/02/13/why-i-do-not-like-luatex/
24\stoptyping
25
26which happens to be the Greek User Groups portal. So why do I feel the need to
27reflect on this? Why do I even care? The answer is simple: because user groups
28should inform their (potential) users correctly. Another reason is that I'm
29involved in the program that is disliked, and yet another one is that there is a
30suggestion that language support is bad in \LUATEX, while actually hyphenation
31patterns are very well maintained by Mojca and Arthur who are also actively
32involved in the community around the mentioned engine.
33
34\startplacefigure[location=page,number=no,title={\type {eutypon.gr/e-blog/index.php/2021/02/13/why-i-do-not-like-luatex/}}]
35    \externalfigure
36        [eutypon-gr-e-blog-21-02-13-why-i-do-not-like-luatex.png]
37        [width=\textwidth]
38\stopplacefigure
39
40Let's start with the title. For sure one might not like a specific program, but
41when it involves one of the mainstream \TEX\ engines, it should at least be clear
42that it's a personal opinion. Because no name is mentioned, we can assume that
43this is the opinion of the Greek user group as a whole. The text starts with
44\quotation {Most people speak with good words about luaTeX.} and the \quote {most}
45in that sentence sort of puts the author in a small group, which should trigger
46using a bit more careful title. Now I know a couple of users who use \LUATEX\
47(with \CONTEXT) for typesetting Greek, and we can assume that they are among the
48people who speak those good words: typesetting Greek just works.
49
50More good news is that \quotation {They seem to like things it can do that no
51other TeX derived systrem can do.} This might invite potential users to take a
52closer look at the system, especially because we already know that most people
53are positive. In 2021 one should keep in mind that, although the \LUATEX\ engine
54is around for more than a decade, the level of support can differ per macro
55package which is why \PDFTEX\ is still the most widespread used \TEX\ variant:
56much \TEX\ usage relates to writing (scientific articles) in English so one
57doesn't really need an \UNICODE\ engine. I always say: don't change a good
58working workflow if you have no reason; use what makes you feel comfortable. Only
59use \LUATEX\ if you have a reason. There is plenty of good and positive advice to
60be given.
61
62With \quotation {Personally, I do not care about these features but yesterday a
63friend told me that he wanted to write something in Greek with luaLaTeX.} the
64author steps over his or her personal rejection of the engine and enters the
65help|-|a|-|friend mode. \quotation {And what’s the catch, one may ask. The
66problem is that luaLaTeX does not load any hyphenation patterns but the default
67ones. So one needs to load them.} I'm not sure why this is a catch. It actually
68is a feature. One drawback of the traditional \TEX\ engines is that one needs to
69preload the hyphenation patterns. Before memory was bumped, that often meant
70creating format files for a subset of languages, and when memory became plenty it
71meant preloading dozens of patterns by default. The good news is that in all
72these cases the macro package takes care of that. In the case of \LUATEX\ no
73patterns need to be preloaded so it might even be that \LATEX\ doesn't have any
74preloaded but, not being a user, I didn't check that.
75
76This all makes the next sentence puzzling: \quotation {In TeX one uses a command
77like the follolwing one : \type {\language\l@monogreek}, where \type
78{\l@monogreek} is numerical value assigned to each language contained in the
79format.} Now, I'm no expert on \LATEX\ but I'm pretty sure that the \type {@}
80sign is not a letter by default. I'm also pretty sure that there is some high
81level interface to enable a language, and in the case of \LUATEX\ being used that
82mechanism will load the patterns runtime. I bet it will also deal with making
83sure other language specific properties are set. Therefore the \quotation {This
84is well documented in the TeXbook.} is somewhat weird: original \TEX\ only had
85one language and later versions could deal with more, but plain \TEX\ has no
86\type {\l@monogreek} command. It doesn't sound like the best advice to me.
87
88Just to be sure, I unpacked all the archives in the most recent \TEXLIVE\ \DVD\
89and grepped for that command in \type {tex} and \type {sty} files and surprise:
90in the \LATEX\ specific style file \typ {/tex/xelatex/xgreek/xgreek.sty} there is
91a line \typ {\language \l@monogreek \else \HyphenRules{monogreek}\fi} which to me
92looks way to low level for common users to figure out, let alone that it's a file
93for \XETEX\ so bound to a specific engine. Further grepping for \type {{greek}}
94gave hits for \LATEX's babel an there are Greek files under the \type
95{polyglossia} directory so I bet that Arthur (who once told me he was reponsible
96for languages) deals with Greek there. Even I, as a \CONTEXT\ user who never use
97\LATEX\ and only know some things by rumor (like the fact that there is something
98like polyglossia at all) could help a new user with some suggestions of where to
99look, just by googling for a solution. But explicitly using the \type {\language}
100primitive is not one of them. Okay, in \CONTEXT\ the \type {\language [greek]}
101command does something useful, but we're not talking about that package here, if
102only because it relates to \LUATEX\ development, which as we will see later is a
103kind of inner circle.
104
105So, picking up on the blog post, in an attempt to get Greek working in \LATEX\
106the author got online but \quotation {Now despite the fact that I spent a few
107hours searching for information on how to load specific hyphenation patterns, I
108could not find anything!} It might have helped to search for \type {lualatex
109greek} because that gives plenty of hits. And maybe there are even manuals out
110there that explain which of the packages in the \TEX\ tree to load in order to get
111it working. Maybe searching \CTAN\ or \TEXLIVE\ helps too. Maybe other user
112groups have experts who can help out. No matter what you run into, I don't think
113that the average user expects to find a recipe for installing and invoking
114patterns. Just for the record, the \LUATEX\ manual has a whole chapter on
115language support, but again, users can safely assume that the macro package that
116they use hides those details. Actually, if users were supposed to load patterns
117using a unique id, they are likely to end up in the modern Greek versus ancient
118Greek, as well as Greek mixed with English or other languages situations. That
119demands some more in depth knowledge to deal with, in any macro package and with
120any engine. You can add a bit of \UNICODE\ and \UTF-8\ or encodings in the mix
121too. Suggesting to consult the \TEX book is even a bit dangerous because one then
122also ends up in an eight bit universe where font encodings play a role, while
123\LUATEX\ is an \UNICODE\ engine that expects \UTF\ and uses \OPENTYPE\ fonts.
124And, while languages seem to be a problem for the author and his|/|her friend,
125fonts seem to be an easy deal. In my experience it's more likely that a user runs
126into font issues because modern fonts operate on multiple axis: script, language
127and features.
128
129Maybe the confusion (or at that time accumulated frustration) is best summarized
130by \quotation {Moreover, I could not find any information on how one loads a lua
131package (i.e., some external lua package that is available in the TeX
132installation).} Well, again I'm sure that one can find some information on
133\LATEX\ support sites but as I already said: language support is so basic in a
134macro package that users can use some simple command to enable their favorite
135one. So, when \quotation {People know that they can load a LaTeX package with the
136\type {\usepackage} command but I have no information on how to load lua code.}
137the first part is what matters: \LUA\ files are often part of a package and
138thereby they get loaded by the package, also because often stand|-|alone usage
139makes not much sense.
140
141It is absolutely no problem if someone doesn't like (or maybe even hates)
142\LUATEX, but it's a different matter when we end up in disinformation, and even
143worse in comments that smell like conspiracy: there is an inner circle of
144\LUATEX\ developers and \quotation {Practically, this means that if one is not
145part of the inner circle of luaTeX developers, then she cannot really know what
146is really going on.} Really? Is this how user groups educate their users? There
147are manuals written, plenty of articles published, active mailing lists,
148presentations given, and there is support on platforms like Stack Exchange. And
149most of that (the development of \LUATEX\ included) is done by volunteers in
150their spare time, for free. Of course the groups of core developers are small but
151that is true for any development. History (in the \TEX\ community) has
152demonstrated that this is the only way to make progress at all, simply because
153there are too many different views on matters, and also because the time of
154volunteers is limited. It is the end result what counts and when that is properly
155embedded in the community all is fine. So we have some different engines like
156\TEX, \PDFTEX, \LUATEX, etc., different macro packages, specialized engines like
157those dealing with large \CJK\ fonts, all serving a different audience from the
158same ecosystem. Are these all secretive inner circles with bad intentions to
159confuse users?
160
161The blog post ends with \quotation {And this is exactly the reason why I do not
162like luaTeX.} to which I can only comment that I already long ago decided not to
163waste any time on users who in their comments sound like they were forced to use
164a \TEX\ system (and seem to dislike it, so probably are better off with Microsoft
165Word, but nevertheless like to bark against some specific \TEX\ tree), who
166complain about manuals not realizing that their own contributions might be rather
167minimalistic, maybe even counter productive, or possibly of not much use to
168potential users anyway. I also ignore those who love to brag about the many bugs,
169any small number suits that criterium, without ever mentioning how bugged their
170own stuff is, etc. If your ego grows by disregarding something you don't even
171use, it's fine for me.
172
173So why do I bother writing this? Because I think it is a very bad move and signal
174of a user group to mix personal dislike, whatever the reason is, with informing
175and educating users. If a group is that frustrated with developments, it should
176resolve itself. On the other hand, it fits well in how todays communication
177works: everyone is a specialist, which get confirmed by the fact that many
178publish (also on topics they should stay away from) on the web without fact
179checking, and where likes and page hits are interpreted as a confirmation of
180one's expertise. Even for the \TEX\ community there seems to be no escaping from
181this.
182
183The objectives of \TEX\ user groups shift, simply because users can find
184information and help online instead of at meetings and in journals. The physical
185\TEX\ distributions get replaced by fast downloads but they are definitely under
186control of able packagers. Maybe a new task of user groups is to act as guardian
187against disinformation. Of course one then has to run into these nonsense blogs
188(or comments on forums) and such but that can partly be solved by a mechanism
189where readers can report this. A user group can then try to make its own
190information better. However, we have a problem when user groups themselves are
191the source of disinformation. I see no easy way out of this. We can only hope
192that such a port drowns in the ocean of information that is already out there to
193confuse users. In the end a good and able \TEX\ friend is all you need to get
194going, right? The blog post leaves it open if the Greek text ever got typeset
195well. If not, there's always \CONTEXT\ to consider, but then one eventually ends
196up with \LUAMETATEX\ which might work on the author as another \quotation {\nl
197rode lap op een stier} as we say in Dutch.
198
199\stopchapter
200
201\stoptext
202