[comp.text.tex] Math Fonts for TeX

primer@math.harvard.edu (Jeremy Primer) (01/07/91)

Is anyone using fonts other than Computer Modern to produce good
mathematical output with TeX?  We are running the version of PSLaTeX
which comes with dvips v5.41 and are pleased with what it does--except
in math mode.  We are interested in font combinations or families
which are either public domain or else can legally be purchased for
our Unix server.  We currently have only the standard LaserWriter II
fonts.

If something is good but only legally sold for a PC, that would be
less than ideal, but we do have PC's running TeX and that could
nonetheless be helpful.

I'll summarize replies for the net.
--
Jeremy Primer, Department of Mathematics, 1 Oxford Street, Cambridge MA 02138
primer@math.harvard.edu     ...!harvard!zariski!primer    primer@huma1.bitnet

marcel@cs.caltech.edu (Marcel van der Goot) (01/08/91)

In <PRIMER.91Jan6185623@zariski.harvard.edu> Jeremy Primer
(primer@math.harvard.edu) asks:

> Is anyone using fonts other than Computer Modern to produce good
> mathematical output with TeX?

Yes, Knuth himself:

 AUTHOR       Graham, Ronald L., 1935-
 TITLE        Concrete mathematics : a foundation for computer science / Ronald
                L. Graham, Donald E. Knuth, Oren Patashnik.
 IMPRINT      Reading, Mass. : Addison-Wesley, c1989.
 COLLATION    xiii, 625 p. : ill. ; 25 cm.
 NOTE         Bibliography: p. 578-600.
              Includes index.
 SUBJECT      Mathematics --1961-
              Computer science --Mathematics.
 ALT AUTHOR   Knuth, Donald Ervin, 1938-
              Patashnik, Oren.

The fonts used are ``Euler'' for math and ``Concrete Roman'' for
text. ``Concrete Roman'' (ccr10 etc.) is based on Computer Modern
(but looks more ``solid''), but ``Euler'' (eubase etc.) is a
completely new family of math fonts (designed by Hermann Zapf, I think).
I guess these fonts can be obtained, gratis, from the American
Mathematical Society (AMS); they may already be present on your
system. Maybe they are also available from your nearest TeX archive.
In the abovementioned book, Knuth explains something about the
typesetting in the introduction.

					Marcel van der Goot
					marcel@vlsi.cs.caltech.edu

bohus@math.rutgers.edu (Geza Bohus) (01/13/91)

Hi,

We have some (small) *.sty files for LaTeX which allow use of
PostScript fonts with LaTeX. Text is set with your the font you select
with the appropriate style file, formulas with Computer Modern. This
system also assumes the existence of tfm files for these fonts, but I
guess this shouldn't be a big deal. I've used Times, Palatino and
Bookman and it works fairly well.

gb

bohus@math.rutgers.edu

spqr@ecs.soton.ac.uk (Sebastian Rahtz) (01/14/91)

In article <PRIMER.91Jan11140538@zariski.harvard.edu> primer@math.harvard.edu (Jeremy Primer) writes:

   scheme at all.  It would be easy to set up LaTeX style files to alert the
   font selector that additional fonts are available, i.e. postscript.sty for
   the fonts packaged with dvips541, lucida.sty for new fonts from Sun, etc.
I wrote myself a generic macro to announce a new PostScript font to
Mittelbach and Schoepf. Appended. Comments welcome.

   their names and contents.  When I receive a latex document in the e-mail in
   1995, I would ideally (1) like to know exactly which of many font families
   it requires to run without alteration and (2) like to avoid telling TeX
   about all these families in our format files.  Perhaps a registry
   maintained by the AMS would be in order here.
Karl Berry maintains a list of suggested names for PostScript fonts.
It would help a bit if people followed that (though I personally don't
like it), but it will not help much if people put the stuff for Lucida
in a style option called `prettynice.sty'.

Yes, if vendors sent out style files... but it isn't that easy. LaTeX
assumes you have a full range of fonts available (roman, bold, sans,
tt etc); a style file should replace all of cm* in one go, shouldn't
it? my style option `garamond.sty' loads Optima as the sans face, and
Courier as tt. You can't assume someone won't want Courier as the main
text face....

sebastian


%% Generalized scheme for PostScript fonts, assuming they
%% all have the same basic structure
\def\postscript@fontdef#1#2#3#4#5#6#7#8{
\expandafter\ifx\csname ld#2\endcsname\relax
% 1 : full name for family
% 2 : short name for family
% 3 : tfm name for normal font
% 4 : tfm name for italic font
% 5 : tfm name for bold font
% 6 : tfm name for bolditalic font
% 7 : tfm name for smallcaps font
% 8 : tfm name for slanted font
\immediate\write\sixt@@n
  {********************************************************************}
