[Textures] A bit of everything (7/7)

Bruno Voisin bvoisin at me.com
Tue Mar 22 16:22:17 EDT 2011


European Modern
===============

European Modern was a set of commercial PostScript fonts from Y&Y, intermediate between the 7-bit Computer Modern and the Unicode Latin Modern: it was 8-bit, based on Computer Modern and contained pre-built accented characters for most European languages. In this sense, it may be seen as an outline version of the bitmap EC fonts, alternative to CM-Super and supposedly of better quality since it was prepared manually and hand-hinted. See

	http://www.tug.org/yandy/options.htm
	http://www.tug.org/yandy/em.htm

Since the open-sourcing of the Y&Y TeX system, European Modern may be found at

	http://code.google.com/p/yytex/source/browse/trunk/fonts/em

Beware: if you download the EM fonts as part of a svn checkout of Y&Y TeX, using

	svn checkout http://yytex.googlecode.com/svn/trunk/ yytex-read-only

then each folder and sub-folder of the checkout will contain an invisible .svn folder which may be of significant size. I couldn't understand first why some tfm folders, though containing only say 50 TFM files of 4 kB, were about 1 MB in size in the Finder, then I went to the Terminal and "ls -al" revealed it all. You can erase the invisible .svn folders in all the subdirectories of the current directory by typing

	sudo find . -name .svn -exec rm -rf {} \;

sudo was needed in my case, though I don't know why. And the obvious "find . -name .svn -delete" didn't work, for some unknown reason either.

Back to topic: when starting these adaptations I had decided not to look at Latin Modern, because of the very many custom encodings that it uses, the need to hand-edit each encoding for manual import in EdMetrics, and the insane amounts of time the whole stuff would take. Latin Modern having largely superseded EC and CM-Super, it made even less sense to look at European Modern.

But then Paolo Matteuci raised the issue twice, on this list and in an off-list message, he was quite persuasive and it was all too tempting to test the above concepts and methods one more time. Moreover, having looked at Lucida and MathTime already, it was only logical to look at this third and last Y&Y scalable font option for TeX. I thought this could be done quickly; again, I was wrong.

The original setups are described in the ReadMe files for Windows

	http://code.google.com/p/yytex/source/browse/trunk/fonts/em/README.txt

and for the Mac

	http://code.google.com/p/yytex/source/browse/trunk/fonts/em/macinto1.txt
	http://code.google.com/p/yytex/source/browse/trunk/fonts/em/macinto2.txt
	http://code.google.com/p/yytex/source/browse/trunk/fonts/em/manifest.txt

Based on the latter, it seems the Mac setup was distributed on 5 floppies, complete with metrics suitcases, screen fonts and printer fonts, plain TeX and LaTeX support files. These floppies are lost, unfortunately. So the following is mostly an attempt to identify what's relevant in the Google code repository, fix what needs to be fixed and reconstruct what's missing the best we can.

Fonts
-----

First come the fonts: get

	http://code.google.com/p/yytex/source/browse/trunk/fonts/em/pfb

and proceed as described in the first message of this series. Namely, cd to the pfb directory in Terminal and type

	apply 'macbinary decode -o `basename %1 .scr`.bmap %1' *.scr
	apply 't1mac %1 | macbinary decode -p -o `basename %1 .pfb`' *.pfb

The first lines converts the .scr files to bitmap FFIL screen fonts with .bmap extension, and the second line converts the .pfb files to outline LWFN printer fonts without extension. Put all the FFIL and LWFN files (140 in total) into the OS X or Textures Fonts folders.

Metrics and encodings
---------------------

Second come the metrics. Four set of metrics are provided, corresponding to two different encodings for Windows:

