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

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


Winword
=======

An intermission, with no connection to fonts. Once I looked for ways to reproduce the style of MS Word in LaTeX: conference proceedings were prepared with Word and I was a contributor, but a contributor unwilling to spend time learning how to input complicated mathematical expressions in Word. So I set up to reproduce the Word look with LaTeX, such that I could send the conference organizers my communication in PDF format for inclusion inside the Word file without disrupting too much the visual style of the proceedings.

Wendy McKay forwarded me a package winword by Peter Flynn, documented in

	http://www.tug.org/TUGboat/Articles/tb20-4/tb65flyn.pdf

The package was never prepared for release (ie as dtx file and the like), but I recently realized it's been informally announced at

	http://programming.itags.org/tex/127849/

(see answer 6), and it can be downloaded from

	http://silmaril.ie/downloads/winword.sty
	http://silmaril.ie/downloads/winword-test.tex

Based in part on it, a more ambitious wordlike package may also be found on CTAN at

	http://www.ctan.org/tex-archive/macros/latex/contrib/wordlike/

but I still like the original winword.


GTA Mac Fonts
=============

GTA Mac Fonts is a package by Gerben Wierda, Thomas Schmitz and Adam Lindsay for using a selection of OS X TrueType fonts with pdfLaTeX and ConTeXt:

	American Typewriter
	Baskerville
	Didot
	Futura
	Georgia
	Gill Sans
	Helvetica Neue
	Hoefler Text
	Lucida Grande
	Optima
	Verdana

Since its introduction in late 2005 its use seems to have gradually decreased, but once or twice I saw requests about the package on the TeX on Mac OS X list archive.

What GTA Mac Fonts does for the above fonts in pdfLaTeX is very similar to what PSNFSS does for the LaserWriter 35 fonts: there is a package gtamacbaskerville.sty selecting Baskerville as serif font, Optima as sans serif font and Latin modern Typewriter as monospace font, a package gtamachoefler selecting Hoefler, Gill Sans and Latin Modern Typewriter, and so forth. Special features of some fonts (like small caps and oldstyle digits for Hoefler and Didot) are provided access to.

The package was written for Mac OS X 10.4 Tiger. The way it was created is described in a PracTeX article

	http://www.tug.org/pracjourn/2006-1/wierda/wierda.pdf

The package was installed by i-Installer, last through the GW Extras package for MacTeX. Fondu was called to extract the TrueType data from the font suitcases and save them as individual TTF files, FontForge was called to create AFM files with the script

	http://tug.org/i-packages/TL-gw-extras.ii2/dumpafm.pe

then i-Installer put the TTF and AFM files inside the pre-built TDS-compliant tree

	http://tug.org/i-packages/TL-gw-extras.ii2/TL-gw-extras.tar.bz2

and installed this tree inside /Library/TeX/Local then ran mktexlsr and updmap.

The gradual decrease in the use of GTA Mac Fonts seems to result from a combination of circumstances:


- i-Installer, though still available from <http://ii2.sourceforge.net/>, went unsupported.


- i-Installer looks for i-Packages in the same directory as the catalog of the i-Directory, whereas the i-Packages are actually located one directory further up in the web server trees. For example, the TUG i-Directory catalog <http://tug.org/i-packages/iid/gwrelative.iid> expects the GW Extras i-Package at ../TL-gw-extras.ii2, which i-Installer interprets for some reason as

	http://tug.org/i-packages/iid/TL-gw-extras.ii2

whereas the i-Package lives actually at

	http://tug.org/i-packages/TL-gw-extras.ii2


- The scripts inside the GW Extras i-Package were written for Tiger and wouldn't work on Leopard or Snow Leopard. In <http://tug.org/i-packages/TL-gw-extras.ii2/TL-gw-extras.configure> you'll find

    my %fonttable = ( "gillsans", "/Library/Fonts/GillSans.dfont",
		      "optima", "/Library/Fonts/Optima.dfont",
		      "hoefler", "/Library/Fonts/Hoefler Text.dfont",
		      "didot", "/Library/Fonts/Didot.dfont",
		      "baskerville", "/Library/Fonts/Baskerville.dfont",
		      "americantypewriter", "/Library/Fonts/AmericanTypewriter.dfont",
		      "futura", "/Library/Fonts/Futura.dfont",
		      "lucidagrande", "/System/Library/Fonts/LucidaGrande.dfont",
		      "verdana", "/Library/Fonts/Verdana",
		      "georgia", "/Library/Fonts/Georgia",
		      "helveticaneue", "/Library/Fonts/HelveticaNeue.dfont"
    );

which implies that the script expects

	/System/Library/Fonts/LucidaGrande.dfont

	/Library/Fonts/AmericanTypewriter.dfont
	/Library/Fonts/Baskerville.dfont
	/Library/Fonts/Didot.dfont
	/Library/Fonts/Futura.dfont
	/Library/Fonts/Georgia
	/Library/Fonts/GillSans.dfont
	/Library/Fonts/HelveticaNeue.dfont
	/Library/Fonts/Hoefler Text.dfont
	/Library/Fonts/Optima.dfont
	/Library/Fonts/Verdana

