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

tex-fonts list, submitting something

Gee that was fast. Is it possible to get say just the last 50 pages or so.

I'm new to this game. What I really was trying to do was submit the
below to TeXhax. Karl Berry gave me your address and suggested
that this would be a better place for such a posting. (We have an NNTP
server around here, but tex-fonts is not on it.)
How do I submit something?

Subject: What's in a (mode_def) name? A mode by any other name...

I would like to make a proposal and solicit comments for a new scheme
for selecting MetaFont mode_def names. But first let me review what I
believe has been the trend for naming mode_defs.

In the olden days, the name of a printer was used as the name of the
mode_def, e.g. imagen or dover. This had the definite advantage that
it was easy to determine what mode_def one should use for a printer.
Well, almost...

As time went on (and printer manufacturers made more kinds of
printers), the model name was included in the mode name. Model names
often include numbers. However, MetaFont's scanning rules are somewhat
akin to TeX's scanning rules---identifiers are not normally allowed to
contain numbers. So someone had the bright idea to write out the numbers
in English, e.g. IBMThreeTwoOneSix. (Or was that IBMThirtyTwoSixteen
as it is more commonly pronounced? I believe the former was used for

Then it was observed that many printers have a common print engine. In
the case of the Imagen 8/300 and the Apple Laserwriter, I believe the
print engine is made by Canon. Also, the same print engine is often
used across models, for example the HP LaserJet, and the HP LaserJet
Series IIp. Perhaps this is one reason that one could get by for a
long time by just specifying a printer name without a model.

Looking at some of the current collection of mode_def files (U_Wash.mf
and modes.mf), I believe this is where things stand now.

However there are problems with using the print engine name. Unlike
the printer and/or model names, printer manufacturers often are not
as anxious to reveal the print engine as they would be to give the
resolution of the printer. There is good reason for this.

One printer manufacturer and vendor that I am familiar with, marketed
a printer which in the early stages of manufacturing used a 300
dot-per-inch print engine made by Canon. In order to cut manufacturing
costs, they subsequently switched to a cheaper 300 dot-per-inch
printer made by Ricoh. But then Ricoh realized that it could cut its
cost by redesigning its print mechanism. In all cases though, the
printer name (and perhaps model) stayed the same! The print engine one
might find in this printer is merely a function of when and where the
printer bought.

Another problem with specifying the printer name or printer engine is
that there may be variations within a single printer engine. The
printer may act differently when it is low on toner, or when it is
just turned on or left on for long periods of time. Perhaps there
are even variations depending on the kind of toner cartridge used.

An extreme case of print-engine variation is in the IBM 3825 and IBM
3835 printers. These printers have a knob that allows a service
engineer to specify one of up to ten settings. Don't get me
wrong---I don't think that this is a bad thing. It does allow the
customer to set the type of output he/she wants or is willing to pay
for in toner. It does however make a font librarian's job harder.

I believe what would be the most helpful is to have the
characteristics of the print engine rather than the vendor of the
print engine encoded in the mode name. In particular, I believe the
pixels-per-inch, the blackness, aspect-ratio, white-writeness, and
perhaps the fillin are important. (I suspect the o_correction is
largely a function of the other parameters, particularly the
pixels_per_inch.)  These fields inside a name should probably not
take on exact values as they must be in a mode definition
but should represent a range of values. For example, ``light'' might mean
a value anywhere from 0.0 to 0.3.

Here is a scenario: I want to get some TeX fonts off a server for my
FooBar model XYZZY printer. This is a very new printer for which there
is no mode_def around yet. (And even if there were, my server doesn't
have rasters generated for these yet; I also am unable to run
MetaFont.)  I don't have time to wait until a mode_def is decided on
and raster are created---I need something now.

I am clever and know that Gitsu makes the print engine. Okay, quick.
Am I better off with the FooBar model Plugh printer or the Banana
printer which also has a print engine made by Gitsu?

Note that in modes.mf, the CanonCX printer is a 300 dpi printer while
the CanonLBPTen is a 240 dpi printer.  There is a big difference
between 240 dpi printers and 300 dpi printers. I would doubt if one
would be happy using one mode for the other. Similarly, although the
CanonCX and CanonSX printers are 300dpi, the CanonSX printer has a
fillin of -.2 (which is probably wrong) and is white-write, while the
SX printer has a fillin of .2 and is not. Again, I doubt whether one
would be that happy substituting one for the other. (I bet it would be
better to substitue mode RicohA for CanonCX.)

On the other hand, if names for the CanonCX, CanonSX, and CanonLBPTen
modes were something like 030xDPI-Light-FillinLight,
030xDPI-Light-FillinNeg-WriteWhite, and 024xDPI-Light-FillinLight (I know
these are illegal names and too long for my needs), I would would have
a good idea which I should use say for the IBM 4216 printer which I
may or may not know to in fact have a Ricoh engine.

If I print out something and the output looks too light, simple: I
look for the next darker mode_def name. Even if I don't know
a priori what the resolution the printer I have is, I can again print
something out (like CMINCH) and see if it meets my expectations. If
not, it is clear how I would change the font library or search for a
different mode_def.

I know this puts a little more complication up front. But it is more
straightforward and ultimately easier for users to comprehend.  I'd
hate to set things up so that for my Canon SuperDuper printer I have to
specify RicohB (rather than CanonCX, CanonSX, or CanonLBPTen) to get
the best output.  While on my Ricoh Tried-and-True printer I have to
specify CanonSX rather than ...

My last comment is about the length of mode_def names. I believe it
is useful to put the EXACT mode name as a directory name under the
font path e.g. /usr/local/lib/tex/fonts/CanonCX/...
(or as a disk name CANONCX:...)

Some operating systems limit the number of characters in a directory
entry or disk name.  And even on those systems that allow longer
names, people do not like to type in or be confronted with such a long
directory name.

A suggestion is that the size of the real mode_def names be kept
relatively short. One can always have additional variables, as modes.mf
does, to map full printer names and or printer models and or printer
engines to a relatively short name for the convenience of users.


R. Bernstein
IBM Research

Thanks to Paul Dantzig for the info on IBM printers.