texmacs-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Texmacs-dev] Postscript and non-bitmaps fonts


From: Joris van der Hoeven
Subject: [Texmacs-dev] Postscript and non-bitmaps fonts
Date: Mon, 19 May 2003 17:41:54 +0200 (CEST)

Hi,

I took a more detailed look at how to generate non-bitmaps fonts
in the postscript output. A good surprise is that running LaTeX with
the "-P cmz" option or not roughly generates the same file:
the difference is mostly reduced to the font descriptions.
Therefore it seems that it suffices to replace the bitmap fonts by
the postscript fonts in the appropriate routines in printer.cc.
More precisely, a bitmap font like

%DVIPSBitmapFont: Fa cmtt9 9 27
/Fa 27 127 df<007FB512F8B612FCA46C14F81E067C9927>45 D<121EEA7F80A2EAFFC0
A4EA7F80A2EA1E000A0A728927>I<1538157C15FCA2140115F8140315F0140715E0140F
15C0141F1580143F1500A25C147E14FE5C13015C13035C13075C130F5CA2131F5C133F91
C7FC5B137E13FE5B12015B12035BA212075B120F5B121F5B123F90C8FC5A127E12FE5AA2
5A12781E3A7CB327>I<EB1FF8EBFFFE0003EBFF80000F14C015E0391FF01FF0393FC007
F8EB800115FC1400A26CC7FC1204C8FC140115F81403EC07F0140FEC3FE090381FFFC049
1380A215E06D13F09038001FF8EC03FC1401EC00FE157E157F153FA21238127C12FEA215
7F48147E6C14FE007FEB01FCEB8003393FF01FF86CB512F06C14E000031480C6EBFE00EB
1FF820307DAE27>51 D<1278B612FE15FFA315FE39FC0001FCEC03F8EC07F0007814E0C7
120FEC1FC01580143FEC7F00147E14FE5C13015C13035C13075CA2495AA3495AA3133F91
C7FCA55B137EA9133C20307DAE27>55 D<EB0FF0EB7FFC48B5FC4814804814C0390FF81F
E0391FE007F0393FC003F8EB8001D87F0013FC007E130012FE48147EA4157F153F157F7E
127E007F14FF7E6D5A381FE007380FF01F6CB6FC7E6C143F39007FFC7F90381FF07E90C7
FCA215FCA2140115F8001F1303393F8007F0EC0FE0141FEC3FC09038C0FF806CB512005C
6C13F8000313E0C6138020307DAE27>57 D<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7
FCAC121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A20729F27>I<007FB5FCB612E081816C
803907E003FEEC00FF81ED3F80151F16C0150FA6151F1680153FED7F005DEC03FE90B55A
5D5D5D92C7FC01E0C8FCADEA7FFEB5FCA36C5A222E7FAD27>80 D<387FFFF0B512FE6E7E
816C803907E01FF014076E7E1401811400A514015D14034A5A141F90B55A5D5DA281EBE0
1F6E7E14076E7EA816F0EDF1F8A4397FFE01FBB5EBFFF08016E06C48EB7FC0C8EA1F0025
2F7FAD27>82 D<007FB61280B712C0A439FC03F00FA60078EC0780000091C7FCB3AB90B5
12C04880A36C5C222E7EAD27>84 D<3803FFC0000F13F04813FC4813FF811380EC1FC038
1F000F000480C71207A2EB0FFF137F0003B5FC120F5A383FFC07EA7FC0130012FE5AA46C
130F007F131FEBC0FF6CB612806C15C07E000313F1C69038807F8022207C9F27>97
D<EC3FF04A7EA3143F1401A9EB0FE1EB7FFD48B5FC5A5A380FF83F381FE00F383FC007EB
8003EA7F00007E1301A212FE5AA67E007E1303A2127F6C1307EB800F381FE01F380FF03F
6CB612C06C15E06C13FD38007FF9D91FE013C0232E7EAD27>100
D<EB0FF8EB3FFE90B51280000314C04814E0390FFC0FF0391FE003F8EBC001D83F8013FC
48C7FC127E157E12FEB612FEA415FC00FCC8FC7E127E127F6C143C6D137E6C7E01F013FE
390FFC07FC6CB5FC000114F86C14F0013F13C0903807FE001F207D9F27>I<EC1FF0ECFF
F84913FC4913FE5BEB0FF014C0011F137CEC8000A6007FB512F0B612F8A36C14F039001F
8000B3A4003FB512C04814E0A36C14C01F2E7EAD27>I<EA7FE0487EA3127F1203A9147F
9038F1FFC001F713F090B5FC8114C1EC01FCEBFE005B5BA25BB03A7FFF83FFE0B500C713
F0A36C018313E0242E7FAD27>104 D<130F497E497EA46D5A6DC7FC90C8FCA7383FFF80
487FA37EEA000FB3A4007FB512F0B6FC15F815F07E1D2F7BAE27>I<387FFF80B57EA37E
EA000FB3B2007FB512F8B612FCA36C14F81E2E7CAD27>108 D<397F07C01F3AFF9FF07F
C09039FFF9FFE091B57E7E3A0FFC7FF1F89038F03FC001E0138001C01300A3EB803EB03A
7FF0FFC3FF486C01E3138001F913E701F813E36C4801C313002920819F27>I<387FE07F
39FFF1FFC001F713F090B5FC6C80000313C1EC01FCEBFE005B5BA25BB03A7FFF83FFE0B5
00C713F0A36C018313E024207F9F27>I<EB1FE0EB7FF83801FFFE487F481480390FF03F
C0391FC00FE0393F8007F0EB00034814F8007E1301A248EB00FCA76C1301007E14F8A200
7F1303393F8007F0A2391FE01FE0390FF03FC06CB512806C14006C5B38007FF8EB1FE01E
207C9F27>I<387FE0FFD8FFF313C090B512F0816C800003EB81FE49C67E49EB3F804913
1F16C049130FA216E01507A6150F16C07F151F6DEB3F80157F6DEBFF009038FF83FEECFF
FC5D5D01F313C0D9F0FEC7FC91C8FCAC387FFF80B57EA36C5B23317F9F27>I<397FFC03
FC39FFFE0FFF023F13804A13C0007F90B5FC39007FFE1F14F89138F00F809138E002004A
C7FC5CA291C8FCA2137EAD007FB57EB67EA36C5C22207E9F27>114
D<9038FFF3800007EBFFC0121F5A5AEB803F38FC000F5AA2EC07806C90C7FCEA7F8013FC
383FFFF06C13FC000713FF00011480D8000F13C09038003FE014070078EB03F000FC1301
A27E14036CEB07E0EBE01F90B512C01580150000FB13FC38707FF01C207B9F27>I<133C
137EA8007FB512F0B612F8A36C14F0D8007EC7FCAE1518157EA415FE6D13FC1483ECFFF8
6D13F06D13E0010313C0010013001F297EA827>I<397FE01FF8486C487EA3007F131F00
031300B21401A21403EBFC0F6CB612E016F07EEB3FFE90390FF87FE024207F9F27>I<3A
7FFE07FFE000FF15F06D5A497E007F15E03A0F80001F00A36D5B0007143EA414F0EBC1F8
3903E3FC7CA4EBE79EA200011478A301F713F8A2EBFF0F6C5CA3EBFE0790387C03E02420
7F9F27>119 D<3901F003803903FC07C0000F130F381FFE1F393FFF7F80397FBFFF0038
FE1FFE486C5A00F813F0387003E01A0A7AAD27>126 D E
%EndDVIPSBitmapFont

