[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Behaviour of \latinfamily



>>> Rebecca and Rowland writes:
>>> > Righto (to an extent).  What makes \installfamily record anything?  That
>>> > is, what commands make fontinst store a line to be placed in the fd file?
>>> see these little creatures like
>>> ...
>>> \out_line{
>>> \string\DeclareFontShape{#1}{#2}{\subst_series}{#4}{
>>> <->\csname typ-\orig_series\endcsname\space *~#2/\orig_series/#4
>>> }{}
>>> ...
>>>
>>> they write to the .fd file
>
>> Right.  But Thierry said that the \endinstallfonts command was the
>> command that actually did the writing to the files concerned.  This
>> appears to be not the case.
>
>I think the real story is that all \installfont or \installrawfont
>commands, just append something to a token list, which is initialized
>by \installfonts and evaluated by \endinstallfonts.  Thus all the
>writing to .fd files is defered until the very end of the job.
>
>If you want to be pedantic, you'd have to say that \installfont puts
>something on list, which is later transformed into an .fd file entry,
>when the .fd file is written out.

This model of behaviour makes sense, but fontinst contains this code:

\def\open_out#1{\immediate\openout\out_file=#1 \def\out_filename{#1}}
\def\out_line#1{\immediate\write\out_file{#1}}
\def\out_lline#1{\out_line{\space\space\space#1}}
\def\out_llline#1{\out_lline{\space\space\space#1}}
\def\close_out#1{\immediate\write16{#1~written~on~\out_filename.}
   \immediate\closeout\out_file}

Now, I'm no TeX expert, but my reading of the TeXbook makes me think that
\immediate\write means write the file *now*.  Or is the delay mechanism
somewhere else?

Rowland.