[math-font-discuss] Setting up fonts for TeX maths

Dr. Clea F. Rees cfrees at imapmail.org
Mon Jul 12 22:58:23 CEST 2010


I'm trying to setup support for Irianis ADF in TeX/LaTeX. (Allegedly
for TL 2010 but that is rather unlikely to happen at this point.)

I've got one font in postscript type 1 format which contains an
enormous number of glyphs, many with only unicode names.

I'm having trouble mapping the glyphs provided by the font to slots in
the relevant encodings (OT1, OMS, OML,  OMX right now), especially for
OMX. I have used the glyphtounicode.tex file for pdftex but in some
cases the unicode names in the font don't appear to be the same and in
others the file just lacks an entry for the TeX encoding's name
altogether.

The extensible glyphs are proving especially tricky because I have
little sense of how much larger one glyph should be than another or how
large a glyph should be in comparison with, say, an 'x' or an 'A' or
whatever.

I wondered if either of the following sorts of resources were available:
 	- a more complete glyphtounicode list for TeX maths encodings;
 	- guidelines of any sort on identifying suitable glyphs for the
 	  various slots.
It cannot help that I personally typeset almost no mathematics and so
have very little idea of how these glyphs are used in practice.

For what it is worth, here's a summary of my progress so far.

Summary: I'm having a good deal of trouble doing the following:
   - mapping the glyph names in the maths font to those in the maths
     encodings for TeX;
   - figuring out which glyphs are really missing and, if they are,
     whether I can successfully substitute something else or not.

