[comp.sys.amiga.applications] TeX Printing

sdl@lyra.mitre.org (Steven D. Litvinchouk) (03/25/91)

In article <1991Mar25.151206.16800@bronze.ucs.indiana.edu> sl242003@silver.ucs.indiana.edu (Jon Paul Baker) writes:

> How does one print out a TeX file once it has been converted to dvi
> format? I have commontex, tex3.1, and a couple of others.  I am using
> an ALPS Allegro 500.  (LQ2500 compatible.)  I can convert and view the
> TeX files but have problems printing and the manuals are notoriously
> unhelpful.  Currently I get the errors Such and such font not found.
> Is there a difference between the fonts/ fonts and the fonts used in
> printing?  Any help would be appreciated.

I have PasTeX myself.  If your version of TeX is similar, then you
need to have either the "gf" (bitmapped) fonts, or the "pk" (bitmapped
and compressed) fonts for printing.  Since your printer is 24-pin you
will need "pk" fonts in resolutions of 360 dpi or more.  I find that
DVIPrint looks for even much greater resolutions (600+ dpi!);
apparently it then scales them.  So I would suggest recording which
fonts DVIPrint and ShowDVI say are "not found"; and then getting those
"pk" fonts in the right resolutions.  (ShowDVI needs different
resolutions than DVIPrint, because it is trying to display the output
in various magnifications.)  You can try ftp'ing the bitmapped fonts
from labrea.stanford.edu; or making your own with MetaFont.


--
Steven Litvintchouk
MITRE Corporation
Burlington Road
Bedford, MA  01730
(617)271-7753
ARPA:  sdl@mbunix.mitre.org
UUCP:  ...{att,decvax,genrad,necntc,ll-xn,philabs,utzoo}!linus!sdl
	"Where does he get those wonderful toys?"

sl242003@silver.ucs.indiana.edu (Jon Paul Baker) (03/25/91)

How does one print out a TeX file once it has been converted to dvi
format? I have commontex, tex3.1, and a couple of others.  I am using
an ALPS Allegro 500.  (LQ2500 compatible.)  I can convert and view the
TeX files but have problems printing and the manuals are notoriously
unhelpful.  Currently I get the errors Such and such font not found.
Is there a difference between the fonts/ fonts and the fonts used in
printing?  Any help would be appreciated.

Jon

u3364521@ucsvc.ucs.unimelb.edu.au (Lou Cavallo) (03/26/91)

G'day,

In comp.sys.amiga.applications
Steven D. Litvinchouk (sdl@lyra.mitre.org ) writes:
> 
> In comp.sys.amiga.applications
> Jon Paul Baker (sl242003@silver.ucs.indiana.edu ) writes:
> 
>> How does one print out a TeX file once it has been converted to dvi
>> format? I have commontex, tex3.1, and a couple of others.  I am using
>> [...]

  Sorry Jon, I need help here too.

> I have PasTeX myself.  If your version of TeX is similar, then you
> [...]
> in various magnifications.)  You can try ftp'ing the bitmapped fonts
> from labrea.stanford.edu; or making your own with MetaFont.

  I'm looking into the ftp'ing the fonts I'll need but I'm hoping some
  reader out there can give some tips on "using" PasTeX's CALLMF feat-
  ure.  If you have Arexx and set the CALLMF environment variable then
  a script gets called to tell you what parameters you should call the
  MetaFont program with to build the required fonts.

  Well...I've RTFM'ed (I think EnglishDoc.dvi was the appropriate doc)
  but I guess I'm just that extra little bit thick in that I don't see
  what command (in detail) I should give to MetaFont to build what I'd
  need.

  The nicest solution would be to modify the callmf.rexx Arexx script,
  so that it would call MetaFont to make the font ...

> Steven Litvintchouk

yours truly,
Lou Cavallo.

tomb@hplsla.HP.COM (Tom Bruhns) (03/27/91)