However, in Leopard the resource-fork suitcases for Georgia and Verdana were replaced by individual TTF files, and in Snow Leopard the DFONT data-fork suitcases for the remaining fonts were replaced by TTC collections and individual TTF files. Moreover, Helvetica Neue moved from /Library/Fonts to /System/Library/Fonts. This yields

	/System/Library/Fonts/HelveticaNeue.dfont
	/System/Library/Fonts/LucidaGrande.ttc

	/Library/Fonts/AmericanTypewriter.ttc
	/Library/Fonts/Baskerville.ttc
	/Library/Fonts/Didot.ttc
	/Library/Fonts/Futura.ttc
	/Library/Fonts/Georgia Bold Italic.ttf
	/Library/Fonts/Georgia Bold.ttf
	/Library/Fonts/Georgia Italic.ttf
	/Library/Fonts/Georgia.ttf
	/Library/Fonts/GillSans.ttc
	/Library/Fonts/Hoefler Text Ornaments.ttf
	/Library/Fonts/Hoefler Text.ttc
	/Library/Fonts/Optima.ttc
	/Library/Fonts/Verdana Bold Italic.ttf
	/Library/Fonts/Verdana Bold.ttf
	/Library/Fonts/Verdana Italic.ttf
	/Library/Fonts/Verdana.ttf

When Microsoft Office 2011 is installed things get even worse, with the Snow Leopard version 5.01x of Verdana displaced to

	/Library/Fonts Disabled/Verdana Bold Italic.ttf
	/Library/Fonts Disabled/Verdana Bold.ttf
	/Library/Fonts Disabled/Verdana Italic.ttf
	/Library/Fonts Disabled/Verdana.ttf

and Microsoft version 5.02 installed at

	/Library/Fonts/Microsoft/Verdana Bold Italic.ttf
	/Library/Fonts/Microsoft/Verdana Bold.ttf
	/Library/Fonts/Microsoft/Verdana Italic.ttf
	/Library/Fonts/Microsoft/Verdana.ttf

