[comp.lang.postscript] Changing fonts in ptroff

sarge@thirdi.UUCP (11/02/87)

I've been using ptroff with good success with my LaserWriter, but I haven't yet
figured out how (if it can be done) one can change fonts (not just point size
or italicization) in troff (or macro packages -- I use mm).

If it's a dumb question, please answer by email and spare me the ignominy.
-- 
"Absolute knowledge means never having to change your mind."

Sarge Gerbode
Institute for Research in Metapsychology
950 Guinda St.
Palo Alto, CA 94301
UUCP:  pyramid!thirdi!sarge

barnett@vdsvax.steinmetz.UUCP (Bruce G Barnett) (11/04/87)

In article <249@thirdi.UUCP> sarge@thirdi.UUCP (Sarge Gerbode) writes:
|I've been using ptroff with good success with my LaserWriter, but I haven't yet
|figured out how (if it can be done) one can change fonts (not just point size
|or italicization) in troff (or macro packages -- I use mm).

Since I just went through this exercise, I can answer some of your
questions on using fonts, troff, and transcript.

There is an option to ptroff for the font family (-F).
The default is Times Roman. You can also select Helvetica.
e.g.
	ptroff -FHelvetica [options]

The third - Courier - the constant width font, can be built
by going into /usr/local/lib/ps/troff.fonts:

Step 1 - make the file Courier.head (included)
Step 2 - Make the file Courier.map by copying Helvetica.map and applying
	the patches given. (included)
Step 3 - Patch the make file (included)
Step 4 - touch (create) the file Courier.ct (needed for make)
Step 5 - type 'make install'

- You should be able to use the Courier font.
e.g.
	ptroff -FCourier

If you want to mix font families, you can fool old troff by
creating a new Family.head - that has a special combination
of Courier, Time-Roman, and/or Helvetica on font positions
1, 2 and 3.

Go through the same procedure as in Courier, and patch the appropriate
entries.
--------------
Courier.head:
----------------------------------------------
.fp 1 C
.fp 2 CI
.fp 3 CB
.fp 4 S
.lg 0
--------------------------------------------------

Note the line to disable ligatures. (.lg 0 )

Here is the diff between the old and new makefile:
*** Makefile~	Thu Sep 10 12:34:26 1987
--- Makefile	Wed Sep 16 11:07:19 1987
***************
*** 14,20
  #######################################################################
  # Here are the family names, the face names are gotten from the .map files
  
! FAMILIES = Times.ct Helvetica.ct
  
  #######################################################################
  

--- 14,20 -----
  #######################################################################
  # Here are the family names, the face names are gotten from the .map files
  
! FAMILIES = Times.ct Helvetica.ct Courier.ct
  
  #######################################################################
-----------------------------------------------------------------  
You also need a Courier.map.
Here is the diff between Helvetica.map and Courier.map

*** Helvetica.map	Thu Sep 10 12:34:26 1987
--- Courier.map	Wed Nov  4 09:16:01 1987
***************
*** 1,4
! % lib/troff.font/Helvetica.map
  % Copyright (c) 1985 Adobe Systems Incorporated
  % RCSID: $Header: Helvetica.map,v 2.1 85/11/24 12:22:48 shore Rel $
  %

--- 1,4 -----
! % lib/troff.font/Courier.map
  % Copyright (c) 1985 Adobe Systems Incorporated
  % RCSID: $Header: Courier.map,v 2.1 85/11/24 12:22:48 shore Rel $
  %
***************
*** 1,6
  % lib/troff.font/Helvetica.map
  % Copyright (c) 1985 Adobe Systems Incorporated
! % RCSID: $Header: Helvetica.map,v 2.1 85/11/24 12:22:48 shore Rel $
  %
  % Font correspondence mapping for Troff and PostScript Helvetica family.
  %

--- 1,6 -----
  % lib/troff.font/Courier.map
  % Copyright (c) 1985 Adobe Systems Incorporated
! % RCSID: $Header: Courier.map,v 2.1 85/11/24 12:22:48 shore Rel $
  %
  % Font correspondence mapping for Troff and PostScript Courier family.
  %
***************
*** 2,8
  % Copyright (c) 1985 Adobe Systems Incorporated
  % RCSID: $Header: Helvetica.map,v 2.1 85/11/24 12:22:48 shore Rel $
  %
! % Font correspondence mapping for Troff and PostScript Helvetica family.
  %
  % PostScript and TranScript are trademarks of Adobe Systems Incorporated
  % Times and Helvetica are registered trademarks of Allied Corporation.

--- 2,8 -----
  % Copyright (c) 1985 Adobe Systems Incorporated
  % RCSID: $Header: Courier.map,v 2.1 85/11/24 12:22:48 shore Rel $
  %
! % Font correspondence mapping for Troff and PostScript Courier family.
  %
  % PostScript and TranScript are trademarks of Adobe Systems Incorporated
  % Times and Helvetica are registered trademarks of Allied Corporation.
***************
*** 32,38
  % generated that, when compiled, are used by troff as width
  % tables.
  
! % note that we will ignore HS and mount "S" when using troff!
  
  @FAMILYNAME Helvetica
  @FACENAMES H HI HB HS

--- 32,38 -----
  % generated that, when compiled, are used by troff as width
  % tables.
  