sdl@lyra.mitre.org (Steven D. Litvinchouk) writes:
>
>
>I have PasTeX myself.  If your version of TeX is similar, then you
>need to have either the "gf" (bitmapped) fonts, or the "pk" (bitmapped
>and compressed) fonts for printing.  Since your printer is 24-pin you
>will need "pk" fonts in resolutions of 360 dpi or more.  I find that
>DVIPrint looks for even much greater resolutions (600+ dpi!);
>apparently it then scales them.  So I would suggest recording which
>fonts DVIPrint and ShowDVI say are "not found"; and then getting those
>"pk" fonts in the right resolutions.  (ShowDVI needs different
>resolutions than DVIPrint, because it is trying to display the output
>in various magnifications.)  You can try ftp'ing the bitmapped fonts
>from labrea.stanford.edu; or making your own with MetaFont.
>

I'm rather a novice at TEX, but I'd like to relate my experiences. 
Maybe they will be useful particularly because I _am_ a novice!  I,
too, am using PasTeX.  I found a whole bunch of fonts (gack, nine
megabytes of .pk files eating up hard disk space!).  First thing I
found was that you must have .tfm files for the font type; they tell
TEX how to space things out for that font.  You don't need the .gf
or .pk fonts till you actually preview or print.  The .pk fonts
appear in lots of resolutions, or equivalently in lots of sizes.
So, a 300 dpi cmr10 prints as a 10 point font on a 300 dpi printer,
but if you have a "\font\cmrtwenty=cmr10 at 20pt"  (I think that's
about right), or a big enough \magstep, the printer driver that
thinks it's driving a 300 dpi printer will look for cmr10 in a
600dpi resolution, and print it on the 300dpi device, yielding a 20
pt typeface.  The TEXbook by Knuth mentions you don't want to get
too carried away scaling, particularly small fonts, because they are
designed to look right at the size they were built for.  So, an
alternative is to generate fonts all at nominally 300dpi, for a
bunch of different point sizes.  One set of fonts I have does just
that.  BTW, the source of fonts I picked up had them listed not as
300dpi, etc., but as 1.000, 1.200, etc., implying such-and-such
magnification from default (and they were intended for 300dpi
printers).  I just renamed them to the 300, 360, etc., fonts in 
the naming convention that DVIPrint was set up to use.  As I 
understand, DVIPrint can be given a template that describes the 
font naming so it handles whatever you might already have.

Also, before I found fonts to make 300dpi printing feasible (and got
the memory for my LaserJet ;-), I used DVIPrint to output at 100dpi.
If the fonts that your .dvi file is invoking are not available in
the size the print program deems necessary, and they aren't
generated by METAFont for you, I can imagine it won't work.  So you
might try printing at a different resolution, where there may be the
fonts that you need.  As I understand the concept, you should be
able to take the .dvi file to any system that can print or show .dvi
files and, if the fonts required are available, print or show on
that system.  One nice thing about using PasTEX's ShowDVI and
DVIPrint with a laserprinter is that in one mode (100 dpi), you can
print and show exactly the same things (albeit rather poor print
resolution).

Hope this rambling is some small help...

tomb@hplsla.HP.COM (Tom Bruhns) (03/27/91)

sdl@lyra.mitre.org (Steven D. Litvinchouk) writes:
>
>I have PasTeX myself.  If your version of TeX is similar, then you
...
>in various magnifications.)  You can try ftp'ing the bitmapped fonts
>from labrea.stanford.edu; or making your own with MetaFont.

Where do I get METAFont?  It was not part of the PasTEX distribution I 
picked up.  We have to do FTP via email here, so as full a directory
path to an ftp'able site/directory as possible would be greatly
appreciated.

Also, anyone have any suggestions on the fastest way to come up to speed
on things like ammending macros?  I notice that the PasTEX distribution
is configured for apparently A4 paper (metric), not the 8.5x11 letter
size I have reams of ;-).  That's just the tip of the iceberg, of course.

I'm actually having lots of fun learning TEX, but it's almost overwhelming
at times.

xanthian@zorch.SF-Bay.ORG (Kent Paul Dolan) (04/04/91)