As far as I can figure out, there are four basic encodings of which one
has several variants:
1) OT1: the original *text* encoding but needed for maths. I've always
used T1 so I'm not familiar with it even though it is a text encoding.
This one has variants (e.g. the italic version gets a sterling sign
where the upright version gets a dollar and much more - at least 5
variants of this one I've read, but I hopefully ignore some!)
1 - renaming: standard (no different from what I do routinely for T1
1 - missing:
   {ringfitted} (OK - fontinst will fake this)
   {visiblespace} (also in T1 - fontinst will fake it fine)
   {lslashslash}
   is there anything I should substitute for lslashslash? (This is used
   to create Lslash/lslash from L/l.) It is unfakable in fontinst.
2) OML: italic maths.
2 - reaming:
   {epsilon1}{uni03F5}
   {rho1}{uni03F1}
   {triangleright}{uni25C3}
   {triangleleft}{uni25B9}
   {star}{uni22C6}
   {pi1}{omega1}
   {dotlessj}{uni0237}
   {lscript}{afii61289}
   {harpoonleftup}{uni21BC}
   {harpoonleftdown}{uni21BD}
   {harpoonrightup}{uni21C0}
   {harpoonrightdown}{uni21C1}
   does this look right? Some of it is from the pdftex glyph-to-unicode
   mapping but some is just from me looking.
2 - missing:
   {flat}{266D} {musicflatsign}{266D}
   {natural}{266E}
   {sharp}{266F} {musicsharpsign}{266F}
   {slurbelow}{2323}
   {slurabove}{2322}
   {vector}{20D7}
   {tie}
   {hookrightchar}
   {hookleftchar}
   There are some *very* strange things in these encodings. I assume the
   musical symbols are irrelevant. All except vector are unfakable.
   fontinst will fake vector if I rename uni2192 to arrowright for OML. Is
   there anything I should substitute for any of the others? Should
   uni2192 be mapped to arrowright?
3 OMS: maths symbol
3 - renaming:
   \renameglyph{minusplus}{uni2213}
   \renameglyph{circleminus}{uni2296}
   \renameglyph{circledivide}{uni2298}
   \renameglyph{circledot}{uni2299}
   \renameglyph{circlecopyrt}{uni20DD}
   \renameglyph{equivasymptotic}{uni224D}
   \renameglyph{precedesequal}{uni227C}
   \renameglyph{followsequal}{uni227D}
   \renameglyph{lessmuch}{uni226A}
   \renameglyph{greatermuch}{uni226B}
   \renameglyph{precedes}{uni227A}
   \renameglyph{follows}{uni227B}
   \renameglyph{arrowleft}{uni2190}
   \renameglyph{arrowright}{uni2192}
   \renameglyph{arrownortheast}{uni2197}
   \renameglyph{arrowsoutheast}{uni2198}
   \renameglyph{similarequal}{uni2243}
   \renameglyph{arrownorthwest}{uni2196}
   \renameglyph{arrowsouthwest}{uni2199}
   \renameglyph{triangleinv}{uni25BD}
   \renameglyph{latticetop}{uni22A4}
   \renameglyph{unionmulti}{uni228E}
   \renameglyph{turnstileleft}{uni22A2}
   \renameglyph{turnstileright}{uni22A3}
   \renameglyph{bardbl}{uni2225}
   \renameglyph{arrowdblbothv}{uni21D5}
   \renameglyph{wreathproduct}{uni2240}
   \renameglyph{coproduct}{uni2A3F}
   \renameglyph{unionsq}{uni2294}
   \renameglyph{intersectionsq}{uni2293}
   \renameglyph{subsetsqequal}{uni2291}
   \renameglyph{supersetsqequal}{uni2292}
   \renameglyph{diamond}{uni2662} % we want the outlined diamond, not the filled one
   \renameglyph{heart}{uni2661} % ditto the heart
   \renameglyph{prime}{minute}
   \renameglyph{owner}{suchthat}
   \renameglyph{arrowbothv}{arrowupdn}
   \renameglyph{diamondmath}{uni22C4}
   again, some of this is from pdftex's unicode list but some is just
   from looking. The picture I have of the encoding has the diamond and
   heart in outline but the club and spade filled hence the changes I've
   made to those.
3 - missing:
   {negationslash}{0338} {soliduslongoverlaycmb}{0338}
   {ceilingleft}{2308}
   {ceilingright}{2309}
   {floorleft}{230A}
   {floorright}{230B}
   {mapstochar}
   {emptysetstress}
   {radicallow}
   of these, mapstochar only seems to be unfakable. Does anything map to
   this?
4) OMX: maths ext. This one is the really problematic one. I have
unicode equivalents for very little and what little I have them for
matches virtually nothing in the font...
4 - renaming (certainly at least partly wrong - see below):
   {arrowvertex}{uniF8E6}
   {circlemultiplytext}{circlemultiply}
   {circlemultiplydisplay}{uni2A02}
   {circleplustext}{circleplus}
   {circleplusdisplay}{uni2A01}
   {circledottext}{uni2299}
   {circledotdisplay}{uni2A00}
   {radicalbig}{radical1}
   {radicalBig}{radical2}
   {radicalbigg}{radical3}
   {radicalBigg}{radical4}
   {contintegraltext}{uni222E}
   {contintegraldisplay}{uni222E.big1}
   {integraltext}{integral}
   {integraldisplay}{uni222B.big1}
   {summationtext}{summation}
   {producttext}{product}
   {uniontext}{union}
   {intersectiontext}{intersection}
   {logicalandtext}{logicaland}
   {logicalortext}{logicalor}
   {unionsqtext}{uni2294}
   {unionmultitext}{uni228E}
   {coproducttext}{uni2A3F}
   {logicalordisplay}{uni22C1}
   {logicalanddisplay}{uni22C0}
   {intersectiondisplay}{uni22C2}
   {uniondisplay}{uni22C3}
   {unionsqdisplay}{uni2A06}
   {coproductdisplay}{uni2210}
   {unionmultidisplay}{uni2A04}
   {parenlefttp}{uni239B}
   {parenleftbt}{uni239D}
   {parenrighttp}{uni239E}
   {parenrightbt}{uni23A0}
   {parenleftex}{uni239C}
   {parenrightex}{uni239F}
   {bracketleftex}{uni23A2}
   {bracketrightex}{uni23A4}
   {bracketleftbt}{uni23A3}
   {bracketrightbt}{uni23A6}
   {bracketrighttp}{uni23A4}
   {bracketlefttp}{uni23A1}
   {braceleftmid}{uni23A8}
   {bracerightmid}{uni23AC}
   {bracerightbt}{uni23AD}
   {braceleftbt}{uni23A9}
   {bracerighttp}{uni23AB}
   {bracelefttp}{uni23A7}
   {braceex}{uni23AA}
   at least some of this is certainly wrong because with this mapping,
   I'd get mismatches in terms of text and display sizes. For example,
   I've mapped uni2210 to coproductdisplay and uni2A3F to coproducttext
   but product to producttext which isn't going to work. Should these all
   be mapped to xxxtext and xxxdisplay left unmapped? There is a similar
   problem in deciding how to map some of the other sizes. In some
   cases, I've got multiple sizes of a glyph but only one or two slots.
   In that case, how should I determine which to use? (In other cases, I
   have too few sizes but that's a different issue.)
4 - missing??:
       0	parenleftbig
       1	parenrightbig
       2	bracketleftbig
       3	bracketrightbig
       4	floorleftbig
       5	floorrightbig
       6	ceilingleftbig
       7	ceilingrightbig
       8	braceleftbig
       9	bracerightbig
      10	angleleftbig
      11	anglerightbig
      12	barex
      13	bardblex
      14	slashbig
      15	backslashbig
      16	parenleftBig
      17	parenrightBig
      18	parenleftbigg
      19	parenrightbigg
      20	bracketleftbigg
      21	bracketrightbigg
      22	floorleftbigg
      23	floorrightbigg
      24	ceilingleftbigg
      25	ceilingrightbigg
      26	braceleftbigg
      27	bracerightbigg
      28	angleleftbigg
      29	anglerightbigg
      30	slashbigg
      31	backslashbigg
      32	parenleftBigg
      33	parenrightBigg
      34	bracketleftBigg
      35	bracketrightBigg
      36	floorleftBigg
      37	floorrightBigg
      38	ceilingleftBigg
      39	ceilingrightBigg
      40	braceleftBigg
      41	bracerightBigg
      42	angleleftBigg
      43	anglerightBigg
      44	slashBigg
      45	backslashBigg
      46	slashBig
      47	backslashBig
      68	angleleftBig
      69	anglerightBig
      88	summationdisplay
      89	productdisplay
      98	hatwide
      99	hatwider
     100	hatwidest
     101	tildewide
     102	tildewider
     103	tildewidest
     104	bracketleftBig
     105	bracketrightBig
     106	floorleftBig
     107	floorrightBig
     108	ceilingleftBig
     109	ceilingrightBig
     110	braceleftBig
     111	bracerightBig
     116	radicalbt
     117	radicalvertex
     118	radicaltp
     119	arrowvertexdbl
     120	arrowtp
     121	arrowbt
     122	bracehtipdownleft
     123	bracehtipdownright
     124	bracehtipupleft
     125	bracehtipupright
     126	arrowdbltp
     127	arrowdblbt
   any thoughts?

I assume that u1D434-u1D467 should be used to fill the maths italic
alphabet slots in OML and that u1D49C-u1D4B5 should fill the
calligraphic upper case slots in OMS. Should .oldstyle or .taboldstyle
digits be used for the oldstyle digits in OML? (I don't know why these
are here but they are... I'm sure somebody told me oldstyle digits were
useless in maths...)

A picture of the font is attached. I printed this from fontforge. If
anybody knows how to produce a more useful table (e.g. one which
includes the glyph names), please let me know.

Thanks for any advice,
cfr
-------------- next part --------------
A non-text attachment was scrubbed...
Name: IrianisADFMath-Regular_glyphs.pdf
Type: application/pdf
Size: 624361 bytes
Desc: output from fontforge (pdf, 5 pages)
URL: <http://tug.org/pipermail/math-font-discuss/attachments/20100712/eb113abf/attachment-0001.pdf>


More information about the math-font-discuss mailing list