- texnansi (aka LY1, aka 8y, aka TeX 'n ANSI), defined in <http://code.google.com/p/yytex/source/browse/trunk/fonts/vec/texnansi.vec>;

- tex256 (aka T1, aka 8t, aka Cork, aka EC or its precursor DC), defined in <http://code.google.com/p/yytex/source/browse/trunk/fonts/vec/tex256.vec>;

and two different encodings for the Mac:

- mac (aka Macintosh Standard Roman), defined in <http://code.google.com/p/yytex/source/browse/trunk/fonts/vec/mac.vec> and used in Textures < 1.6;

- texmac (aka LM1, aka LT1, aka Textures Macintosh), defined in <http://code.google.com/p/yytex/source/browse/trunk/fonts/vec/texmac.vec> and used in Textures >= 1.6.
	
It seems that the Y&Y TeX system for Windows performed on-the-fly re-encoding, storing both sets of metrics in parallel in encoding-dependent folders

	c:\yandy\fonts\tfm\texansi\tfm-em
	c:\yandy\fonts\tfm\tex256\tfm-em
	c:\yandy\fonts\tfm\nontext\tfm-emmi

and picking one particular folder at typeset time depending on the selected encoding. Other than that, in each encoding-specific folder the metrics had exactly the same names, like emr10.tfm.

This is not the way things are in Textures (or TeX Live for that matter): each metrics bears a different name depending on the encoding, such as ptmr8y.tfm (texnansi) and ptmr8t.tfm (tex256) for Times-Roman, and it is based on these names alone that an encoding is picked at typeset time. Hence for EM you cannot have several encodings installed simultaneously: you must choose one encoding once and for good at install time, and stick with it afterwards.

This is most inconvenient, since characters will remain unavailable depending on your choice: texnansi has diacritics but not all the pre-accented letters of Eastern European languages, whereas tex256 has all these accents but no diacritics. See

	http://mirrors.ctan.org/macros/latex/doc/encguide.pdf

For Computer Modern and Latin Modern the latter has been alleviated by adding a supplementary encoding, called Text Companion (aka TS1, aka 8c) and containing all the diacritics. There is no such companion metrics for European Modern.

texmac is similar to texnansi in this respect: texnansi was designed to combine the 8-bit Windows ANSI encoding with the 7-bit TeX text encoding (aka OT1, aka 7t), and texmac was designed to combine the 8-bit Macintosh Standard Roman encoding with TeX text. So with texmac, as with texnansi, the Eastern European pre-accented letters are missing.

Moreover, in the tests I made it seems that some ligatures are also missing with texmac: for Lucida that was "<<" and ",,", here for European Modern it seems to be "``" for the typewriter fonts.

mac encoding, which has been superseded by texmac, is obsolete and irrelevant and may be discarded.

This leaves texnansi, tex256 and texmac to choose from. The following instructions consider all three and leave it to you to choose. texmac was the encoding of Y&Y's Mac distribution of EM fonts, and it was also the encoding of BSR's distribution of the Lucida fonts. However, texnansi has prospered outside its Y&Y lineage, is widely used in the ConTeXt community and is actively supported on CTAN, see

	http://www.ctan.org/tex-archive/fonts/psfonts/ly1/

whereas texmac is mostly forgotten and never made it outside the Textures community. In addition, texnansi is fully supported by Textures 2.2 and EdMetrics 1.7.1 and seems to provide all the functionality that texmac was designed to provide, so I see no compelling reason for sticking to texmac.

The metrics sets are reconstructed by combining the 13 math metrics at the first level of

	http://code.google.com/p/yytex/source/browse/trunk/fonts/em/tfm

with the 57 text metrics inside, respectively,

	http://code.google.com/p/yytex/source/browse/trunk/fonts/em/tfm/texnansi
	http://code.google.com/p/yytex/source/browse/trunk/fonts/em/tfm/tex256
	http://code.google.com/p/yytex/source/browse/trunk/fonts/em/texmac

In the first two, discard tir.tfm. In the last, discard the math fonts emmi*.tfm, they are all faulty.

Metrics suitcases are prepared based on these TFM files in the usual way. Beforehand, you must get

	http://code.google.com/p/yytex/source/browse/trunk/fonts/vec/tex256.enc

and edit it for EdMetrics again in the usual way (removing all text before the opening [ and after the closing ], removing all comments as well). For each metrics, set the PostScript map and encoding as follows:

	texnansi	PostScript map -> None
			PostScript encoding -> TeXnANSI

	tex256		PostScript map -> None
			PostScript encoding -> Custom [tex256]

	texmac		PostScript map -> Roman->MacintoshStandard
			PostScript encoding -> MacintoshStandard


(La)TeX support files
---------------------

Third come the plain TeX and LaTeX support files. These are spread between

	http://code.google.com/p/yytex/source/browse/trunk/fonts/em/latex2e
	http://code.google.com/p/yytex/source/browse/trunk/fonts/em/plain
	http://code.google.com/p/yytex/source/browse/trunk/fonts/em/tex

and similarly test and sample files are spread between

	http://code.google.com/p/yytex/source/browse/trunk/fonts/em/latex2e
	http://code.google.com/p/yytex/source/browse/trunk/fonts/em/test
	http://code.google.com/p/yytex/source/browse/trunk/fonts/em/tex

The plain TeX macro file is

	http://code.google.com/p/yytex/source/browse/trunk/fonts/em/plain/emplain.tex

It must be supplemented for tex256 and texnansi encoding by, respectively,

	http://code.google.com/p/yytex/source/browse/trunk/tex/dcaccent.tex
	http://code.google.com/p/yytex/source/browse/trunk/tex/texnansi.tex

There is also a

	http://code.google.com/p/yytex/source/browse/trunk/tex/macaccen.tex

but close inspection reveals that it is for mac encoding, not texmac, and that for texmac no additional file is required.

Some preliminary editing of dcaccent.tex is required, though. Add at line 46

	\chardef\atcode=\catcode`\@     % save catcode of atsign
	\catcode`\@=11                  % make atsign `letter'

at line 502

	\catcode`\@=\atcode             % restore original catcode of atsign

and replace #1 by ##1 in lines 429-433, yielding

	\def\b##1{\oalign{##1\crcr\hidewidth
	    \vbox to.2ex{\hbox{\char9}\vss}\hidewidth}}%
	\def\c##1{\setbox0\hbox{##1}\ifdim\ht0=1ex\accent11 ##1
	  \else{\ooalign{\hidewidth\char11\hidewidth\crcr\unhbox0}}\fi}%
	}

