From: schoepf@sc.ZIB-Berlin.DE (Rainer Schoepf)
Newsgroups: comp.text.tex
Subject: Re: What is the New Font Selection Scheme?
Date: Wed, 15 Apr 92 11:47:56 +0200
Organization: Konrad-Zuse-Zentrum fuer Informationstechnik Berlin
X-Gateway-Source-Info: Mailing List

"Daniel H. Luecking" <DL24794@UAFSYSB.UARK.EDU> asked:

   I know that there is something called a New Font Selection Scheme and that
   I have to get the latest LaTeX release to use it. What I want to know is

   2. How does the scheme work, and what is the advantage of using it?

It would need a long explanation to describe the inner workings of
NFSS. Therefore I'll just say something about the basic design
principles:

a) Describe a font in terms of parameters as traditional printers do.

   This means that in NFSS you select a font by giving four
   parameters:
    - family   (e.g. computer modern roman or computer modern sans serif)
    - series   (this is weight and width of the font, like bold, bold
                extended, light)
    - shape    (e.g. italic)
    - size
   For example, you could say: I want a cm sans serif font, bold,
   italic in some size.

b) Make math fonts independent of text fonts.

   Actually, they always were. But LaTeX followed the decision taken
   for plain TeX, namely to make \rm a switch both for text and math.
   NFSS allows you to do this separately (but doesn't force you, see
   below).

c) Allow dynamic loading of fonts at runtime.

   In original LaTeX, a lot of fonts have to be loaded when a format
   file is created. The reason for this is that all math fonts that
   might be needed at some time have to be present. NFSS allows you to
   dynamically load any number of fonts (as long as you don't overflow
   TeX's font memory, of course), so only those are loaded that are
   necessary. The absolute minimum of fonts to be preloaded at dump
   time is five; and this is only since LaTeX itself needs these five
   fonts at that time.

   Note that you can even dynamically specify what fonts you want; so
   you can just tell the NFSS that you want to use some special
   PostScript font that is built into your printer and off you go,
   with everything working as expected, i.e., automatic size changes,
   switching to bold/italic when you write \bf/\it, or whatever.

When we wrote the LaTeX interface, we decided to offer two choices:

- the so-called oldlfont option:
  This makes NFSS under LaTeX behave like before, i.e. without NFSS.
  \rm switches to cmr in text and in math.

- the so-called newlfont option:
  This separates text and math font selection. You have to write \rm
  in text, and \mathrm{<character>} in math. But if you don't like
  this, you can define \mathrm to switch to another typeface instead
  of taking an argument.

The second option was made the basis for the AMS-LaTeX font selection
interface.

   1. If someone sends me a LaTeX document (the .tex file) that uses NFSS
      can I print it without the latest version? I guess this depends on the
      answer to the next question...

There are two versions of NFSS in general distribution: One dated
about June 1990, and one from the end of 1991. These are functionally
the same, but the latter is made for the update of LaTeX that came out
in December 1991. This LaTeX update has some internal changes that
make it easier to interface with NFSS.

The only combination that will not work correctly is the older version
of NFSS together with a LaTeX dated Dec91 or later.

There is one caveat that applies to LaTeX documents that are written
for the OLD scheme: some of them use special styles for special fonts
(pslatex, times.sty for PostScript, etc.). These special styles will
not work under the NFSS. But there is now a large collection of style
files that were written for NFSS, among which:

- amsfonts.sty, as distributed by the American Mathematical Society to
  give access to the AMSFONTS set.

- the so-called psnfss package, written by Sebastian Rathz, to give
  access to PostScript fonts. To my knowledge, this is the best and most
  complete method to use PostScript fonts.

   3. Is there any connection between this new scheme and the upgrade to TeX 3?
      or are they independent developments? What about the recent upgrade to
      plain.tex?

NFSS and TeX3 are independent developments, though use of different
fonts in general benefits from TeX3 and also from the idea of virtual
fonts.

Regarding plain TeX: again, this has nothing to do with NFSS. But
while you're all listening, I should take the opportunity to point out
that there is an interface between NFSS and plain TeX, written by
Wayne Sullivan.

I hope this answers your questions.

Rainer Schoepf