\immediate\write\sixt@@n
  {Defining fonts for PostScript #1 family, with }
\immediate\write\sixt@@n
  {#2 as shortname}
\immediate\write\sixt@@n
  {#3 as TFM name for normal font}
\immediate\write\sixt@@n
  {#4 as TFM name for italic font}
\immediate\write\sixt@@n
  {#5 as TFM name for bold font}
\immediate\write\sixt@@n
  {#6 as TFM name for bolditalic font}
\immediate\write\sixt@@n
  {#7 as TFM name for smallcaps font}
\immediate\write\sixt@@n
  {#8 as TFM name for slanted font}

\immediate\write\sixt@@n
  {********************************************************************}
\new@fontshape{#2}{m}{n}{%
      <5>#3 at5pt%
      <6>#3 at6pt%
      <7>#3 at7pt%
      <8>#3 at8pt%
      <9>#3 at9pt%
      <10>#3 at10pt%
      <11>#3 at10.95pt%
      <12>#3 at12pt%
      <14>#3 at14.4pt%
      <17>#3 at17.28pt%
      <20>#3 at20.74pt%
      <25>#3 at24.88pt}{}
\extra@def{#2}{}{}

\new@fontshape{#2}{m}{sc}{%
      <5>#7 at5pt%
      <6>#7 at6pt%
      <7>#7 at7pt%
      <8>#7 at8pt%
      <9>#7 at9pt%
      <10>#7 at10pt%
      <11>#7 at10.95pt%
      <12>#7 at12pt%
      <14>#7 at14.4pt%
      <17>#7 at17.28pt%
      <20>#7 at20.74pt%
      <25>#7 at24.88pt%
      }{}


\new@fontshape{#2}{m}{it}{%
      <5>#4 at5pt%
      <6>#4 at6pt%
      <7>#4 at7pt%
      <8>#4 at8pt%
      <9>#4 at9pt%
      <10>#4 at10pt%
      <11>#4 at10.95pt%
      <12>#4 at12pt%
      <14>#4 at14.4pt%
      <17>#4 at17.28pt%
      <20>#4 at20.74pt%
      <25>#4 at24.88pt%
      }{}

\new@fontshape{#2}{m}{sl}{%
      <5>#8 at5pt%
      <6>#8 at6pt%
      <7>#8 at7pt%
      <8>#8 at8pt%
      <9>#8 at9pt%
      <10>#8 at10pt%
      <11>#8 at10.95pt%
      <12>#8 at12pt%
      <14>#8 at14.4pt%
      <17>#8 at17.28pt%
      <20>#8 at20.74pt%
      <25>#8 at24.88pt%
      }{}

\new@fontshape{#2}{bx}{n}{%
      <5>#5 at6pt%
      <6>#5 at6pt%
      <7>#5 at7pt%
      <8>#5 at8pt%
      <9>#5 at9pt%
      <10>#5 at10pt%
      <11>#5 at10.95pt%
      <12>#5 at12pt%
      <14>#5 at14.4pt%
      <17>#5 at17.28pt%
      <20>#5 at20.74pt%
      <25>#5 at24.88pt%
      }{}

\new@fontshape{#2}{bx}{it}{%
      <5>#6 at6pt%
      <6>#6 at6pt%
      <7>#6 at7pt%
      <8>#6 at8pt%
      <9>#6 at9pt%
      <10>#6 at10pt%
      <11>#6 at10.95pt%
      <12>#6 at12pt%
      <14>#6 at14.4pt%
      <17>#6 at17.28pt%
      <20>#6 at20.74pt%
      <25>#6 at24.88pt%
      }{}

% bold and bold-extended regarded as the same
% slanted and smallcaps only in normal font
\subst@fontshape{#2}{b}{sc}{#2}{m}{sc}
\subst@fontshape{#2}{b}{sl}{#2}{m}{sl}
\subst@fontshape{#2}{bx}{sc}{#2}{m}{sc}
\subst@fontshape{#2}{bx}{sl}{#2}{m}{sl}
\subst@fontshape{#2}{b}{n}{#2}{bx}{n}
\subst@fontshape{#2}{b}{it}{#2}{bx}{it}
\expandafter\def\csname ld#2\endcsname{}
\else
\immediate\write\sixt@@n
  {Family #2 already set up}
\fi
}
%
% set up fonts I am interested in
%
\postscript@fontdef{Palatino}{palatino}{p-rom}{p-ita}{p-bol}{p-bolit}{p-romsc}{p-ita}
%%
% and finally we set up two command \adobeencoding, and \texencoding,
%% which we can choose depending on which we way we use PostScript
%% fonts
%%
\def\texencoding{\input{encoding.tex}}
\def\adobeencoding{\input{encoding.adobe}}
\def\romanfont#1{\renewcommand{\rmdefault}{#1}\rm}
\def\sansfont#1{\renewcommand{\sfdefault}{#1}\rm}
\def\typewriterfont#1{\renewcommand{\ttdefault}{#1}\rm}




--
Sebastian Rahtz                        S.Rahtz@uk.ac.soton.ecs (JANET)
Computer Science                       S.Rahtz@ecs.soton.ac.uk (Bitnet)
Southampton S09 5NH, UK                S.Rahtz@sot-ecs.uucp    (uucp)