needs to be replaced by a postscript font

%%BeginFont: CMTT9
%!PS-AdobeFont-1.1: CMTT9 1.0
%%CreationDate: 1991 Aug 20 16:46:24

% Copyright (C) 1997 American Mathematical Society.  All Rights Reserved.

11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights
Reserved) readonly def
/FullName (CMTT9) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch true def
end readonly def
/FontName /CMTT9 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 45 /hyphen put
dup 46 /period put
dup 47 /slash put
dup 51 /three put
dup 55 /seven put
dup 57 /nine put
dup 58 /colon put
dup 80 /P put
dup 82 /R put
dup 84 /T put
dup 97 /a put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 104 /h put
dup 105 /i put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 119 /w put
dup 126 /asciitilde put
readonly def
/FontBBox{-6 -233 542 698}readonly def
/UniqueXX 5000831 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0
0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3
79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3
2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8
b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d
823385fe55f3402d557fd3b4486be465959b1188f76df7824c135a7fb382c4e1
1b0ddfe856b6f34552ca48c24b57dd8448fac257c4d93fb122e1218fd36b99b2
d79dadb8a66613ef11039be77816a7a2d6781fe0d69cecc36232ae87a172afe0
95532a8c7ff40bdd4a5fcfb6ccfd8f73c572231734e0609c6743ee11010f6579
820b367c49069ac1d45760c0ce8dc1e67e2beb72be6d287910547e1b4bb52465
b75947d224998223275a2c340a1c14c04328cc2935c53ee2723f1de6357a291e
14863f6c1411477b3ea074052b30a4c1ef03ab324d678307e1cb02c7aaffa90b
73975378b9debcd3f6aab626a361be8068c60edd0b2be4a7bbf4efa21cc23607
bf7e2556c17b5923d7b0fc036d5fea743c55f2bbf72e8a61995bd63d7104a085
b8dd5a83d9077376a4ae8f0c048606bb9e84c640c52d0a95b35d48cfafd6ebe3
d6eb0ed88c1212818ca93e40614740a77c446b792d02945642014a5d55ba970e
f97dcdd5b839f621a052d1085a1e668161d3ac0227c7867324ede883589b39e5
d152793009cb5a08eb6719a44dd01b6147e3436bdbb28215ce3d29a3b1dfc72b
d942f8cb3376b4e12cff53a793d935346ceb2afc3428cd9313c671ec1911252c
19de341556999aaf7417aa5085daa35ee71353fdc2c7d83ec2dedaabb1b89b99
e4cb5282159cbfb45a286f8d6bf3abdedccbdcebaf6994b17f1be07d10f00cba
47f2fbf66c0cf524494c53786b0f88f5d96a18a086fbfd22b6cd3108ee918369
8b342fe978502afdebf98632d63bc149de9eab94230a55327fb96b72a85ef6b7
acde791164e8f856e95058b875b02a2262b85a2ff02fddaaffc3a476f7abdb58
f5b1df019a4ca14695cf1f238756b3ce61ffa44d543341b9c1a3b422ad6ad0be
db2f2ef0ad1d60a8589decb250451260a0dfafca04c4435a350b80b75f198c1e
ccddca12489fe22c127dbb5c933103e2f01882ef458a014e921c6191e2ef0c3e
878143ebef35e140b2a52203d65f6343e28d39e6b41f6ccbeb35366e1d0212cd
4daee07013f126b6bb1431a97ec6b89734283b937c39da42761db8c8db164d56
35f1b981c88d0d1af72ad442ba34a074cb4fc2037feb6ebe705c2a0828fe55d6
6ff56547d49c1f0c7c09b0c0a79b811008c47dc56c7dfafbb33a3a1b79537563
223dae7ee6f670ca510e6d3576b9b37c0e114297bcffac6598c496ea4a5001f3
cbfb280ee31ebf6f1f1ed13e7760a2ce72423cca9422905489c6e5e3b2e06f81
b39db197bb945229c867aec9dc3f02846db27be1bd23bd73f0a9ece0afcb3d27
22cd181ff63b6009132359360596e27a3b0b8eee32030c4684c5f87532cf7606
74bf8d52fdaa85d50d629f4af65a085f2435ef07cd37285a8f12443690eed395
1d762c9a96428942e7c02ae23f5151d7dcc4cac69deec1a607630e939a6bc78c
b8e8fa2dc88b43a09c8171afc739c586558567c25e151236e542a3933d652626
f2fe7d9d43374fc13279ae3379d12b9234b0cd2224fd189faae211a2a6a588b6
9c299f0e3f6ee980cb571ae205f57541b54dff747459f6ef4b0bc1c6b63ae41b
02c87f609caf9cdd657477e7db33c2a5be601e85696d6d599b537c1dfb047268
268137d3546d12ce37873745cf1a60f007aaa8959a02d040edf7918d5e95a522
1b8d63d4f87ce2754a69d5614b46de0e4932e7ae07129cbb0152e858c6690fc7
ae0cf363e2d0316bf945a5c6dfbc2f46a248db27a4324b3142e7b58aed8d1de3
46b2e4a2832cbf5a0a5fedf833deb374d86bf606d8089dae339e54b5ff10fbb8
3471fb9f671130cf3b8d47b60d7d67bd5d232f5f02b1d34287dc69a992a59cc6
ef72e814d467ca34f3ec3ebf8a01d568ddc7ff164ba1e12da18a97ee9c83b33e
9ec4dfd4c78ddaef858d7304fc17150e02ddc9685a84d2dbabf7a8a925a868e8
b02c3f0a3b12fc816c1e38641e1df196c607614a58cae9afc97132b0f9eb1050
0bdce0e07696e2c5cae49039c85ddbc52e7194da8a4c1155dfad4954ffa2bf86
a5f60c108715959bf55dd39a644072356468b6813becbaea33b811e575f0c776
91d639e26ee6f7005325b05cf65dc8e2fb6f52283176053c06d7edca101e7096
34b8fc898cad9f4e1de6dcd82f01a15827a51d1a13dbd674cfbab0667a409dfc
1c3513d2ca2563c589baa8291d091fd618b1b836baf10d05916c1c1e9fd973f2
ad3c02af55136954613222844f3f27b2b9e392bb2de1ffbd2ef12cd262a75b04
5fe02dd763dda84071b2d32c4e589e8f7cdb6978cc997e4a59bb28d3bfc6c858
6b931c9e3d4eb6bdfc48cd6cceb4952f4485b7a31f628e7bc534ee6ca15d10fb
e17b0d13011f334135227f6e243dc6b653a4199025bd177f1af42b47001870b9
70274270aa90f3113670f8a0c669056d17d5c900d66ad1a58005603168e0390f
5382268f5890b33f35d2208bb259d1a73713845f2c68ae1cebb6ed6c57c58cce
8972b7f2348380f21d3a2329e4ead009b35f77236cb59f89ab44b3027dd8e9be
3568661b3217e93d7b9dbe76144f79d82448053b48f67247b8ad6e0ff944efcc
a2e4d66faafc391f77a27feb12785598846a85ff54db4559317f4a1295d8b491
f399074d26437bb86d3e33f874946111a5679c0b217e4a6eef219ab2c81899e1
0ab336dc0240202bfd810b68b5c16556515e57a6a4a8e6a44594d03ca09cb530
9a86111c8caf5a28636699a9028c327be42bbed732a36f229af18455f1964a51
9ab471e9e1336b1573b98242ef7f788d7e8a33fedfadc49bfb65e7b532d95ff3
d43d1b32fad613497fd907ec49a97f71cff4e67672dd9cf8046a9d59ff8ce5c5
ca486d7fe9dfbe30af72f0e159e8fe8dfa30862d1c580d19538425a220119d4e
4af32fc80b0f1b567afc63e9a7501331199cb3dc27280b2f9151f475b24ee35b
9f403a0c32481322539b8566edb1cd1d4e8e07f47e7108b904576cd32d161652
aca2d070d6a1bf7b8a04c3883d31b9f69a65c40b0cbae9da37643b9008bf0e3e
a4001f8c19f8ba43ca8bdab400e60c78c1c63742466f69caf1a4ee10bea138cc
60fae5a41965929095776e3aaa34109066b7fb724742a67d487a0785bca4962e
799550224778e91ca945338895982f116b078ec0a34b55da3b66889b10df1c13
514c974590e0df42c3849cb0a3d101fa38ae1a7a5c300477fc7f47f702952575
b5b11ca4da4039d8d55f493d81e9fc13963b6bc8cc8a4a29039bfde2b44a1484
56f5ebe8781cf6b0a66fb6a77200432dbef66ba2b43d5ab88a1a2dd299835d90
d468bb77b6182ff9c990939cced8e3127b9dafc2178fcfcef423554f5fc80673
6cf306c6273db976b4c78102bfd0c4b511ecef77cf5c564c6b1c41f3847b1500
2bfa6d6338e644dc15f17d5f1110ab034dd3f8547820009d9ffdc632b1d38df9
9e87e7020e23a741ba9e058e09eca0c9bb7bd0b7d53508fab97b2eaad2d1c5ec
ed672431ea09bd9ccf1e5e364c56957d0fe07121f23c13bdb8d38687fb218aa1
8c56ee5b980d3bb0cf176275fe23a369b0d774b8a25d13b7d5081eaceb05773e
2a60332368ab3632235cf705449c4bc79504e01aaaa8e19dcbe14f14fd361bed
b227aa367ed944113c88fda556170eee95d0b55a83ef6c0cf45cf822c1ce5cc9
7e6a6fa4e950b6df22496487623c4c35926e0da519e2dcd95be0f1adb3cfbc4d
b4ff1abf31576697766f0921e826155c7f9c6f071d573b8ad1eb5099e314d53d
9692139ae3f8a67274d67e5506e6a05362215a8af25e4e341195c2e55f36b28b
caced71ea495ed10affdd9e07658815c7c5310011ce8fdfe11f96e054af68f86
ac8c8e583438ce466f6fe42adc4ffc061edfc15a5a615eb0ac8d0b46af1d0d8a
a67269db20feb5e8827a5e8a371fa6dde7a7f62c5e940186955da81c5bad0668
d4573f075f072e72500cf013b51fad8e16701a8b0e1737017f1d39b6cf7a5bbd
09f60572bf1c575477f456ffd0c0a77cae1ccbcc80d202c17db730ed410cf3eb
708e22cdfbe92142cf77426a9a5a73ea05c978f55041493c82c49d515ec80d8f
1176243e89e9bc9f23a493344780228edb221670e5c380710389be544aa71312
12ad9217ca3ee70ede60cfbd7169c56b4fa162e034e71d97b1ca6ffcec4af83b
1af6aad00935e7e81c1911838e4cec486e77bc95038a8b8f4cc5cf66f9921135
96404436fddac269e8c2653f5083f2027e788d0937c65f33c108770b9dff2ca2
2259f4945127c0b182f8ccd284ab99ae7ebd515002e16503a0058f07d1d836a2
ceefd6be2ab253ddc246d1df06b71214aae5681e02b403e4b6718cc8a1bcfe37
32bd00d53f3f9361b5b8fab73dc7fb9d5fdd30956ab95a34e183288c70981527
a42b9430c240b115476b376364fbca0cfc463b29065e6e4c6a7eacef88fa1151
71aadbe3cd2bcb70c4b82cdeb123c807196d57d8b32f4ccb44fcc15a7ff703b8
718fde4d835c060c986c624b1259715ad3f7ae751d19b25a8e286bfd1f633ffd
e09ea9a1af0f2416f2ffb2612d30e0c5f01f31b03a6497c0dcb27c94ec4b6ef9
64961ff8ee2c35c90ba89e74a46a5375edce7a2d18e9aca4b6a18dd77b833df8
890c5e26050ce548d900e4cbaaa2487f88e0d8ed5e1aa1a214edd15bfe896dee
1f5d5d80b39cde315765353893c9c7c1920b265f82a94bde6b513c1980abe505
6f210f03ce8c1856459d15e98e9aecfb3cfd48fe8d658a3b400cdd1440bfd094
5719c47b590a8ab24aa2ac15f8cdaaa812a88007f6941657fbb3a7da3706922f
c124156ea30b787652397daee6e87365d0a71995fac5b8171841af5473890b5a
f7aa992d75496dbdd7999c325e196fcdfb925080f338ad27f3f7b60a5206838d
abcef7ccbf90aaf513be9c5a1d4bd173ff4bc64e76705ed3ab711e7d1b95d640
172eb8deeab5623a5ccf017c16b7fa22a535283353c5a41039bb8f3542a22199
3fd27a910e3a59dfa29947940a1951882f277f1c7a67a1fdf7eb37aa105953b0
5f3e63b3a602cc360602a4a378809b76573a8182b6cb9105011adbf1a0bcd628
3dbae67110f0864b176ab248ec2eb8ddd450d8642991b1a3c801745a6d252378
6c3b4d1231146de5cd2e529fe6b60e4d2f3dce9a138e22f6de2f2c5be3b61d90
685db36331890c75efb4d8464bd6d0cd99eb97daa43f41010d684aa57a05073d
1bd89b9f7e5d1fc15788455bfdf41d0fe4fa5120f959b7f3ed6975af76724e4e
651c1c6b7b083cd19444d400d9056a588ab106db44ec3e9d2710d2a957b538bb
2808bb4875a1fadc2eae5b1024c002886700156ad32e3e7ec8240ccf30d6438c
13aaf1c80315a66818aa820183d51a717c1f1f58021772d20d8c3d849c813d47
db283b3791b17d484f44f58d4674457c54d52acb137a0286be526aed69534c82
5f5102382cb696aae7fff291c4ad44a6f716f1184b9ca7d68b1c17c344f32b82
54842909b161d5b78fb1cd98c82628865fb0ae09151d15d31f938c225e737535
806daaf3a8c11ef6276f3db591d570f8c77ffdb15dd186b36ee6588c4b825be2
66e06df9419117fdfb1430f6023c36269c5e67bbd071ed476792b6b74cc546eb
7f4e4b085a8b5a6b7880ea85426dc7a2055ed4eb29337a34b3ade273bfc319a0
d7ac97316dfe2f7a31d967ce97c7cb102f771d42db183dcdc0dd7bb8238105d6
026f4f4aaa21e97643b07f896ed8870881886db6a77692e3930014f22a6d4f44
d7727563fbea57c4b7117be8b390974cd860a0b5561bfa623fd76b0ea5c1af4c
b8ff0a5ba1518ed2a3b8c1fddc009fd978e653ddf35d830c0eb82a0e4dfd9865
0fb58739477f76d33f3ff3d643cab01a2cf200f9e759f8abce038a8bf414bac7
65aa489953c55127cf6af08e49e4a361a65cdfddefe6549b8ae79bd749d099db
6346d2c12586df346c049e825840f4a3e40da1dbef7c2559da1abfba0b2940e4
ecb3811dd8be7e9e73a0e171b5f690f3c44442ce3d640e8b9b90d520228ccad1
6284d44653c298ecca0967e527a632239d6e21c9695580514b0a52098b041d30
5bf51b5d13999e5670e1346b8f803b071fe8b711cb939e6339c159191c7a0dac
b222c5cee4435f92227c174608f1b47800c8a43b23c83c7b8629a25846c8c9b3
afa3be03d44f61e288f06ff85989e591f083aa1147952954548ccee90979543d
09f7e9a4731d058c7d66da25195c58ca28165ee3b0e93bfe37c74ceb9b54913b
5b2054e0e796de8308e45dca2c20482917ea9235e8fae52a72b8268dd2e92d1f
1fc1f971b0d13b7e73a69f723923b754054e22314d7f9a27
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark

%%EndFont

and an extra declaration of the font as /Fa:

/Fa 129[39 6[39 1[39 39 39 39 1[39 39 39 39 39
2[39 39 1[39 39 39 2[39 12[39 1[39 1[39 21[39 39 1[39
3[39 3[39 39 39 45[{}27 74.7198 /CMTT9 rf

-----------------------------------------------------------------

What has to be done:

  1) Finding out how to generate the postscript font.
     Now we already do have a cmtt9.pfb font in LaTeX.
     It seems that the output was obtained by running pfbtops on
     this file together with some kind of filter which extracts
     the characters which are actually used.

  2) Generation of missing pfb files. I do not know how missing
     pfb files should be generated. In the worst case, one may
     use a bitmap font instead, but maybe there is some kind of
     general scheme, similar to mktexpk.

  3) Find out the appropriate scaling parameters which are
     used in the above definition of /Fa. This has probably to
     do with the following definition:

TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics
exch def dict begin Encoding{exch dup type/integertype ne{pop pop 1 sub
dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def}
ifelse}forall Metrics/Metrics currentdict end def[2 index currentdict
end definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{
dup sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1
roll mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def
dup[exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}
if}forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}
def end

It would be great if someone could take a detailed look at all this
and try to figure out how we can get these pfb fonts working in
combination with TeXmacs.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]