# [NTG-context] cal & calligraphic

Taco Hoekwater taco at elvenkind.com
Sun Dec 4 11:53:38 CET 2005

Hans van der Meer wrote:
> I am confused about the behaviour of \cal and calligraphic.
> In a font where the calligraphic letters are in MathItalic all goes  well.
> But, in a font where the calligraphic letters come from another font  I
> get:
>
>   \definefontsynonym [Calligraphic] [FONT_OTHER_THAN_MathSymbol]

The font "Calligraphic" is not the same as the math alphabet for \cal,
except when the only calligraphic alphabet available is the one in
the math font. The confusion arises because in text mode, \cal is
remapped to the \calligraphic command. (switching to math mode would
be too hard to do reliably at this point).

Two options are possible to sanitize this behaviour.

A.: My guess is you would be less confused if:

in text: \calligraphic{ABC} is ok
in text: {\cal ABC} is ERROR: "missing _ inserted"
in math: $\calligraphic{ABC}$ is ok
in text: ${\cal ABC}$ is math cal alphabet

But suddenly switching the current behaviour to an error message
raises compatibility problems, so that is a no-no.

After some messing about, I came up with a definition of \cal
that implements this (but it is rather ugly):

\def\cal%
{\mathortext
{\fam\purefamily{calligraphic}}
{$\fam\purefamily{calligraphic}% \xdef\calfam{\fontname\textfont\fam}$%
\font\dummy=\calfam \dummy}}

B.: Or there could be:

in text: \calligraphic{ABC} is ok
in text: {\cal ABC} is ok
in math: $\calligraphic{ABC}$ is ok
in text: ${\cal ABC}$ is ok

This needs an even weirder definition of \cal, but it can be
done (note: this trashes a math family completely!):

\def\cal%
{\mathortext
{\hbox{%
\symbolicscaledfont{1}{Calligraphic}%
\global\textfont\nnfam=\thedefinedfont
\symbolicscaledfont{0.7}{Calligraphic}%
\global\scriptfont\nnfam=\thedefinedfont
\symbolicscaledfont{0.5}{Calligraphic}%
\global\scriptscriptfont\nnfam=\thedefinedfont}%
\fam\nnfam }
{\symbolicfont{Calligraphic}}}

Hans, what do you think?

Cheers,
Taco

PS I assume there is a similar problem with the other families:
os (OldStyle), frak (Fraktur), goth (Gothic), bbd (BlackBoard).