On 11/26/2008 2:41 AM, Marcin Borkowski wrote:
Dnia Tue, Nov 25, 2008 at 10:30:51PM -0600, Lars Huttar napisał(a):
It makes sense for "italicness" and "serifity" to be independently changeable. What's discouraging to me as a entrant to the whole TeX world (but an experienced programmer) is the (apparently undocumented) redefinition of a well-established control sequence that used to mean "non-italic" to mean something different (maybe "serif" -- I still don't know for sure).
Hi,
and welcome to the TeX world;).
Me not being an experienced programmer, but (some kind) of more or less experienced TeX user, I'd add the following.
I appreciate your time and the explanations, from an experienced TeX user. (To all) please pardon the frustration apparent in my previous email, from a TeX and especially ConTeXt newbie.
It is probably true that plain TeX is weird and "incomplete" in a sense. What \rm means in plain TeX is: "switch to upright, serif font in 10pt size".
This is good to know. However what I'm getting at is not just its concrete definition (implementation) in Plain TeX, but its general intent. The reason I ask that question is this: Knuth makes clear in TeXbook ch. 4 that \rm and other macros are intended to be redefined according to the needs of the book section. Therefore \rm is not intended to remain defined always specifically as "switch to upright, serif font in 10pt size". But it is *not* intended that \rm be defined to mean "reduce the left margin to the dimension provided by the following argument", or even "switch to italic, serif font in 10pt size". Sure you could define \rm to mean anything, but your end users would string you up. Somewhere between those extremes is an intended consistency of meaning for \rm. If it were not so, macro packages would be gibberish, intelligible to the executing processor but intractable for humans. My contention is that the intended "invariant" of \rm semantics, communicated in TeXbook (e.g. exercise 4.2 and the bottom of p. 15), is that of "not italic".
[helpful orientation on the major macro packages snipped]
(and level of frustration), sometimes with LaTeX having more wtf per minute
I had not heard of that metric before. :-)
That's right. I would add one more point: if everyone called the software of ConTeXt quality "beta", then Windows would be pre-alpha and a typical GNU/Linux probably something between alpha and beta.
Except perhaps the documentation. I have yet to find a reference that clearly describes what \rm is to do in ConTeXt. One responder pointed to http://www.pragma-ade.com/general/manuals/cont-eni.pdf. The closest thing to a definition of \rm there that I could find is on p. 111: "The command \rm is used to switch to a roman/serif/regular style,..." These three terms are not explicitly defined; they are given as names of styles in an illustrative table above. One may apparently assume that the meaning "serif" style here actually is intended to mean that the typeface has serifs (not a trivial assumption: see 'regular'). However the examples of serif/regular/roman in the illustrative table are also all non-italic, and the word "regular" in typography usually (as far as I can tell... please enlighten) means "upright" in contrast to italic. Yet apparently \rm does not switch to "regular" (if that means or includes "upright") in ConTeXt.
Sorry if the above sounds too negative. After all, the TeXbook itself does not make the semantics of \rm obvious.
Well, it does, but _not_ in the context of changing sizes/styles/etc...
Again, I think we're talking about two different things: the original macro definition in Plain TeX, vs. the communicated intended invariant meaning over redefinitions of \rm in various "formats" (Knuth's term which I take to mean macro packages or something like that).
However, once you dig deep enough it becomes clear that \rm does mean "switch to a non-italic typeface" in Plain TeX.
I'll stress it again: no. In plain TeX, it means "switch to cmr10 at 10pt", full stop.
See previous comment. But even in plain TeX, "switch to cmr10 at 10pt" *does* include switching to a non-italic typeface, which is what I meant here. I didn't mean that in plain TeX \rm means *only* "switch to a non-italic typeface." Sorry that wasn't clear. And the jolt here with ConTeXt is that the meaning of \rm no longer includes "switch to a non-italic typeface", and that this change is not clearly documented. Lars