u3364521@ucsvc.ucs.unimelb.edu.au (Lou Cavallo) writes:

> G'day,

> In comp.sys.amiga.applications
> Steven D. Litvinchouk (sdl@lyra.mitre.org ) writes:
 
>> In comp.sys.amiga.applications
>> Jon Paul Baker (sl242003@silver.ucs.indiana.edu ) writes:

>>> How does one print out a TeX file once it has been converted to dvi
>>> format? I have commontex, tex3.1, and a couple of others.  I am using
>>> [...]

Depends on what you have on the other end to receive the print commands;
for one example, if it is a postscript printer, then you need some version
of dvi2ps.

The general thing to remember is that when you make a .dvi file, it
still doesn't contain the locations of the raster bits that will be set,
just the origins of the characters, and what font and character in the
font goes there, paging commands, and so on. The program you call next
takes this info, looks up the characters in the font tables, sucks their
bits out, arranges them for the device, and passes them along. The .dvi
file is device independent, though, so in the case of a postscript
device, it cleverly lets postscript draw the characters, if the fonts on
both end match.

At this point I'm getting in over my head, so I'll shut up on that issue.

> Sorry Jon, I need help here too.

>> I have PasTeX myself.  If your version of TeX is similar, then you
>> [...]
>> in various magnifications.)  You can try ftp'ing the bitmapped fonts
>> from labrea.stanford.edu; or making your own with MetaFont.

> I'm looking into the ftp'ing the fonts I'll need but I'm hoping some
> reader out there can give some tips on "using" PasTeX's CALLMF
> feature. If you have Arexx and set the CALLMF environment variable
> then a script gets called to tell you what parameters you should call
> the MetaFont program with to build the required fonts.

> Well...I've RTFM'ed (I think EnglishDoc.dvi was the appropriate doc)
> but I guess I'm just that extra little bit thick in that I don't see
> what command (in detail) I should give to MetaFont to build what I'd
> need.

> The nicest solution would be to modify the callmf.rexx Arexx script,
> so that it would call MetaFont to make the font ...

Last things first; creating a whole rasterized metafont in a nice
selection of sizes can take literal days; I ran mine overnight to get
just a few sets of fonts built. You _really_, _really_ don't won't this
overhead in your printing loop, which is why TeX/Metafont users have
megabytes of already rasterized fonts online and ready to use. Metafont
makes lovely fonts, but it makes a snail look turbocharged.

Since I luckily don't have your implementation, I get to wave my hands
and be unspecific a lot in answering.  I had to relearn this stuff all
in the past six days, with a little help from a nice guy in comp.fonts,
so let's see how much I can remember.

To make a Metafont accessible for printing, you must

1) create an object called plain.base, using initmf; this is a file that
adds a lot of higher level commands to raw metafont, which is a pretty
primitive interpreter.

The command I used to make this looked something like

            initmf
            ** plain
            * dump

(Different systems look a little different; I pulled mine out of page
279 of The METAFONTbook, except omitting "local", which was not needed
for what I did.)

and was run where plain.mf was visible; the output was plain.base, and
got stuck in a directory where metafont expected to see base files; on
the Sun where I was working ../bases from mf/lib/inputs.

2) Have available a metafont source file of mode definitions that
includes one for your printer. If it doesn't come with your metafont
implementation, the university of washington (state) has an FTPable file
that seems to be the stand set of mode definitions for lots of printer
types. These define things like resolution, write white or write black
corrections, and so on.

My choice of modes was the mode_def for CanonCX, a common laser printer
engine, from a file we'll call CorpModeDefs.mf.

3) Have available a metafont source header file that defines the point
size, extra blackening, and so forth used to parameterize your font
definition for this point size. In my case call this CorpLogo6.mf,
CorpLogo8.mf, etc. This set of metafont commands finishes by invoking
the next file.

4) Have available the source file of metafont commands that describe the
character shapes. In my case, call this CorpLogo.mf.

The commands to make a six point corporate logo were then:

    mf
    ** CorpModeDefs; \mode:=CanonCX; \mag:=magstep(0); input CorpLogo6