Then, to use EM fonts in plain TeX, for LY1 encoding (ie texnansi) you'll write

	\input emplain
	\input texnansi

for T1 encoding (ie tex256) you'll write

	\input emplain
	\input dcaccent

and for LM1 (ie texmac) encoding you'll write

	\input emplain

The LaTeX dedicated package is

	http://code.google.com/p/yytex/source/browse/trunk/fonts/em/latex2e/em.sty

It must be supplemented for texmac encoding by a file lm1enc.def which is missing. I quickly hacked one by taking lt1enc.def from the textures-psfonts package by Vincent Jalby on the Textures 2.1 CD, renaming it to lm1enc.def and replacing

	\DeclareFontShape{LT1}{cmr}{m}{n}{<-> Times}{} 

by

	\DeclareFontShape{LM1}{cmr}{m}{n}{
	        <-6>    emr5
	        <6-7>   emr6
	        <7-8>   emr7
	        <8-9>   emr8
	        <9-10>  emr9
	        <10-12> emr10
	        <12-17> emr12
	        <17->   emr17
	      }{}

The test files

	http://code.google.com/p/yytex/source/browse/trunk/fonts/em/latex2e/testem.tex
	http://code.google.com/p/yytex/source/browse/trunk/fonts/em/test/test_l2e.tex

contain a line

	\usepackage{emgreek}	 % needed for upright uppercase Greek

pointing to a package emgreek.sty which seems to correspond to the file

	http://code.google.com/p/yytex/source/browse/trunk/fonts/em/tex/emgreek.tex

However, this file does more harm than good: it makes exactly the opposite of what it's supposed to, namely the upright uppercase Greek characters disappear. Hence throw away emgreek.tex/sty, and comment out the lines calling it.

Then, to use EM in LaTeX, for LY1 encoding use

	\usepackage[LY1]{fontenc}
	\usepackage{em}

for T1 encoding use

	\usepackage[T1]{fontenc}
	\usepackage{em}

and for LM1 encoding use

	\usepackage[LM1]{fontenc}
	\usepackage{em}

Another problem arises though: when a char size option other than the default [10pt] is chosen together with T1 encoding, for example by writing

	\documentstyle[11pt]{article}
	\usepackage[T1]{fontenc}
	\usepackage{em}

then the EM fonts are superseded by EC in the output. The way this manifests itself depends on whether the bitmap EC fonts from the Textures 2.1 CD at

	/CD Extras/Extra fonts & metrics/European CM 1.0
	/Useful Files/EC_(European_CM)_1.0