! % note that we will ignore CS and mount "S" when using troff!
  
  @FAMILYNAME Courier
  @FACENAMES C CI CB CS
***************
*** 34,41
  
  % note that we will ignore HS and mount "S" when using troff!
  
! @FAMILYNAME Helvetica
! @FACENAMES H HI HB HS
  
  @BEGINFONTS
  ROMAN=Helvetica

--- 34,41 -----
  
  % note that we will ignore CS and mount "S" when using troff!
  
! @FAMILYNAME Courier
! @FACENAMES C CI CB CS
  
  @BEGINFONTS
  ROMAN=Courier
***************
*** 38,46
  @FACENAMES H HI HB HS
  
  @BEGINFONTS
! ROMAN=Helvetica
! ITALIC=Helvetica-Oblique
! BOLD=Helvetica-Bold
  SYMBOL=Symbol
  EXTRAS=Times-Roman
  @ENDFONTS

--- 38,46 -----
  @FACENAMES C CI CB CS
  
  @BEGINFONTS
! ROMAN=Courier
! ITALIC=Courier-Oblique
! BOLD=Courier-Bold
  SYMBOL=Symbol
  EXTRAS=Times-Roman
  @ENDFONTS


-- 
	Bruce G. Barnett 	<barnett@ge-crd.ARPA> <barnett@steinmetz.UUCP>
				uunet!steinmetz!barnett

brown@nicmad.UUCP (Mr. Video) (11/07/87)

In article <2903@vdsvax.steinmetz.UUCP> barnett@steinmetz.UUCP (Bruce G Barnett) writes:
<In article <249@thirdi.UUCP> sarge@thirdi.UUCP (Sarge Gerbode) writes:
<|I've been using ptroff with good success with my LaserWriter, but I haven't yet
<|figured out how (if it can be done) one can change fonts (not just point size
<|or italicization) in troff (or macro packages -- I use mm).
<
<Since I just went through this exercise, I can answer some of your
<questions on using fonts, troff, and transcript.

Thanks to Bruce, who lead me in the right direction, I too installed the
Courier stuff.  I will also be installing the other fonts that are on the
LaserWriter+.  But, some of the things that Bruce tells you to do will get
lost if you ever do a complete installation again (possible, as I have done it).

I will show the changes in what to do below.

<There is an option to ptroff for the font family (-F).
<The default is Times Roman. You can also select Helvetica.
<e.g.
<	ptroff -FHelvetica [options]
		^^^^^^^^^^
	       -F Helvetica
<
<The third - Courier - the constant width font, can be built
<by going into /usr/local/lib/ps/troff.fonts:

Yes and no.  You can do this stuff there, and probably should so that
you don't have to do a complete installation again.  But, if a complete
installation is ever called for, some of this stuff may go away.  You want to
do the stuff to the Makefile in the ~transcript/lib/troff.font source
directory.  BTW, it is troff.font, not troff.fonts.  By doing it in the
source directory, you can rest easy that the next complete installation
will not cause your stuff to go away.  

<Step 1 - make the file Courier.head (included)

This step is not necessary as the Makefile will do it for you.

<Step 2 - Make the file Courier.map by copying Helvetica.map and applying
<	the patches given. (included)
<Step 3 - Patch the make file (included)
<Step 4 - touch (create) the file Courier.ct (needed for make)

Not necessary.  If the .ct file is missing, make will do the job for you.

Step 4a - patch the head.awk file.  Add the following line before the 'exit'
	on line 17 (or there abouts):

		if ($2 == "C") print ".lg 0"

If you do a complete re-installation, then only change the source files.
If not, then copy the changed stuff over to the working directory.

<Step 5 - type 'make install'
<
<- You should be able to use the Courier font.
<e.g.
<	ptroff -FCourier
		^^^^^^^^
	       -F Courier

<--------------
<Courier.head:
<----------------------------------------------
<.fp 1 C
<.fp 2 CI
<.fp 3 CB
<.fp 4 S
<.lg 0
<--------------------------------------------------
<
<Note the line to disable ligatures. (.lg 0 )

As indicated above, creating this file manually is not necessary.
As a matter of fact, even if you did create it, it would be recreated and
the '.lg 0' line would be missing, if you didn't do my head.awk file
change.
-- 
	       harvard-\	       ihnp4--\
Mr. Video               !uwvax.................!nicmad!brown
	       rutgers-/  terminus-/  decvax--/
	BITNET: brown%nicmad.UUCP@spool.wisc.edu (until 12/01/87)

barnett@vdsvax.steinmetz.UUCP (Bruce G Barnett) (11/10/87)

In article <2119@nicmad.UUCP> brown@nicmad.UUCP (Mr. Video) writes:

[some corrections to my posting - sigh! teach me to trust a manual page.]

In a previous posting I asked about converting the Berkeley fonts
into postscript and using them in a [di]troff/postscript document -

I don't have any programs yet to automate this. But the best lead so
far is the program bldfamily in Sun's 1.1 release of NeWS.
This can be used to build a postscript font from a versatec raster font.

It looks good, but I still have to figure out the proper glue.
-- 
	Bruce G. Barnett 	<barnett@ge-crd.ARPA> <barnett@steinmetz.UUCP>
				uunet!steinmetz!barnett