(the "**" is a prompt from mf) and after a certain amount of blathering,
metafont produced CorpLogo6.300gf and CorpLogo6.tfm. The first is a file
of the rasters for the characters in a format comfortable for mf to
produce, the second is a file of the character dimensions for each
character, used by TeX to size and space characters, without having to
deal with their raster representations.

CorpLogo6.tfm is ready to use, so I moved it to the .../tex/lib/tfm
directory where all the font character shape tables were stored.

The printer driver (dvi2ps or whatever) doesn't want to deal with the
...gf files though, it wants to use a faster, smaller form.  A program
called gftopk makes this new format:

    gftopk CorpLogo6.300gf

creates CorpLogo6.300pk, which should then be moved to a directory where
TeX expects to find fonts at 300 dpi, on the system I was using, this
was .../tex/lib/pk/pk300. You can then throw away CorpLogo6.300gf; it
serves no further purpose.

That should make the fonts accessible, as long as the right environment
variables are set for your TeX implementation to point to their
directories.

To use this example in TeX, I then made a file that contained lines like

   \font\Corpsizesix=CorpLogo6  at 6truept
   \def\Corpsixpointlogo{\hbox{\Corpsizesix\char1}}

as a header file and pulled it into TeX, then used it in text like

   exampling we will go\Corpsixpointlogo , exampling we will go!

Pretty obviously, my "font" contained only character number 1, but this
is the general process for a non-alphabetic font; an alphabetic one is
simpler, you need merely define that "\Corpsizesix" is a font, then turn
on the font like the embedded "\Corpsizesix" command, and it is modal
until overridden or the current context ("{","}" pair) is exited.

Enough.  Hope any of that makes sense, it's almost 4AM.

Kent, the man from xanth.
<xanthian@Zorch.SF-Bay.ORG> <xanthian@well.sf.ca.us>

hessmann@unipas.fmi.uni-passau.de (Georg Hessmann) (04/05/91)

In article <1991Apr4.114338.29846@zorch.SF-Bay.ORG> xanthian@zorch.SF-Bay.ORG (Kent Paul Dolan) writes:
|u3364521@ucsvc.ucs.unimelb.edu.au (Lou Cavallo) writes:
|
|> G'day,
|
|> In comp.sys.amiga.applications
|> Steven D. Litvinchouk (sdl@lyra.mitre.org ) writes:
| 
[...]
|>> I have PasTeX myself.  If your version of TeX is similar, then you
|>> [...]
|>> in various magnifications.)  You can try ftp'ing the bitmapped fonts
|>> from labrea.stanford.edu; or making your own with MetaFont.
|
|> I'm looking into the ftp'ing the fonts I'll need but I'm hoping some
|> reader out there can give some tips on "using" PasTeX's CALLMF
|> feature. If you have Arexx and set the CALLMF environment variable
|> then a script gets called to tell you what parameters you should call
|> the MetaFont program with to build the required fonts.
|
|> Well...I've RTFM'ed (I think EnglishDoc.dvi was the appropriate doc)
|> but I guess I'm just that extra little bit thick in that I don't see
|> what command (in detail) I should give to MetaFont to build what I'd
|> need.
|
|> The nicest solution would be to modify the callmf.rexx Arexx script,
|> so that it would call MetaFont to make the font ...

Yes :) , I will do it. The next version (available in about 2 month)
will have a working version of this script.

I will make an environment, so that everyone can generate the missing
fonts via Metafont (from Stefan Becker) without needing any experience
with this program.

|Last things first; creating a whole rasterized metafont in a nice
|selection of sizes can take literal days; I ran mine overnight to get
|just a few sets of fonts built. You _really_, _really_ don't won't this
|overhead in your printing loop, which is why TeX/Metafont users have
|megabytes of already rasterized fonts online and ready to use. Metafont
|makes lovely fonts, but it makes a snail look turbocharged.
						:-))

Yes, but creating one font once is not so bad.
If you have the most commonly used fonts on hard disk and would like to print
a document which uses an unusual font I think it's easier if the program
generates the missing font. The next time you want print the text, the
font would be found and no time is lost.