(see <http://www.officeformachelp.com/office/font-management/>).


- GTA Mac Fonts works through ENC files in which each character of the TrueType font is addressed by its PostScript name. Some ENC files from TeX Live are re-used (ec.enc, qx.enc, texnansi.enc, lm-ts1.enc), others have been created specially for the OS X fonts (ec-os.enc, ec-sc.enc, ts1-didot, t5-lucidagrande), but it's for Hoefler Text that the most extensive creations have been done, with tailored ENC files dealing with the disparity of PostScript names used for the glyphs in the regular, italic and bold styles of the font, and for the availability of oldstyle digits and small caps (texnansi-sc-hoefleritalic.enc and so forth).

Unfortunately, when the version 5 of Hoefler Text in Tiger was replaced by version 6 in Snow Leopard, most PostScript character names were changed. This means most of the tailored ENC need to be rewritten.

The amount of handiwork could be reduced by addressing the glyphs through their Unicode number, such as /uniFB01 for /fi, independent from any particular version of any particular font. pdfTeX seems to understand such names, used already in

	/Library/TeX/Root/texmf-dist/fonts/enc/dvips/base/q-*-uni.enc

However, the small caps glyphs do not seem to have such Unicode numbers (at least FontForge does not mention any), so this solution wouldn't apply to them, and Textures doesn't seem to understand Unicode numbers anyway in the tests I did.


- With XeTeX and LuaTeX, Mac fonts can be used far more easily thanks to Will Robertson's fabulous fontspec package. XeTeX and LuaTeX delegate the font handling business where it belongs, namely to external libraries for XeTeX, and to Lua macros for LuaTeX. In GTA Mac Fonts this business is hand-made, allowing more control and perhaps more optimal results, but also being unreasonably time-consuming.

Several years before XeTeX, LuaTeX and fontspec, Classic Textures (Textures 2.1) offered already the same type of functionality, yielding access to any font installed at the OS level. In this way, as for XeTeX, font handling was delegated to external Mac OS libraries. Alas, this functionality is not yet available in OS X Textures (Textures 2.2).


Accordingly, to offer access to some OS X fonts until the functionality is added back to Textures 2.2, and to deal with situations when documents prepared with GTA Mac Fonts need to be re-typeset with Textures 2.2, I set up to adapt GTA Mac Fonts to Textures 2.2 and Snow Leopard. I thought that, since Textures reads TrueType font suitcases and collections directly without requiring any preliminary conversion to TTF, things would be relatively straightforward. This ended up being awfully tedious and time-consuming, and should never have been undertaken. In any case, since it's now done, here are the procedure and files for those interested.

Also, progressing in the adaptation I realized there were a few errors in the EC encoding of the Hoefler Text fonts for Tiger, and set out to correct these first.	

In addition to FontForge and Fondu, the two main components of the GW Extras i-Package are required, namely

	http://tug.org/i-packages/TL-gw-extras.ii2/TL-gw-extras.tar.bz2
	http://tug.org/i-packages/TL-gw-extras.ii2/dumpafm.pe

FontForge will be used not only to extract AFM files from the fonts, but also to check the PostScript name of each character, like this:

-------------- next part --------------
A non-text attachment was scrubbed...
Name: FontForge.png
Type: image/png
Size: 470151 bytes
Desc: not available
URL: <http://email.esm.psu.edu/pipermail/textures/attachments/20110322/57dd802b/attachment.png>
-------------- next part --------------


Here are all the steps of the procedure (you don't need to do this yourself to use the final result, fortunately):


Step 1: Correcting the encodings and metrics for Tiger's Hoefler Text
---------------------------------------------------------------------

Since the encodings for Tiger's Hoefler Text are faulty, the metrics which have been created based on them are also faulty: because some characters were not found owing to wrong names in the encoding, the dimensions written in the metrics for these characters are zero. You need to correct first the encodings, then recreate the metrics, and use these metrics for the Snow Leopard fonts.

Copy Hoefler Text.dfont from the Tiger Install DVD where it lives inside

	/System/Installation/Packages/Essentials.pkg/Contents/Archive.pax.gz

and extract the AFM files with FontForge

	fontforge -script dumpafm.pe "Hoefler Text".dfont

Open Hoefler Text.dfont in FontForge, picking up the individual fonts inside one by one, and check the glyph names correspond to those in the ENC files for Hoefler Text. It helps to draw glyph charts first for each Hoefler metrics, using for reference

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

and to only check the names for those glyphs which do not come out right in the charts.

The following replacements follow in the ENC files:

	normal
	------

	/quote.single.baseline		/quote.single.baseline		Regular
					/quote.single.base		Italic, Black
	/quote.double.baseline		/quote.double.baseline		Regular
					/quote.double.base		Italic, Black
	/L_caron			/L_quote.right
	/L_slash			/L_slash			Regular, Italic
					/L_macron			Black
	/O_hungarumlaut			/O_umlaut.hungarian
	/U_umlaut_hungarian		/U_umlaut.hungarian
	/Z_dotaccent			/Z_dot.accent
	/I_dotaccent			/I_dot.accent
	/d_bar.eth (0x9E)		/d_bar.croat
	/d_caron			/d_quote.right
	/l_caron			/l_quote.right
	/o_umlaut_hungarian		/o_umlaut.hungarian
	/t_caron			/t_quote.right
	/u_umlaut_hungarian		/u__umlaut.hungarian		Regular
					/u_umlaut.hungarian		Italic, Black
	/z_dotaccent			/z_dot.accent

	small caps
	----------

	/L_caron.small			/L_quote.right.small
	/L_slash.small			/L_slash.small			Regular, Italic
					/L_macron.small			Black
	/O_umlaut_hungarian.small	/O_umlaut.hungarian.small
	/d_bar.eth (0x9E)		/D_bar.croat.small
	/Rcaron (0xB0)			/R_caron.small
	/Sacute (0xB1)			/S_acute.small
	/Scaron (0xB2)			/S_caron.small
	/Scedilla (0xB3)		/S_cedilla.small
	/Tquoteright (0xB4)		/T_caron.small
	/Tcedilla (0xB5)		/T_cedilla.small
	/U_umlaut_hungarian (0xB6)	/U_umlaut.hungarion.small	Regular
					/U_umlaut.hungarian.small	Italic, Black
	/U_ring (0xB7)			/U_ring.small
	/Y_dieresis (0xB8)		/Y_dieresis.small
	/Z_acute (0xB9)			/Z_acute.small
	/Z_caron (0xBA)			/Z_caron.small
	/Z_dotaccent (0xBB)		/Z_dot.accent.small
	/I_J (0xBC)			/I_J.small

In some cases, this means separating one file (like ec-sc-hoefler.enc) into several (ec-sc-hoefler.enc, ec-sc-hoeflerblack.enc and ec-sc-hoefleritalic.enc) and correcting gtamacfonts.map accordingly.

The metrics are then recreated with afm2tfm, using

	afm2tfm HoeflerText-Regular -T ec-hoefler.enc -v ec-hoefler-HoeflerText ec-hoefler-raw-HoeflerText
	afm2tfm HoeflerText-Black -T ec-hoeflerblack.enc -v ec-hoefler-HoeflerTextBlack ec-hoefler-raw-HoeflerTextBlack
	afm2tfm HoeflerText-BlackItalic -T ec-hoefleritalic.enc -v ec-hoefler-HoeflerTextBlackItalic ec-hoefler-raw-HoeflerTextBlackItalic
	afm2tfm HoeflerText-Italic -T ec-hoefleritalic.enc -v ec-hoefler-HoeflerTextItalic ec-hoefler-raw-HoeflerTextItalic

	afm2tfm HoeflerText-Regular -T ec-os-hoefler.enc -v ec-os-hoefler-HoeflerText ec-os-hoefler-raw-HoeflerText
	afm2tfm HoeflerText-Black -T ec-os-hoeflerblack.enc -v ec-os-hoefler-HoeflerTextBlack ec-os-hoefler-raw-HoeflerTextBlack
	afm2tfm HoeflerText-BlackItalic -T ec-os-hoefleritalic.enc -v ec-os-hoefler-HoeflerTextBlackItalic ec-os-hoefler-raw-HoeflerTextBlackItalic
	afm2tfm HoeflerText-Italic -T ec-os-hoefleritalic.enc -v ec-os-hoefler-HoeflerTextItalic ec-os-hoefler-raw-HoeflerTextItalic

	afm2tfm HoeflerText-Regular -T ec-sc-hoefler.enc -v ec-sc-hoefler-HoeflerText ec-sc-hoefler-raw-HoeflerText
	afm2tfm HoeflerText-Black -T ec-sc-hoeflerblack.enc -v ec-sc-hoefler-HoeflerTextBlack ec-sc-hoefler-raw-HoeflerTextBlack
	afm2tfm HoeflerText-BlackItalic -T ec-sc-hoefleritalic.enc -v ec-sc-hoefler-HoeflerTextBlackItalic ec-sc-hoefler-raw-HoeflerTextBlackItalic
	afm2tfm HoeflerText-Italic -T ec-sc-hoefleritalic.enc -v ec-sc-hoefler-HoeflerTextItalic ec-sc-hoefler-raw-HoeflerTextItalic

	afm2tfm HoeflerText-Regular -T ec-sclf-hoefler.enc -v ec-sclf-hoefler-HoeflerText ec-sclf-hoefler-raw-HoeflerText
	afm2tfm HoeflerText-Black -T ec-sclf-hoeflerblack.enc -v ec-sclf-hoefler-HoeflerTextBlack ec-sclf-hoefler-raw-HoeflerTextBlack
	afm2tfm HoeflerText-BlackItalic -T ec-sclf-hoefleritalic.enc -v ec-sclf-hoefler-HoeflerTextBlackItalic ec-sclf-hoefler-raw-HoeflerTextBlackItalic
	afm2tfm HoeflerText-Italic -T ec-sclf-hoefleritalic.enc -v ec-sclf-hoefler-HoeflerTextItalic ec-sclf-hoefler-raw-HoeflerTextItalic

	apply vptovf *.vpl

	afm2tfm HoeflerText-Regular -p ts1-hoefler.enc ts1-HoeflerText
	afm2tfm HoeflerText-Black -p ts1-hoeflerblack.enc ts1-HoeflerTextBlack
	afm2tfm HoeflerText-BlackItalic -p ts1-hoefleritalic.enc ts1-HoeflerTextBlackItalic
	afm2tfm HoeflerText-Italic -p ts1-hoefleritalic.enc ts1-HoeflerTextItalic

These new MAP, TFM and VF files are then copied onto the texmf tree from TL-gw-extras.tar.bz2, overwriting the existing files.


Step 2: Correcting the encodings for Snow Leopard's Hoefler Text
----------------------------------------------------------------

Now that the TFM, VF and MAP files have been corrected in step 1, the ENC files need to be adapted to the new PostScript char names used in Snow Leopard's Hoefler Text. Be prepared to spend a lot of time checking the char names manually in FontForge!

Eventually the following replacements need to be performed, compared with the original ENC files of the i-Package (don't hold your breath!):

	Hoefler Text
	============

	ec normal
	---------

	/umlaut.hungarian		/hungarumlaut
	/dot.accent			/dotaccent
	/quote.single.baseline		/quotesinglbase
	/quote.single.base		/quotesinglbase
	/guillemot.single.left		/guilsinglleft
	/guillemot.single.right		/guilsinglright
	/quote.double.left		/quotedblleft
	/quote.double.right		/quotedblright
	/quote.double.baseline		/quotedblbase
	/quote.double.base		/quotedblbase
	/guillemot.double.left		/guillemotleft
	/guillemot.double.right		/guillemotright
	/dash.en			/endash
	/dash.em			/emdash
	/zero.inferior			/zeroinferior			Regular
					/uni2080			Black, Italic
	/i.dotless			/dotlessi
	/j.dotless			/dotlessj
	/f_f				/f_f				Regular
					/uniFB00			Black, Italic
	/f_i				/fi
	/f_l				/fl
	/f_f_i				/f_f_i				Regular
					/uniFB03			Black, Italic
	/f_f_l				/f_f_l				Regular
					/uniFB04			Black, Italic
	/quote.double			/quotedbl
	/dollar				/dollar.standard
	/percent			/percent.standard
	/quote.single.right		/quoteright
	/paren.left			/parenleft
	/paren.right			/parenright
	/bracket.left			/bracketleft
	/slash.back			/backslash
	/bracket.right			/bracketright
	/circumflex.ascii		/asciicircum
	/quote.single.left		/quoteleft
	/brace.left			/braceleft
	/bar.vert.unbroken		/bar
	/brace.right			/braceright
	/tilde.ascii			/asciitilde
	/A_breve			/Abreve
	/A_ogonek			/Aogonek
	/C_acute			/Cacute
	/C_caron			/Ccaron
	/D_caron			/Dcaron
	/E_caron			/Ecaron
	/E_ogonek			/Eogonek
	/G_breve			/Gbreve
	/L_acute			/Lacute
	/L_caron			/Lcaron
	/L_slash			/Lslash
	/L_macron			/Lslash
	/N_acute			/Nacute
	/N_caron			/Ncaron
	/N_g				/Eng
	/O_hungarumlaut			/Ohungarumlaut
	/R_acute			/Racute
	/R_caron			/Rcaron
	/S_acute			/Sacute
	/S_caron			/Scaron
	/S_cedilla			/Scedilla
	/T_caron			/Tcaron
	/T_cedilla			/Tcedilla			Regular, Italic
					/Tcommaaccent			Black
	/U_umlaut_hungarian		/Uhungarumlaut
	/U_ring				/Uring
	/Y_dieresis			/Ydieresis
	/Z_acute			/Zacute
	/Z_caron			/Zcaron
	/Z_dotaccent			/Zdotaccent
	/I_dotaccent			/Idotaccent
	/d_bar.eth (0x9E)		/dcroat
	/a_breve			/abreve
	/a_ogonek			/aogonek
	/c_acute			/cacute
	/c_caron			/ccaron
	/d_caron			/dcaron
	/e_caron			/ecaron
	/e_ogonek			/eogonek
	/g_breve			/gbreve
	/l_acute			/lacute
	/l_caron			/lcaron
	/l_slash			/lslash
	/l_macron			/lslash
	/n_acute			/nacute
	/n_caron			/ncaron
	/n_g				/eng
	/o_umlaut_hungarian		/ohungarumlaut
	/r_acute			/racute
	/r_caron			/rcaron
	/s_acute			/sacute
	/s_caron			/scaron
	/s_cedilla			/scedilla
	/t_quoteright			/tcaron
	/t_cedilla			/tcedilla			Regular, Italic
					/tcommaaccent			Black
	/u_umlaut_hungarian		/uhungarumlaut
	/u_ring				/uring
	/y_dieresis			/ydieresis
	/z_acute			/zacute
	/z_dotaccent			/zdotaccent
	/exclam.down			/exclamdown
	/question.down			/questiondown
	/A_grave			/Agrave
	/A_acute			/Aacute
	/A_circumflex			/Acircumflex
	/A_tilde			/Atilde
	/A_dieresis			/Adieresis
	/A_ring				/Aring
	/A_E				/AE
	/C_cedilla			/Ccedilla
	/E_grave			/Egrave
	/E_acute			/Eacute
	/E_circumflex			/Ecircumflex
	/E_dieresis			/Edieresis
	/I_grave 			/Igrave
	/I_acute			/Iacute
	/I_circumflex			/Icircumflex
	/I_dieresis			/Idieresis
	/D_bar.Eth			/Eth
	/N_tilde			/Ntilde
	/O_grave			/Ograve
	/O_acute			/Oacute
	/O_circumflex			/Ocircumflex
	/O_tilde			/Otilde
	/O_dieresis			/Odieresis
	/O_E				/OE
	/O_slash			/Oslash
	/U_grave			/Ugrave
	/U_acute			/Uacute
	/U_circumflex			/Ucircumflex
	/U_dieresis			/Udieresis
	/Y_acute			/Yacute
	/a_grave			/agrave
	/a_acute			/aacute
	/a_circumflex			/acircumflex
	/a_tilde			/atilde
	/a_dieresis			/adieresis
	/a_ring				/aring
	/a_e				/ae
	/c_cedilla			/ccedilla
	/e_grave			/egrave
	/e_acute			/eacute
	/e_circumflex			/ecircumflex
	/e_dieresis			/edieresis
	/i_grave			/igrave
	/i_acute			/iacute
	/i_circumflex			/icircumflex
	/i_dieresis			/idieresis
	/d_bar.eth (0xF0)		/eth
	/n_tilde			/ntilde
	/o_grave			/ograve
	/o_acute			/oacute
	/o_circumflex			/ocircumflex
	/o_tilde			/otilde
	/o_dieresis			/odieresis
	/o_e				/oe
	/o_slash			/oslash
	/u_grave			/ugrave
	/u_acute			/uacute
	/u_circumflex			/ucircumflex
	/u_dieresis			/udieresis
	/y_acute			/yacute
	/s_s.german			/germandbls
	
	texnansi normal (complements)
	-----------------------------
	
	/quote.single			/quotesingle
	/quote.single.base		/quotesinglbase
	/dagger.single			/dagger
	/dagger.double			/daggerdbl
	/bar.vert.broken		/brokenbar
	/ordinal.feminine		/ordfeminine
	/two.superior			/twosuperior			Regular
					/uni00B2			Black, Italic
	/three.superior			/threesuperior			Regular
					/uni00B3			Black, Italic
	/period.centered		/periodcentered
	/one.superior			/onesuperior			Regular
					/uni00B9			Black, Italic
	/ordinal.masculine		/ordmasculine
	
	ec small caps
	-------------
	
	/A.small			/a.small
	/B.small			/b.small
	/C.small			/c.small
	/D.small			/d.small
	/E.small			/e.small
	/F.small			/f.small
	/G.small			/g.small
	/H.small			/h.small
	/I.small			/i.small
	/J.small			/j.small
	/K.small			/k.small
	/L.small			/l.small
	/M.small			/m.small
	/N.small			/n.small
	/O.small			/o.small
	/P.small			/p.small
	/Q.small			/q.small
	/R.small			/r.small
	/S.small			/s.small
	/T.small			/t.small
	/U.small			/u.small
	/V.small			/v.small
	/W.small			/w.small
	/X.small			/x.small
	/Y.small			/y.small
	/Z.small			/z.small
	/d_bar.eth (0x9E)		/dcroat.small
	/A_breve.small			/abreve.small
	/A_ogonek.small			/aogonek.small
	/C_acute.small			/cacute.small
	/C_caron.small			/ccaron.small
	/D_caron.small			/dcaron.small
	/E_caron.small			/ecaron.small
	/E_ogonek.small			/eogonek.small
	/G_breve.small			/gbreve.small
	/L_acute.small			/lacute.small
	/L_caron.small			/lcaron.small			Regular
					/lquoteright.small		Black, Italic
	/L_slash.small			/lslash.small			Regular, Italic
					/lcaron.small			Black
	/L_macron.small			/lcaron.small			Black
	/N_acute.small			/nacute.small
	/N_caron.small			/ncaron.small
	/N_G.small			/eng.small
	/O_umlaut_hungarian.small	/ohungarumlaut.small
	/R_acute.small			/racute.small
	/Rcaron (0xB0)			/rcaron.small
	/Sacute (0xB1)			/sacute.small
	/Scaron (0xB2)			/scaron.small
	/S_caron.small			/scaron.small
	/Scedilla (0xB3)		/scedilla.small
	/Tquoteright (0xB4)		/tcaron.small
	/Tcedilla (0xB5)		/tcedilla.small
	/U_umlaut_hungarian (0xB6)	/uhungarumlaut.small
	/U_ring (0xB7)			/uring.small
	/Y_dieresis (0xB8)		/zdieresis.small		Regular
					/ydieresis.small		Black, Italic
	/Y_dieresis.small		/zdieresis.small		Regular
					/ydieresis.small		Black, Italic
	/Z_acute (0xB9)			/zacute.small
	/Z_caron (0xBA)			/zcaron.small
	/Z_caron.small			/zcaron.small
	/Z_dotaccent (0xBB)		/zdotaccent.small
	/I_J (0xBC)			/i_j.small
	/A_grave.small			/agrave.small
	/A_acute.small			/aacute.small
	/A_circumflex.small		/acircumflex.small
	/A_tilde.small			/atilde.small
	/A_dieresis.small		/adieresis.small
	/A_ring.small			/aring.small
	/A_E.small			/ae.small
	/C_cedilla.small		/ccommaaccent.small		Regular
					/ccedilla.small			Black, Italic
	/E_grave.small			/egrave.small
	/E_acute.small			/eacute.small
	/E_circumflex.small		/ecircumflex.small
	/E_dieresis.small		/edieresis.small
	/I_grave.small			/igrave.small
	/I_acute.small			/iacute.small
	/I_circumflex.small		/icircumflex.small
	/I_dieresis.small		/idieresis.small
	/D_bar.Eth.small		/eth.small
	/N_tilde.small			/ntilde.small
	/O_grave.small			/ograve.small
	/O_acute.small			/oacute.small
	/O_circumflex.small		/ocircumflex.small
	/O_tilde.small			/otilde.small
	/O_dieresis.small		/odiresis.small
	/O_E.small			/oe.small
	/O_slash.small			/oslash.small
	/U_grave.small			/ugrave.small
	/U_acute.small			/uacute.small
	/U_circumflex.small		/ucircumflex.small
	/U_dieresis.small		/udieresis.small
	/Y_acute.small			/yacute.small
	/Thorn.small			/thorn.small
	
	texnansi small caps (complements)
	---------------------------------
	
	/I.dotless.small		/dotlessi.small			Regular, Italic
					/dotlessI.small			Black
	/exclam.small			/uniFE57
	/ampersand.small		/uniFE60
	/paren.left.small		/parenleft.small
	/paren.right.small		/parenright.small
	/question.small			/uniFE56
	/bracket.left.small		/bracketleft.small
	/bracket.right.small		/bracketright.small
	/brace.left.small		/braceleft.small
	/brace.right.small		/braceright.small
	/exclam.down.small		/exclamdown.small
	/question.down.small		/questiondown.small
	
	ts1 (complements)
	-----------------
	
	/bracket.left.1			/bracketleft.alt
	/bracket.right.1		/bracketright.alt
	/colonsign.standard		/colonmonetary.standard		Regular, Black
					/colonsign.standard		Italic
	
	Hoefler Text Ornaments
	======================
	
	/fmtx.magicglyph		/glyph61

Replace the original ENC files by the corrected versions.


Step 3: Preparing the metrics suitcase
--------------------------------------

Take the whole ENC file set prepared in step 2. Complement it with

	http://mirror.ctan.org/info/fontname/ec.enc
	http://mirror.ctan.org/info/fontname/qx.enc
	http://mirror.ctan.org/fonts/lm/fonts/enc/dvips/lm/lm-ts1.enc

When underscores "_" remain in the corrected char names, delete them. The affected glyphs (like /f_f) won't appear in Textures' output, but it's better than leaving the underscores which would result not only in the glyph being absent but also in Textures misinterpreting the whole encoding and reverting to Macintosh Standard Roman (see the second message in this series).

Prepare the ENC file set in the way required by EdMetrics (ie removing all text before the opening [ and after the closing ], and removing any comment).

Convert the TFM and VF files prepared in step 1 to PL and VPL format as described in the first message of this series (ie apply tftopl and vftovp, ensuring that the result has Mac-style end of lines and is of type "TEXT").

Make a ZIP archive of these PL, VPL and ENC files. Don't use the Finder Compress facility, as the result can't be processed by the version of StuffIt Expander in Mac OS Classic (in Internet > Utilitaires Internet > Dossier Aladdin > StuffIt Expander? 5.1.4 on my French setup). Prefer StuffIt Destinations from the Mac App Store, or go command-line with

	zip -r my-folder my-folder

This will compress the sub-directory of name "my-folder" in the current directory to an archive of name "my-folder.zip".

Uncompress the result on your Classic setup. Owing to the restrictions on the length of file names in Classic, the long TFM and VF file names in GTA Mac Fonts (up to 52 characters plus extension) have been truncated as follows:

	American Typewriter
	-------------------
	
	ec-AmericanTypewriterCondensedB		ec-AmericanTypewriterCondensedBold
	ec-AmericanTypewriterCondensedL		ec-AmericanTypewriterCondensedLight
	ec-raw-AmericanTypewriterCo.1		ec-raw-AmericanTypewriterCondensedBold
	ec-raw-AmericanTypewriterCo.2		ec-raw-AmericanTypewriterCondensedLight
	ec-raw-AmericanTypewriterConden		ec-raw-AmericanTypewriterCondensed
	texnansi-AmericanTypewriter.1		texnansi-AmericanTypewriterCondensedBold
	texnansi-AmericanTypewriter.2		texnansi-AmericanTypewriterCondensedLight
	texnansi-AmericanTypewriterCond		texnansi-AmericanTypewriterCondensed
	texnansi-AmericanTypewriterLigh		texnansi-AmericanTypewriterLight
	ts1-AmericanTypewriterConde.1		ts1-AmericanTypewriterCondensedBold
	ts1-AmericanTypewriterConde.2		ts1-AmericanTypewriterCondensedLight
	
	Baskerville
	-----------
	
	ec-raw-BaskervilleSemiBoldItali		ec-raw-BaskervilleSemiBoldItalic
	texnansi-BaskervilleSemiBoldIta		texnansi-BaskervilleSemiBoldItalic
	
	Futura
	------
	
	texnansi-FuturaCondensedExtraBo		texnansi-FuturaCondensedExtraBold
	
	Helvetica Neue
	--------------
	
	ec-HelveticaNeueUltraLightItali		ec-HelveticaNeueUltraLightItalic
	ec-raw-HelveticaNeueCondensedBl		ec-raw-HelveticaNeueCondensedBlack
	ec-raw-HelveticaNeueCondensedBo		ec-raw-HelveticaNeueCondensedBold
	ec-raw-HelveticaNeueUltraLightI		ec-raw-HelveticaNeueUltraLightItalic
	texnansi-HelveticaNeueBoldItali		texnansi-HelveticaNeueBoldItalic
	texnansi-HelveticaNeueConde.1		texnansi-HelveticaNeueCondensedBold
	texnansi-HelveticaNeueCondensed		texnansi-HelveticaNeueCondensedBlack
	texnansi-HelveticaNeueLightItal		texnansi-HelveticaNeueLightItalic
	texnansi-HelveticaNeueUltra.1		texnansi-HelveticaNeueUltraLightItalic
	texnansi-HelveticaNeueUltraLigh		texnansi-HelveticaNeueUltraLight
	ts1-HelveticaNeueUltraLightItal		ts1-HelveticaNeueUltraLightItalic
	
	Hoefler Text
	------------
	
	ec-hoefler-HoeflerTextBlackItal		ec-hoefler-HoeflerTextBlackItalic
	ec-hoefler-raw-HoeflerTextB.1		ec-hoefler-raw-HoeflerTextBlackItalic
	ec-hoefler-raw-HoeflerTextItali		ec-hoefler-raw-HoeflerTextItalic
	ec-os-hoefler-HoeflerTextBlackI		ec-os-hoefler-HoeflerTextBlackItalic
	ec-os-hoefler-raw-HoeflerTe.1		ec-os-hoefler-raw-HoeflerTextBlackItalic
	ec-os-hoefler-raw-HoeflerTextBl		ec-os-hoefler-raw-HoeflerTextBlack
	ec-os-hoefler-raw-HoeflerTextIt		ec-os-hoefler-raw-HoeflerTextItalic
	ec-sc-hoefler-HoeflerTextBlackI		ec-sc-hoefler-HoeflerTextBlackItalic
	ec-sc-hoefler-raw-HoeflerTe.1		ec-sc-hoefler-raw-HoeflerTextBlackItalic
	ec-sc-hoefler-raw-HoeflerTextBl		ec-sc-hoefler-raw-HoeflerTextBlack
	ec-sc-hoefler-raw-HoeflerTextIt		ec-sc-hoefler-raw-HoeflerTextItalic
	ec-sclf-hoefler-HoeflerText.1		ec-sclf-hoefler-HoeflerTextBlackItalic
	ec-sclf-hoefler-HoeflerTextBlac		ec-sclf-hoefler-HoeflerTextBlack
	ec-sclf-hoefler-HoeflerTextItal		ec-sclf-hoefler-HoeflerTextItalic
	ec-sclf-hoefler-raw-Hoefler.1		ec-sclf-hoefler-raw-HoeflerTextBlack
	ec-sclf-hoefler-raw-Hoefler.2		ec-sclf-hoefler-raw-HoeflerTextBlackItalic
	ec-sclf-hoefler-raw-Hoefler.3		ec-sclf-hoefler-raw-HoeflerTextItalic
	texnansi-hoefler-raw-HoeflerTex		texnansi-hoefler-raw-HoeflerText
	texnansi-hoeflerblack-HoeflerTe		texnansi-hoeflerblack-HoeflerTextBlack
	texnansi-hoeflerblack-raw-Hoefl		texnansi-hoeflerblack-raw-HoeflerTextBlack
	texnansi-hoefleritalic-Hoef.1		texnansi-hoefleritalic-HoeflerTextItalic
	texnansi-hoefleritalic-HoeflerT		texnansi-hoefleritalic-HoeflerTextBlackItalic
	texnansi-hoefleritalic-raw-.1		texnansi-hoefleritalic-raw-HoeflerTextItalic
	texnansi-hoefleritalic-raw-Hoef		texnansi-hoefleritalic-raw-HoeflerTextBlackItalic
	texnansi-os-hoefler-raw-Hoefler		texnansi-os-hoefler-raw-HoeflerText
	texnansi-os-hoeflerblack-Hoefle		texnansi-os-hoeflerblack-HoeflerTextBlack
	texnansi-os-hoeflerblack-raw-Ho		texnansi-os-hoeflerblack-raw-HoeflerTextBlack
	texnansi-os-hoefleritalic-H.1		texnansi-os-hoefleritalic-HoeflerTextItalic
	texnansi-os-hoefleritalic-Hoefl		texnansi-os-hoefleritalic-HoeflerTextBlackItalic
	texnansi-os-hoefleritalic-r.1		texnansi-os-hoefleritalic-raw-HoeflerTextItalic
	texnansi-os-hoefleritalic-raw-H		texnansi-os-hoefleritalic-raw-HoeflerTextBlackItalic
	texnansi-sc-hoefler-raw-Hoefler		texnansi-sc-hoefler-raw-HoeflerText
	texnansi-sc-hoeflerblack-Hoefle		texnansi-sc-hoeflerblack-HoeflerTextBlack
	texnansi-sc-hoeflerblack-raw-Ho		texnansi-sc-hoeflerblack-raw-HoeflerTextBlack
	texnansi-sc-hoefleritalic-H.1		texnansi-sc-hoefleritalic-HoeflerTextItalic
	texnansi-sc-hoefleritalic-Hoefl		texnansi-sc-hoefleritalic-HoeflerTextBlackItalic
	texnansi-sc-hoefleritalic-r.1		texnansi-sc-hoefleritalic-raw-HoeflerTextItalic
	texnansi-sc-hoefleritalic-raw-H		texnansi-sc-hoefleritalic-raw-HoeflerTextBlackItalic
	texnansi-sclf-hoefler-HoeflerTe		texnansi-sclf-hoefler-HoeflerText
	texnansi-sclf-hoefler-raw-Hoefl		texnansi-sclf-hoefler-raw-HoeflerText

Import the metrics one by one in EdMetrics, picking up the proper custom encoding for each according to gtamacfonts.map (prepared in step 1), and restore each truncated metrics name to its original full length.


Step 4: Adapt the LaTeX support files
-------------------------------------

At this point it may seem like you're done at last, but you're not. A bit more needs to be done.

Open the documentation files

	gtamacfonts.tex
	latexbaskerville.tex
	latexdidot.tex
	latexgeorgia.tex
	latexhoefler.tex

in a Unicode-aware text editor, like TextWrangler or BBedit, make sure they're opened in UTF-8 encoding, replace

	\usepackage[utf8]{inputenc}

by

	\usepackage[applemac]{inputenc}

and save them in Macinstosh Roman Standard encoding.

In the .sty files, delete the line

	\pdfmapfile{+gtamacfonts.map}

and replace, when it is present, the line

	\renewcommand{\ttdefault}{lmtt}} 

by

	\renewcommand{\ttdefault}{cmtt}}
	\DeclareRobustCommand{\ttfamily}
        	{\not at math@alphabet\ttfamily\mathtt
	         \fontfamily\ttdefault
	         \fontencoding{OT1}\selectfont}

(since Latin Modern fonts aren't available in Textures).

You can throw away all the ConTeXt-related files in the doc and tex directories, they're meaningless for Textures.


Step 5: Staying away from Office
--------------------------------

And finally as a retribution for all your efforts, there's one more precaution to take. Upon installation, Microsoft Office 2011 displaces OS X's version 5.01x of Verdana to /Library/Fonts Disabled and replaces it by a newer version 5.02 in /Library/Fonts/Microsoft. Alas, the new version has different char names for the ligatures, for example /uniFB01 instead or /fi, which fools Textures.

Hence you need to either displace Verdana 5.01 back to /Library/Fonts and disable Verdana 5.02, or copy Verdana 5.01 to the Textures Fonts folder so that Textures will give it precedence.


Attached is an archive containing the resulting metrics suitcase. Putting it in place and correcting the LaTeX support files as indicated in step 4 is hopefully all you have to do to get GTA Mac Fonts in Textures. Beware though that, because of Textures' inability to use encoding files containing underscores, all the ff ligatures etc. will be absent from the output for Hoefler Text.

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



More information about the Textures mailing list