[OS X TeX] A bit of everything (4/4)

Bruno Voisin bvoisin at me.com
Tue Mar 22 22:15:52 CET 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: 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. But I wasn't willing to spend any more time on TeX font issues, having had a large enough dose of TeX fonts for a whole lifetime. Then a few days ago Paolo Matteuci raised the issue twice, on the Textures mailing list and in an off-list message. He was quite persuasive, so I decided finally to have a look at European Modern, thinking this would be straightforward; 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, but some remaining pieces are scattered in the Y&Y TeX repository. So the adaptation means essentially identifying what's relevant for TeX Live and fixing what needs to be fixed.


Fonts
-----

First come the fonts: get

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

throw away the SRC files and keep the 70 PFB files. The accompanying AFM files live in

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

Metrics
-------

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 TeX Live: 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

	/Library/TeX/Root/texmf-dist/doc/latex/base/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 these were "<<" 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. What can only be said regarding texnansi vs texmac is that 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.

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.

Mapping and reencoding
----------------------

Third come map files and encoding files. Two encoding files texnansi.enc and tex256.enc are already included in TeX Live; texmac.enc is available at

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

Three map files are provided at

	http://code.google.com/p/yytex/source/browse/trunk/fonts/em/psfonts/psfonts.emm
	http://code.google.com/p/yytex/source/browse/trunk/fonts/em/psfonts/psfonts.emt
	http://code.google.com/p/yytex/source/browse/trunk/fonts/em/psfonts/psfonts.emy

for texmac, tex256 and texnansi, respectively. In each, comment out the lines for the Computer Modern math fonts (cmsy5 ff.), since TeX Live already contains them and is configured for them.

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

Fourth 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 there are test and sample files 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 encoding by

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

and for texnansi encoding by texnansi.tex which is already in TeX Live. 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 and the CM-Super fonts are used instead (sfrm1095.pfb instead of emr10.pfb here). 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 TeX Live, save the PFB font files for size considerations. These can be easily downloaded from the URL given in the first step above. You only have to choose one encoding, remove the TFM files for the other encodings and enable the map file for this encoding.

Namely, assuming a system-wide setup and an installation in /Library/TeX/Local, what you have to do for texnansi encoding is

	sudo rm -r /Library/TeX/Local/fonts/tfm/yandy/em-tex256
	sudo rm -r /Library/TeX/Local/fonts/tfm/yandy/em-texmac
	sudo mktexlsr
	sudo updmap-sys -H --enable Map psfonts.emy

for tex256 encoding

	sudo rm -r /Library/TeX/Local/fonts/tfm/yandy/em-texmac
	sudo rm -r /Library/TeX/Local/fonts/tfm/yandy/em-texnansi
	sudo mktexlsr
	sudo updmap-sys -H --enable Map psfonts.emt

and for texmac encoding

	sudo rm -r /Library/TeX/Local/fonts/tfm/yandy/em-tex256
	sudo rm -r /Library/TeX/Local/fonts/tfm/yandy/em-texnansi
	sudo mktexlsr
	sudo updmap-sys -H --enable Map psfonts.emm

For a user-specific setup in ~/Library/texmf replace the above by

	rm -r ~/Library/texmf/fonts/tfm/yandy/em-tex256
	rm -r ~/Library/texmf/fonts/tfm/yandy/em-texmac
	updmap --enable Map psfonts.emy

for texnansi encoding, and similarly for the other encodings.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: em.zip
Type: application/zip
Size: 1055364 bytes
Desc: not available
URL: <http://tug.org/pipermail/macostex-archives/attachments/20110322/f4ac9a31/attachment.zip>
-------------- next part --------------



Y&Y
===

Finally, in several occasions in this series or the companion series for Textures, 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, together with the ENC files, minus those files which are already included in TeX Live and plus texmax.enc (see the second message in this series). It's likely what's already in TeX Live is amply sufficient, 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: 44342 bytes
Desc: not available
URL: <http://tug.org/pipermail/macostex-archives/attachments/20110322/f4ac9a31/attachment-0001.zip>


More information about the macostex-archives mailing list