|Since I luckily don't have your implementation, I get to wave my hands
|and be unspecific a lot in answering.  I had to relearn this stuff all
|in the past six days, with a little help from a nice guy in comp.fonts,
|so let's see how much I can remember.

"luckily" :-((

[...]

|Kent, the man from xanth.
|<xanthian@Zorch.SF-Bay.ORG> <xanthian@well.sf.ca.us>

	Georg.

PS: I would have had answerd earlier, but my news-system seems to loose
    some articles. :-(

-- 
  hessmann@unipas.fmi.uni-passau.de		hessmann@unipas.uucp

u3364521@ucsvc.ucs.unimelb.edu.au (Lou Cavallo) (04/05/91)

G'day,

thanks for the (very) helpful reply Kent.  I am making a brief public followup
in the spirit of the original article because I think some of my questions may
anticipate other's here ...

KD> In article <1991Apr4.114338.29846@zorch.SF-Bay.ORG>,
KD> xanthian@zorch.SF-Bay.ORG (Kent Paul Dolan) writes:

[...I'm dropping the attributions now as we've seen them a couple of times...]
>>>> How does one print out a TeX file once it has been converted to dvi
>>>> format? I have commontex, tex3.1, and a couple of others.  I am using
>>>> [...]

KD> Depends on what you have on the other end to receive the print commands;
KD> for one example, if it is a postscript printer, then you need some version
KD> of dvi2ps.

I am most interested in previewing the DVI file (nice previewer Georg !) but I
have found that the distribution of PasTeX 1.2a didn't have the specific sizes
I needed (not a complaint, this is as admitted in PasTeX 1.2a's docs).

I know other Amiga users who merely wish to preview the DVI files on the Amiga
because the previewer is so nice compared to other mainframe previewers.  This
I feel is where a large potential of ``where can I get or how can I make fonts
that I need for PasTeX etc'' type questions may originate.

KD> [...useful explanation of the DVI internals...]

me> Sorry Jon, I need help here too.
me> [...in theory PasTeX's Metafont with Arexx could build the fonts itself
me>     I think...]
me> The nicest solution would be to modify the callmf.rexx Arexx script,
me> so that it would call MetaFont to make the font ...

KD> [...] Metafont makes lovely fonts, but it makes a snail look turbocharged.

But then again you probably wouldn't want to let Arexx do the calling... :-)

KD> [...]
KD> To make a Metafont accessible for printing, you must
KD> [...]
KD> 
KD> (Different systems look a little different; I pulled mine out of page
KD> 279 of The METAFONTbook, except omitting "local", which was not needed
KD> for what I did.)

{Q: for any Metafont GURU or even if you've read the Metafont book (yep, I've
    not RTFM :-(, sorry!}

If I wish to only build `screen' bitmap fonts is a mode def of local good?
{In `english' is local mode the default to build plain bitmaps, see below on}
{building screen font bitmaps...}

KD> [...]
KD> 4) Have available the source file of metafont commands that describe the
KD> character shapes. In my case, call this CorpLogo.mf.

{personal to Kent: I've still got the logo Metafont code you sent me a while
 ago.  When I've gotten enough RAM (still only 512K on my A1000) I'll give a
 look see to your stuff.}

KD> The commands to make a six point corporate logo were then:
KD> 
KD>     mf
KD>     ** CorpModeDefs; \mode:=CanonCX; \mag:=magstep(0); input CorpLogo6

Again a question in lieu of the TFM (for now... I must get this book).  What
mode def (or whatever) do I specify for screen fonts?

KD> [...]
KD> Enough.  Hope any of that makes sense, it's almost 4AM.

Thanks Kent.  You've done well again.

KD> Kent, the man from xanth.
KD> <xanthian@Zorch.SF-Bay.ORG> <xanthian@well.sf.ca.us>

yours truly,
Lou Cavallo.

PS: I'm sorry this wasn't brief as I promised but I did try... :-(