📄 4.5.linboli.ps
字号:
%%%% Additions by LA Carr to reencode Adobe fonts as TeX fonts (almost)
%%%% Based on routine in LaserWriter Cookbook
/ReEncodeForTeX
{ /newfontname exch def
/basefontname exch def
/TeXstr 30 string def
/basefontdict basefontname findfont def
/newfont basefontdict maxlength dict def
basefontdict
{ exch dup /FID ne
{ dup /Encoding eq
{ exch dup length array copy
newfont 3 1 roll put }
{ exch newfont 3 1 roll put }
ifelse
}
{ pop pop }
ifelse
} forall
basefontdict /MathFontName known not
{
/TeXvec basefontname TeXstr cvs (Courier) search
{ pop pop pop TeXcourvec }
{ pop TeXnormalvec }
ifelse def
TeXvec aload pop
TeXvec length 2 idiv
{ newfont /Encoding get 3 1 roll put }
repeat
}
if
newfontname newfont definefont pop
} def
/TeXnormalvec
[ 8#014 /fi 8#015 /fl 8#020 /dotlessi 8#022 /grave 8#023 /acute
8#024 /caron 8#025 /breve 8#026 /macron 8#027 /ring 8#030 /cedilla
8#031 /germandbls 8#032 /ae 8#033 /oe 8#034 /oslash 8#035 /AE
8#036 /OE 8#037 /Oslash 8#042 /quotedblright 8#074 /exclamdown
8#076 /questiondown 8#134 /quotedblleft 8#136 /circumflex
8#137 /dotaccent 8#173 /endash 8#174 /emdash 8#175 /hungarumlat
8#176 /tilde 8#177 /dieresis ] def
/TeXcourvec
[ 8#016 /exclamdown 8#017 /questiondown 8#020 /dotlessi 8#022 /grave
8#023 /acute 8#024 /caron 8#025 /breve 8#026 /macron 8#027 /ring
8#030 /cedilla 8#031 /germandbls 8#032 /ae 8#033 /oe 8#034 /oslash
8#035 /AE 8#036 /OE 8#037 /Oslash 8#074 /less 8#076 /greater
8#134 /backslash 8#136 /circumflex 8#137 /underscore 8#173 /braceleft
8#174 /bar 8#175 /braceright 8#177 /dieresis ] def
/TeXPSmakefont { % defines a routine for generating PS fonts, fudged!
/TeXsize exch def findfont
[ TeXsize 0 0 TeXsize neg 0 0 ] makefont
} def
% fontname basefontname angle ObliqueFont -
% Create a General Oblique font
/ObliqueFont {
/ObliqueAngle exch def
/ObliqueBaseName exch def
/ObliqueFontName exch def
/ObliqueTransform [1 0 ObliqueAngle sin ObliqueAngle cos div 1 0 0] def
/basefontdict ObliqueBaseName findfont ObliqueTransform makefont def
/newfont basefontdict maxlength dict def
basefontdict
{ exch dup /FID ne
{ dup /Encoding eq
{ exch dup length array copy
newfont 3 1 roll put }
{ exch newfont 3 1 roll put }
ifelse
}
{ pop pop }
ifelse
} forall
newfont /FontName ObliqueFontName put
ObliqueFontName newfont definefont
pop
} def
% Palatino-ItalicUnslanted? You must be joking!
% fontname basename SmallCapsFont - Create a General SmallCaps font
/SmallCapsFont {
/SmallCapsBaseName exch def
/SmallCapsFontName exch def
/basefontdict SmallCapsBaseName findfont def
/newfont basefontdict maxlength 10 add dict def
newfont begin
/FontName SmallCapsFontName def
/FontBaseDict basefontdict 1000 scalefont def
/FontSCDict FontBaseDict .8 scalefont def
/FontType 3 def
/BuildChar {SmallCapChar} def
/FontMatrix dup basefontdict exch get def
/FontBBox dup basefontdict exch get def
/Encoding dup basefontdict exch get def
end
SmallCapsFontName newfont definefont pop
} def
% fontdict ch SmallCapChar -
% It shouldn't be so damn hard to do this (make one font out
% of two others) but I tried several dozen variations on this
% theme until I found something that worked. -- vj
/SmallCapChar {
/achar (A) def
achar exch 0 exch put
begin
achar 0 get dup 97 ge exch 122 le and {
% handle 'a' through 'z' specially
achar 0 achar 0 get 32 sub put
FontSCDict
} {
FontBaseDict
} ifelse
setfont achar stringwidth FontBBox setcachedevice
newpath 0 0 moveto achar show
end
} def
/MathEncodingVec [
/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon1
/Phi /Psi /Omega /alpha /beta /gamma /delta /epsilon
/zeta /nu /theta /iota /kappa /lambda /mu /nu
/xi /pi /rho /sigma /tau /upsilon /phi /chi
/psi /omega /epsilon /theta1 /omega1 /rho /sigma /phi1
/arrowleft /arrowleft /arrowright /arrowright
/suchthat /congruent /proportional /angle
/zero /one /two /three /four /five /six /seven
/eight /nine /period /comma /less /slash /greater /asteriskmath
/partialdiff /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /registerserif /copyrightserif /trademarkserif /logicalor /logicaland
/section /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /dotlessi /j /weierstrass /macron /breve
] def
% the following gives the character codes of the above characters
% in their font. I.e., this is the character we have to hand "show"
% to image the characters above.
/MathCharVec [
71 68 81 76 88 80 83 161
70 89 87 97 98 103 100 101
122 110 113 105 107 108 109 110
120 112 114 115 116 117 102 99
121 119 101 74 118 114 115 106
172 172 174 174 39 64 181 208
48 49 50 51 52 53 54 55
56 57 46 44 60 47 62 42
182 65 66 67 68 69 70 71
72 73 74 75 76 77 78 79
80 81 82 83 84 85 86 87
88 89 90 210 211 212 218 217
167 97 98 99 100 101 102 103
104 105 106 107 108 109 110 111
112 113 114 115 116 117 118 119
120 121 122 245 106 195 197 198
] def
% this array tells which font dictionary holds each character above
% (0 = basefont, 1 = symbol (maybe slanted), 2 = symbol (unslanted)).
/MathDictVec [
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
2 2 2 2 2 2 2 2
0 0 0 0 0 0 0 0
0 0 0 0 2 2 2 2
2 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 2 2 2 2 2
2 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 2 0 0
] def
% fontname basename symbolname symbolbase angle MathOblique -
% Create a "math" font with the symbol font characters slanted
% by "angle"
/MathOblique {
3 copy ObliqueFont
pop pop MathFont
} def
% fontname basename symbolname MathFont - Create a math italic font
%
% We build this font out of the base font & the symbol font
% using an encoding vec as close as we can get to cmmi10 with
% standard postscript characters. An array parallel to the
% encoding vector tells which font dictionary to use for a
% particular character.
/MathFont {
/MathSymName exch def
/MathBaseName exch def
/MathFontName exch def
/basefontdict MathBaseName findfont def
/newfont basefontdict maxlength 10 add dict def
newfont begin
/FontName MathFontName def
/FontDictArray [
basefontdict 1000 scalefont
MathSymName findfont 950 scalefont
/Symbol findfont 950 scalefont
] def
/FontType 3 def
/BuildChar {MathFontChar} def
/FontMatrix dup basefontdict exch get def
/FontBBox dup basefontdict exch get def
% the encoding vector is a copy of the original font's
% encoding, modified "appropriately".
/Encoding dup basefontdict exch get dup length array copy def
/WhichFont MathDictVec def
/WhichChar MathCharVec def
MathEncodingVec Encoding copy pop
/achar (A) def
end
MathFontName newfont definefont pop
} def
% fontdict ch MathFontChar -
% (there's some serious magic going on here: see note on
% SmallCapChar above -- vj).
/MathFontChar {
exch begin
achar exch 0 exch put
FontDictArray WhichFont achar 0 get get get setfont
achar dup 0 get WhichChar exch get 0 exch put
achar stringwidth FontBBox setcachedevice
newpath 0 0 moveto achar show
end
} bind def
/@flushfonts { @TeXSave restore /@TeXSave save def} def
end % revert to previous dictionary
TeXDict begin @start
%%Title: 45.dvi
%%Creator: dvi2ps
%%EndProlog
%%Page: 2 1
2 @bop0
1.000000 /cmr10.300 @newfont
cmr10.300 @sf
[<7F80FF007F80FF007F80FF006380E300C380E180C3006180C70071800F0078000E0038001E003C
001C001C003C001E003C001E0078000F0078000F00F8000F80F0000780F0000780F0000780F000
0780F0000780F8000F8078000F003C001E003E003E000FC1F80007FFF00000FF8000> 32 28 -2 0 29] 10 @dc
1.000000 /cmsy7.300 @newfont
cmsy7.300 @sf
[<C0E0E06070703838381C1C1C1E0E0E> 8 15 -1 -1 9] 48 @dc
cmr10.300 @sf
[<01C00380038007000E000C001C001800380038007000700070007000E000E000E000E000E000E0
00E000E000E000E000E000E000E000E00070007000700070003800380018001C000C000E000700
0380038001C0> 16 42 -3 11 16] 40 @dc
1.000000 /cmbx10.300 @newfont
cmbx10.300 @sf
[<183FC01CFFF01FE1F81F80FC1F00FC1F007E1F007E1F007E1F007E1F007E1F007E1F007E1F007E
1F007C1F80FC1FE1F81FFFF01F3FC01F00001F00001F00001F00001F00001F00001F00001F0000
1F0000FF0000FF0000> 24 29 -1 0 26] 98 @dc
cmr10.300 @sf
[<E0007000700038001C000C000E00060007000700038003800380038001C001C001C001C001C001
C001C001C001C001C001C001C001C001C003800380038003800700070006000E000C001C003800
70007000E000> 16 42 -2 11 16] 41 @dc
[<FFFFFFE0FFFFFFE000000000000000000000000000000000000000000000000000000000000000
00FFFFFFE0FFFFFFE0> 32 12 -2 -4 32] 61 @dc
[<FFFEFFFEFFFE700638031C030E030700038001C001E000F00078003C003E001E001F000F700FF8
0FF80FF81FF01E603E78FC3FF80FE0> 16 27 -2 0 20] 50 @dc
1.000000 /cmmi7.300 @newfont
cmmi7.300 @sf
[<FF83FC00FF83FC001E00F0000E01E0000E01E0000F03C0000F03C0000787800007C7800007FF00
0007FF0000039E0000038E000003C7800003C3C00001C0E00001C0780001E03C0007FC3FC007FC
3FC0> 32 20 -1 0 27] 75 @dc
1.000000 /cmex10.300 @newfont
cmex10.300 @sf
[<FFFFFFFFFFFFC0FFFFFFFFFFFFE07FFFFFFFFFFFE03FFFFFFFFFFFE01E00000003FFF00F000000
001FF0070000000003F0078000000000F803C0000000007801E0000000003800F0000000001C00
78000000000C003C000000000C003C0000000006001E0000000000000F00000000000007800000
00000003C0000000000001E0000000000001E0000000000000F000000000000078000000000000
3C0000000000001E0000000000000F0000000000000F000000000000078000000000000FC00000
0000000FE000000000001FE000000000003FC000000000003F8000000000007F800000000000FF
000000000001FE000000000001FE000000000003FC000000000007F8000000000007F000000000
000FF000000000001FE000000000003FC000000000003FC000000000007F800000000000FF0000
00000000FE000000000001FE000000000603FC000000000C07F8000000000C07F8000000001C0F
F000000000381FE000000000781FC000000001F03FC000000007F07F800000001FE0FF00000003
FFE0FFFFFFFFFFFFE0FFFFFFFFFFFFC0> 56 58 -2 58 59] 88 @dc
cmmi7.300 @sf
[<1E003F003B803980198018001C000C00CE00E60066007E003C0000000000000000000300078003
80> 16 20 0 0 11] 105 @dc
1.000000 /cmr7.300 @newfont
cmr7.300 @sf
[<FFFFF0FFFFF0000000000000000000000000000000000000FFFFF0FFFFF0> 24 10 -2 -2 25] 61 @dc
[<FFE0FFE00E000E000E000E000E000E000E000E000E000E000E000E000E00EE00FE001E000600> 16 19 -3 0 16] 49 @dc
1.000000 /cmmi10.300 @newfont
cmmi10.300 @sf
[<FFC0FFF07FC0FFF00F000F0007000F0003000F0001800F0001800F0000C00F00007FFF00007FFF
0000301F0000301E0000181E00001C1E00000C1E0000061E0000061E0000031E0000031E000001
9E000000DE000000DE0000007E0000007C0000003C0000003C0000001C0000000C00> 32 28 -1 0 31] 65 @dc
[<1F80007FE00071F000787800783C00381C00001E00000E0003EE000FFE000F3F000E0F000E0F00
0E07000E07800E03800E03800F03800703C00701C0C781C0E381C06381E07380E03F80E01F00E0> 24 26 -1 8 20] 121 @dc
[<3F007FC073E0E0F0E0F0E078E07CE03CE03CF03C703E701E701E781C3C1C3F3C3FF83DF01C001C
001C001E000E000E000E000F000F007F003F00> 16 29 -2 0 17] 98 @dc
1.000000 /cmsy10.300 @newfont
cmsy10.300 @sf
[<FFFFFF80FFFFFF80> 32 2 -3 -9 32] 0 @dc
cmmi10.300 @sf
[<E00780F00FC0F01EE0701C70701E30780E38780E38380F003807003C07003C07801C03801E0380
1F03801F83800FC7800EFF800F7E000F000007000007000007800007800003800003800003C000
03C0001FC0000FC000> 24 29 -2 0 23] 104 @dc
cmsy7.300 @sf
[<C000E00060007000300038001C000C000E00060007000300038001C000C000E000600070003000
38001C000C000E000600070003> 16 26 -4 6 0] 54 @dc
cmmi7.300 @sf
[<7800FC00EE00E600070003000300038003800180018001C001C000C018C01CC00CE00FC007C000
00000000000000006000700070> 16 26 1 6 13] 106 @dc
cmmi10.300 @sf
[<70F8F8F870> 8 5 -3 0 11] 58 @dc
[<C0000000F0000000FC0000001F00000007C0000001F00000007C0000001F00000007C0000001F0
0000007C0000001F00000007800000078000001F0000007C000001F0000007C000001F0000007C
000001F0000007C000001F0000007C000000F000000080000000> 32 26 -3 3 32] 62 @dc
cmr10.300 @sf
[<07E00FF01C38381C781E700E700EF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF0
0F700E700E781E381C1C380FF007E0> 16 27 -2 0 20] 48 @dc
[<01FFC001FFC0001C00001C00001C00001C00001C00001C00FFFFC0FFFFC0E01C00601C00301C00
381C00181C000C1C000E1C00071C00031C00039C0001DC0000DC00007C00007C00003C00001C00
001C00> 24 27 -1 0 20] 52 @dc
[<03FFFC0003FFFC00000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F00
00000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000C00F0060C00F
0060C00F0060C00F0060E00F00E0600F00C0700F01C0780F03C07FFFFFC07FFFFFC0> 32 28 -1 0 29] 84 @dc
[<FF9FF0FF9FF01C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C0380
1E03801F07801F8F801DFF001CFE001C00001C00001C00001C00001C00001C00001C00001C0000
1C0000FC0000FC0000> 24 29 -1 0 23] 104 @dc
[<07F00FF83F1C3C0E78067800F000F000F000F000FFFEFFFEF01E781E781C3E7C1FF807E0> 16 18 -1 0 18] 101 @dc
[<FFC0FFC01C001C001C001C001C001C001C001C001C001C001C001E301E781F78FFF8FDF0> 16 18 -1 0 16] 114 @dc
[<1FC7807FFFC07C7E60F81E60F00E60F00E60F80E00F80E007E0E003FFE0007FE00001E00000E00
180E003C1E003C3C003FF8001FE000> 24 18 -1 0 20] 97 @dc
[<07C00FE01E701C301C301C301C301C301C001C001C001C001C001C001C001C00FFE0FFE03C001C
001C000C000C000C000C000C00> 16 26 -1 0 16] 116 @dc
[<07F00FF83F1C3C0E78067800F000F000F000F000F000F000780078183C3C3E3C0FFC07F8> 16 18 -1 0 18] 99 @dc
[<CFC0FFF0F8F0F078E038C038C07800F81FF07FE07FC0F800F030E030E070F0F07FF01FB0> 16 18 -1 0 16] 115 @dc
[<70F8F8F870000000000000000070F8F8F870> 8 18 -3 0 11] 58 @dc
[<FF80FF801C001C001C001C001C001C001C001C001C001C001C001C001C001C00FC00FC00000000
0000000000000000003C007C007C007C003C00> 16 29 -1 0 11] 105 @dc
[<FFF0FFF00F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F
000F000F000F000F000F000F00FFF0FFF0> 16 28 -1 0 14] 73 @dc
[<7FE07FE00E000E000E000E000E000E000E000E000E000E000E000E000E000E00FFE0FFE00E000E
000E000E000E000E000F1E071E079E03FE00FC> 16 29 0 0 12] 102 @dc
cmmi10.300 @sf
[<0180000001C0000001E0000001E0000003F0000003F0000003D8000003CC000003CC000003C600
0003C6000003C3000003C1800007C180000780C0000780E0000780600007803000078030000780
180007801C0007800C000F8006000F0006000F0003800F8007C0FFF01FF87FF01FF8> 32 28 -2 0 24] 86 @dc
cmr10.300 @sf
[<03F0000FFC001E1E00380700780780700380F003C0F003C0F003C0F003C0F003C0F003C0700380
7807803807001E1E000FFC0003F000> 24 18 -1 0 20] 111 @dc
[<FF9FF0FF9FF01C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C0380
1E03801F07801F8F80FDFF00FCFE00> 24 18 -1 0 23] 110 @dc
[<FF80FF801C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C
001C001C001C001C001C001C001C00FC00FC00> 16 29 -1 0 11] 108 @dc
cmmi10.300 @sf
[<FFF87FF000FFF87FF0000F801F800007800F000007801F000007C01F000003C03E000003C03E00
0003C03C000003E07C000001E07C000001F878000001FCF8000001FEF8000000F7F0000000F3F0
000000F1E0000000F8F00000007878000000781C000000780E0000007C070000003C038000003C
01E000003C00F000003E007C0003FFE1FF8003FFE1FF80> 40 28 -2 0 35] 75 @dc
cmr10.300 @sf
[<07F3F00FFFF01E1F801C0F801C07801C03801C03801C03801C03801C03801C03801C03801C0380
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -