[tex-eplain] boldface greek symbols

Karl Berry karl at freefriends.org
Sun Aug 27 23:18:40 CEST 2023


(Well, Dan just wrote a reply with real examples along these lines, but
I'll send this anyway FWIW.)

First, I suspect that existing plain TeX font packages (there are quite
a few) have already solved this. For instance, this one:
https://www.ctan.org/pkg/font-change

General topic with more: https://www.ctan.org/topic/plain-ext
(I haven't actually tried working with any of them.)


I believe the issue with the bold math italic "sometimes" working is
plain.tex's math character definitions. In order to have \alpha, ...,
\omega, \vartheta, etc., respect \fam, their defns need to be changed to
have class 7 (variable) instead of 0 (ordinary). For instance, plain.tex
says: \mathchardef\vartheta="0123

That initial 0 means an ordinary symbol, and \fam does not apply.
Compare with \Delta:
\mathchardef\Delta="7001

The 7 means the symbol follows \fam. You can read more about this in
The TeXbook, or no doubt any other reasonable plain TeX book. (I expect
that Victor covers it in gory detail in TeX by Topic.)

Here's what Knuth says about bold math italic specifically (it's the
exercise at the top of page 156, if you have the book):

    Assume that the control sequence
    |\bmit| has been defined as an abbreviation for `|\fam=9|'; hence
    `|{\bmit b}|' will give a boldface math italic~|b|. What change to the
    definition of\/ |\alpha| will make |{\bmit\alpha}| produce a
    boldface~alpha?

    \answer |\mathchardef\alpha="710B|. Incidentally, |{\rm\alpha}| will
    then give a spurious result, because character position \hex{0B} of
    roman fonts does not contain an alpha; you should warn
    your users about what characters they are allowed to type under the
    influence of special conventions like ^|\rm|.

I can't undertake the research, or implement a solution, though.  Sorry.
--hope this helps somehow, karl.


More information about the tex-eplain mailing list.