1
0
mirror of synced 2026-01-12 00:42:56 +00:00
Interlisp.medley/lispusers/READAPPLEFONT.TEDIT
2020-11-15 19:22:14 -08:00

14 lines
21 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

en·vÅos READAPPLEFONT
2
4
1
READAPPLEFONT
1
4
By: Christopher Lane (Lane@Sumex-Aim.Stanford.Edu)
Uses: READDISPLAYFONT
READAPPLEFONT defines a new display font type which allows Envos Lisp to use (commercially available) MacintoshÔ display fonts. Although this module is primarily intended for extracting font width information for conversion programs (eg. MacPaintÔ to Sketch and vice versa) it can also be used to extend the number of display fonts available within the Envos Lisp environment.
There are no user functions in the module. In addition to this module, you need a directory of extracted MacintoshÔ font files (as described below) and you must add the name of that directory to the system DISPLAYFONTDIRECTORIES list. The following function is added under the type APPLE to the list DISPLAYFONTTYPES (defined by the READDISPLAYFONT module).
(READAPPLEFONT STREAM FAMILY SIZE FACE) [Function]
The module also adds the extension APPLE to the system list DISPLAYFONTEXTENSIONS.
FONT FILES
This module only uses the FontRec portion of the font files (see Inside MacintoshÔ). The font resources must be extracted into individual files with appropriate names, eg. SANFRANCISCO18-MRR-C0.APPLE. One method of doing this is to use the Font/DA MoverÔ utility:
@°5ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿù˜˜˜˜˜˜˜˜˜0À|`˜@ ``˜O `xøð˜Ÿ<>`ÌÌ`˜Ÿ<>xÌÌ`˜Ÿ<>`ÌÌ`˜Ÿ<>`ÌÌ`˜O `ÌÌ`˜@ `xÌ0˜ ˜xÌxؘ<ÌÌÌà˜ ìÌÌÌÀ˜ ÌÌÌüÀ˜ŒÌÌÀÀ˜0À|À ÌÈÄÀ˜@ fÀ À xðxÀ˜@ f<8Ì Ç8xÛ0˜ffdØ Ì™32dÌã0˜ffpðÌ38pÌÃ0˜f~8à Ì?8ÌÃ0˜f`ð Ì0ÌÃ0˜@ fbLØ Ì™1&LÌÃ0˜@ |<8Ì Ç8xÁð˜0˜0˜à˜˜˜˜˜˜˜˜˜˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø˜ @ ˜ @@ ˜  @˜ð `<!@<à00x"˜˜ 8F"@Ãb 0A˜˜ñ<CB9C>gÃÀ$@a€`<|f>Ï1Ç€0Ì€ˆ˜Œff`(@0À`fff #3™™3&LÀ0ÌH˜ðù<C3B0>Œff` >@``fff3Ƙ3† À0xÁè˜<11>™™Œff`"@0À`fff 33˜ À0ÌA˜<11>™™Œff`0"@a€`fff33˜ À0ÌA˜<11>™™Œff``"@Ãbfff 033™™2fLÀ0ÌA˜€ù<E282AC>†fcÀ~#ø@<<|>3™Ž1Ç€0x˜ @`˜ @`F˜?ÿÀ< ÿø˜""@ ˜(ˆÀÿÿÿÿÿÿÿÿßð˜""@˜(ˆÀÀ˜ð `""@à˜˜ 8(ˆÀ˜˜ñ<CB9C>gÃÀ""@˜Œff`&(ˆÀ˜ðù<C3B0>Œff`F""@˜<11>™™Œff`(ˆÀÀ˜<11>™™Œff`""@À˜<11>™™Œff`(ˆÀ˜€ù<E282AC>†fcÀ""@˜(ˆÀ˜""@˜(ˆÀ˜""@ÿÿÿÿÿÿÿÿÿÿð˜(ˆÀ ˜""@ ˜(ˆÀ˜ð `<""@𘘠8f(ˆÀ˜˜˜ñ<CB9C>gÃÀf""@˜ñÿ<19>˜Œff`f(ˆÀ™™™™™™€˜ðù<C3B0>Œff`<""@ñ™™™™™€˜<11>™™Œff`f(ˆÀ™ù™™™Ÿ€˜<11>™™Œff`f""@<>™™™˜˜<11>™™Œff`f(ˆÀ™‰™™™˜€ù<E282AC>†fcÀ<""@˜ñ™<C3B1>˜(ˆÀ˜""@˜(ˆÀ ˜""@ ˜(ˆÀÿÿÿÿÿÿÿÿÿÿð˜""@˜(ˆÀ˜ð `<""@˜˜ F(ˆÀ˜˜ñ<CB9C>gÃÀ""@˜Œff`&(ˆÀ˜ðù<C3B0>Œff` F""@˜<11>™™Œff`(ˆÀ˜<11>™™Œff`0""@˜<11>™™Œff``(ˆÀ˜€ù<E282AC>†fcÀ~""@˜(ˆÀ˜""@˜(ˆÀ˜?ÿÀ˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÀ˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÀ˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÀ˜ÿÿÁÿÿÿüÿÿÿüøÿðÀ˜oÿÿÏÿÿÿÿÿÿÿøó?ÿðÀ˜~Ï“ãLJüó?ÿðÀ˜=ÌÏÏŽæflÍ3üó?ÿðÀ˜ Ïßf|ÇŸ3üøÿðÀ˜ŒÌÏÏžff|ãŸ3üó?ÿðÀ˜ÌÌÏÏžff|ñŸ3üó?ÿðÀ˜ÌÌÏÏžfflÙ3üó?ÿðÀ˜ ÏÏŸgãLJüøÿðÀ˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÀ˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÀ˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀá‡ãÀ`0˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿâ"@Æ``0˜(ˆÀ<01>`|fxðà˜""@Á‡Æ`ff1™<31>˜(ˆÀa€f`ff1™À˜à00""@a€f`ff1øà˜<11>003(ˆÀa€f`ff1€p˜ƒ3þ>03""@a„f`ff1‰0˜Ã333303(ˆÀÁƒÃÀ|>ðà˜ã333303""@˜s33330(ˆÀF˜333330""@<˜333330(ˆÀ˜áó3>0""@˜0(ˆÀ˜0""@˜à(ˆÀ À`˜""@ À`˜(ˆÀ‡ŒxqãÃà˜?ÿÀLÌÌÈÆf`ÿø˜ @ ÌÌÀÆf`˜à00  @<03>ÌüÀÇæ`˜<11>003#ø@Ì ÀÀÆ`˜ƒ3þ>0 3"@ÌLÄÈÆ&`A˜Ã33330 3"@‡ŒxpcÃàA˜ã33330 3"@A˜s33330 3>@Áè˜333330 3(@H˜333330 3$@€ˆ˜áó3>0 "@A˜0!@"˜0  @˜à @@˜ @˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø˜˜˜˜˜˜0À @ ˜0@ 3``˜3xñÿ<07>Œ<|8Ç 3˜321™™€ÌÌFfdÌ™3 3˜381™™€ƒ‡ÌÏ>f`Î3 >_`˜31ù™€ÌÌÌff`Ç3 3N`˜31<>™€€ÌÌÌff`Ø3 3D`˜3&1‰™€ÌÌÌffdÉ™3 3@ff˜ñ™€ƒ‡ÌÌ>f8Ç @ff˜˜#˜˜˜ÿÿÿÿÿÿÿÿÿÿ𘠘 ˜|8ÆÃŒ`˜fdÌfLÀ˜ÇÀf`Ø<|f
˜f`fpð<19>ðffg˜f`f8à™™˜ff˜f`f𙙘ff˜f`f ØŸ™˜ff`Í€˜f`fL̘˜ffdÌÀ˜Æ`|8Ƙ™˜<fÃŒ`˜<19>𘘘 ˜ ˜ÿÿÿÿÿÿÿÿÿÿ𘘠??1€paøðqùŒ˜33Àà1˜À1˜˜ 30 6æÏ`a™€a°6xx˜ 3><Ç™€`ñ™ðñà8Ì̘ 338Æ™€`™˜À0Ì̘ 33<ÆŸ€`™˜à0üü˜ 336Æ`™˜°0ÀÀ˜ #33#3Ƙ€a™™˜0ÄĘ 1€Æ`ðððñŒ0xx˜˜˜˜˜ÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿ€˜ `À˜ À`˜ ˜ ˜0 `Æ ˜10 À`& ˜01áÃÀ ÌÌð<8x ˜033&` ÌÌ`fdÌ ˜033†` ÌÌ`fpÌ ˜031Çà ÌÌ`f8ü ˜030æ ÌÌ`fÀ ˜132f  ÌÌ`&fLÄ ˜1áÃÀ‡Ì0Æ<8x ˜À ˜ ˜ À`˜ `À˜ÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿ€˜˜˜˜˜˜˜
ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª ˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜à˜à
˜
˜à
˜?ñ€ü ˜ø 'Ñ€˜<?Æ ÿáÀŽ˜@À3Á€˜î÷ˆ‡9Àâ ÜÎǘ<07>€Á³ÇÃŒpáà 30Á¼ð˜f÷˜Ç9À†3ï€Ì:ÖÀ˜ÌÀÁÄffLÉ“0 30ÁÆ ˜fyæ`÷˜Ç9Ïø†0Ì\æÁ€˜‡ÌÀñƒæf áƒ0 Áƒ˜fyæÀ÷˜Ç9dž0DÌÆÍ€˜ÌÌÀÁ†ff qƒ0 3Áƒ˜fxðÇ9dž0(ÌÆÍ€˜ÌÌÀÁ†ff 9ƒ0 3Áƒü˜fðÇ9‡†0ÌÆÍ€˜ÌÌÀÁ†ffL™“0 30Áƒ˜fyç€ðÇÿ†0(Ì֘̀˜‡ÌÀÁƒæcŒpáà 0Áƒ˜f>yæÀàðÀ†0DÌçÍ€˜áƒøfyæ`ð ÌƘnjf?Æ0øÁÃï€ØÌ˜ðf¾ØÌ˜fØÌ˜?Ø~˜p˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜ŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿù€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
If another method for extracting the FontRec data structure into individual files is used, the following variable will probably need to be reset:
APPLEFONTREC.OFFSET [Variable]
The offset in bytes into the font file of where the FontRec data structure begins (initially 264).
NOTES
ÿÿïfÿ This module only handles proportionally spaced fonts and ignores fractional character widths.
ÿÿïfÿ The user is responsible for determining the legality of extracting the fonts in question.
The individual font files should be moved to a Unix AUFS/CAP server (or the equivalent) and the resource forks (in the .resource directory) should be copied to the directory you added to DISPLAYFONTDIRECTORIES above.
(LIST ((PAGE NIL (PAPERSIZE LETTER FOLIOINFO (ARABIC "" "") STARTINGPAGE# 228) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC "" "")) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 528 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))) (PAGE NIL NIL (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF SLOPE REGULAR WEIGHT MEDIUM)) (282 42 72 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 444 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))) (PAGE NIL NIL (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF SLOPE REGULAR WEIGHT MEDIUM)) (282 42 72 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 444 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))))),È5ØÈ8P2 È 5ÈÈ,È,ŠŠ8,ŠŠ8HÈÈ PAGEHEADING RUNNINGHEAD CLASSICCLASSICCLASSICMODERN
?1(DEFAULTFONT 1 (GACHA 10) (GACHA 8) (TERMINAL 8))
 HELVETICA
MODERN
MODERN
MODERN MODERNMODERN

 HRULE.GETFNMODERN
 HRULE.GETFNMODERN
 HRULE.GETFNMODERN
  HRULE.GETFNMODERN   HRULE.GETFNMODERN  4z
 \  # * A ¡
A: BMOBJ.GETFN3?1(DEFAULTFONT 1 (GACHA 10) (GACHA 8) (TERMINAL 8))
ca]ÙIzº