> [...] Between checking .char definitions (which apply to all fonts) > and checking the current font, there should be a check for a > font-specific definition that overrides the symbol defined in that > font. > > This omission makes it impossible to straightforwardly redefine > select symbols in select fonts. (.fschar is meant as a > font-specific symbol definition, but it is only a fallback > mechanism; it cannot hide a symbol in the current font because it is > not checked until after the current font is checked.) > > For instance, one might want to redefine italic parentheses to > instead output roman parentheses (as advised by Robert Bringhurst in > his "Elements of Typographic Style"). This would require mapping > the italic parentheses characters to roman, mapping the bold italic > ones to bold roman, and leaving the roman and bold ones alone. > There does not appear to be any straightforward way to do this under > the current set of requests. > > Am I missing something? Is there a mechanism to override specific > symbols in specific fonts?
You are correct, such a mechanism isn't available. It has never been requested. As a work-around, I suggest that you define a `font environment' that sets up proper `.char' definitions as soon as you enter it. On the other hand, something simple as .char ( \fR(\fP .char ) \fR)\fP .fam T \fIfoo (\,bar\/) baz\fP .fam A \fIfoo (\,bar\/) baz\fP works just fine. Isn't this sufficient? In case you want to follow Bringhurst everywhere, I guess you have to define a `.paren' macro anyways because `\,' and `\/' have no effect within a `.char' definition, IIRC. .de paren . nop \fR(\fP\,\$1\/\fR)\fP .. foo .paren bar baz > (As an aside, the first sentence of the manual excerpt quoted above > is missing a verb; it should probably read "Here are the exact > rules...") Fixed, thanks. I'm quite sure that there are zillions of grammatical bugs in the documentation since I'm not a native speaker. Werner