are installed (a typesetting error arises if the metrics suitcase is not installed, and blank spaces appear instead of characters in the output if the suitcase is installed). It seems that, in this case, the definition of T1/cmr from t1cmr.fd built into the LaTeX format, namely

	\providecommand{\EC at family}[5]{%
	  \DeclareFontShape{#1}{#2}{#3}{#4}%
	  {<5><6><7><8><9><10><10.95><12><14.4>%
	   <17.28><20.74><24.88><29.86><35.83>genb*#5}{}}
	\DeclareFontFamily{T1}{cmr}{}
	\EC at family{T1}{cmr}{m}{n}{ecrm}

takes precedence over its redefinition in em.sty, namely

	\DeclareFontFamily{T1}{cmr}{}
	\DeclareFontShape{T1}{cmr}{m}{n}{
	        <-6>    emr5
	        <6-7>   emr6
	        <7-8>   emr7
	        <8-9>   emr8
	        <9-10>  emr9
	        <10-12> emr10
	        <12-17> emr12
	        <17->   emr17
	      }{}

To solve this, use instead

	\usepackage[LY1]{fontenc}
	\usepackage[T1]{em}

I'd have a hard time explaining why it works, but it does!

Installation
------------

Attached is an archive of a full European Modern setup for Textures, save the FFIL/LWFN fonts for size considerations. These are created easily following the first step above. Three text metrics suitcases are provided, in LY1, T1 and LM1 encodings: choose one, add the math metrics suitcase and place them in the Textures Metrics folder. You're done!

-------------- next part --------------
A non-text attachment was scrubbed...
Name: em.zip
Type: application/zip
Size: 421900 bytes
Desc: not available
URL: <http://email.esm.psu.edu/pipermail/textures/attachments/20110322/8d2f7a1f/attachment.zip>
-------------- next part --------------



Y&Y
===

Finally, in several occasions in this series, files have been mentioned related to plain TeX support by Y&Y.

My first contact with these files came with Lucida fonts, licensed from Y&Y and sold by Blue Sky Research. The LucidaBright #2 floppy contained

	fonttest.tex
	stanacce.tex
	texnansi.tex

the Lucida Expert Bright floppy contained

	macacce.tex
	stanacce.tex

and the file lcdplain.tex in these floppies contained three mysterious lines at the end

	% \input texnansi.tex if you are using `TeX n ANSI' encoding
	% \input ansiacce.tex if you are using Windows ANSI encoding
	% \input stanacce.tex if you are using Adobe StandardEncoding 

At the time I could not understand what this was about: the lines mentioned a file which wasn't there (ansiacce.tex), they did not mention one which was (macacce.tex), and obviously none of these files was of any use to Textures anyway.

This became more mysterious with gwTeX, based on teTeX, whose early versions had a MathTime support directory containing

	ansiacce.tex
	dcaccent.tex
	stanacce.tex
	texnansi.tex

In this support directory there were also files mtplain.tex and mtplainx.tex containing the three same mysterious lines at the end plus four other mysterious lines next to the beginning

	\input encode			% Read user encoding customizations:
					% use encodetx.tex for TeX 'n ANSI
					% use encodean.tex for Windows ANSI
					% use encodese.tex for Adobe StandardEncoding

and the additional files so mentioned,

	encodean.tex
	encodese.tex
	encodetx.tex

contained the even more mysterious lines

	% The following is for Adobe StandardEncoding (also \input stanacce.tex) 

	% The following is for Windows ANSI (also \input ansiacce.tex) 

	% The following is for TeX n ANSI (also \input texnansi.tex)

	% The following is for `DC' encoding (Cork Ireland TUG meeting 1990) [...] (also \input dcaccent.tex)

	% Following is for Macintosh `standard roman encoding' (\input macaccen.tex)

Only now, having done all those adaptations and inspected the Y&Y TeX Google code repository, am I now finally starting to make sense of this.

Here is a sketch table recapitulating, for each encoding, the associated VEC, ENC and plain TeX support files from the Y&Y TeX Google code repository:

	Adobe Standard			standard.vec	standard.enc	stanacce.tex	8a
	Windows ANSI			ansinew.vec	ansinew.enc	ansiacce.tex
	TeX n ANSI			texnansi.vec	texnansi.enc	texnansi.tex	8y, LY1
	Cork				tex256.vec	tex256.enc	dcaccent.tex	8t, T1, EC
	Macintosh Standard Roman	mac.vec				macaccen.tex
	Textures Macintosh		texmac.vec	texmac.enc			LM1, LT1
	Textures Typewriter Macintosh	texmax.vec					LM2

Following is an archive containing these plain TeX support files, in their latest versions corrected for EM, plus fonttest.tex for drawing glyph charts and plainmin.tex mentioned in mtplain.tex. The version of tex256.enc edited for EdMetrics and used for EM is included. For the other ENC files, Adobe Standard and Textures (Typewriter) Macintosh are built into EdMetrics, while Windows ANSI is irrelevant outside Y&Y TeX and Macintosh Standard Roman is irrelevant for Textures >= 1.6.

Only texnansi.tex and, for the EM fonts, dcaccent.tex are really useful for Textures, but in this way all the files referenced in the plain TeX macro files from Y&Y for Lucida, MathTime and EM are put together in one place.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: yandy.zip
Type: application/zip
Size: 44962 bytes
Desc: not available
URL: <http://email.esm.psu.edu/pipermail/textures/attachments/20110322/8d2f7a1f/attachment-0001.zip>
-------------- next part --------------



More information about the Textures mailing list