1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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
91
92
93
94
95
96
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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
|
// Copyright 2016 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
////////////////////////////////////////////////////////////////////////////////
// Produced by stringify.cc on 2007-09-28 09:13 from file i18n/encodings/compact_enc_det/tools/detail_head.ps
"%!PS-Adobe-2.0\n\n/inch {72 mul} def\n/cshow {dup stringwidth pop -2 div"
" 0 rmoveto show} def\n\n/lmargin 0.5 inch def\n/rmargin 8.5 inch def\n/t"
"margin 10.5 inch def\n/bmargin 0.5 inch def\n\n\n% set to N>=0 to track "
"ranked encoding N\n/track-me -1 def\n/track-me2 -1 def\n\n/columns 2 def"
"\n\n/lpi 18 def % lines per inch\n/lpc lpi 10 mul def "
" % lines per column\n/lpp lpc columns mul def % lines per page\n"
"/probw 3.0 inch def % probability width\n/probr 50 def "
" % probability range\n/widowlines lpi 2 idiv def % 1/2 inch widow a"
"t bottom\n/widowlines lpi def % 1 inch widow at bottom\n\n/lpg l"
"pi 2 idiv def % 1/2 inch spacing between groups\n\n/delc 4 inch "
"def\n/dell -1 inch lpi div def\n\n/next-line 0 def % 24 lines per i"
"nch, 240 per column\n\n/Cfont /Courier findfont 6 scalefont def\n/Hfont "
"/Helvetica findfont 6 scalefont def\nHfont setfont\n\n\n% simple string "
"hash -- sum the characters\n/strhash {\n /hstr exch def\n /h 0 def\n "
"0 1 hstr length 1 sub {/i exch def /h h hstr i get add def} for\n h\n}"
" def\n\n% convert pro at 30 per 2x to 0-2.5 inches spanning -50 to 0\n/p"
"rob2x {\n 30 idiv probr div probw mul neg probw add\n}def\n\n\n/cliptoc"
"olumn {\n % ====== MUST MATCH ME ======\n gsave\n lmargin tmargin mov"
"eto\n next-line lpc idiv delc mul 0 rmoveto\n -1 18 rmoveto 0 -10.5 in"
"ch rlineto delc 2 add 0 rlineto 0 10.5 inch rlineto closepath\n clip\n"
" newpath\n} def\n\n/endcliptocolumn {\n grestore\n % ====== MUST MATC"
"H ME ======\n} def\n\n\n\n/column-box {\n lmargin tmargin moveto\n nex"
"t-line 1 sub lpc idiv delc mul next-line 1 sub lpc mod 1 add dell mul r"
"moveto\n % box\n gsave -1.5 0 rmoveto 0 detail-count dell mul neg rmov"
"eto probw 3 add 0 rlineto 0.25 setlinewidth stroke grestore\n gsave -1"
".5 0 rmoveto 0 detail-count dell mul neg rlineto 0.25 setlinewidth strok"
"e grestore\n gsave probw .8 mul 0 rmoveto 0 detail-count dell mul neg r"
"lineto 0.25 setlinewidth 0.8 setgray stroke grestore\n gsave probw .6 m"
"ul 0 rmoveto 0 detail-count dell mul neg rlineto 0.25 setlinewidth 0.8 s"
"etgray stroke grestore\n gsave probw .4 mul 0 rmoveto 0 detail-count de"
"ll mul neg rlineto 0.25 setlinewidth 0.8 setgray stroke grestore\n gsav"
"e probw .2 mul 0 rmoveto 0 detail-count dell mul neg rlineto 0.25 setlin"
"ewidth 0.8 setgray stroke grestore\n gsave probw 1.5 add 0 rmoveto 0 de"
"tail-count dell mul neg rlineto 0.25 setlinewidth stroke grestore\n} def"
"\n\n\n/IncrementLine {\n /incr exch def\n /next-line next-line incr ad"
"d def\n next-line lpc ge next-line incr sub lpc lt and {\n % We "
"just went to the top of column 2; redo clip\n endcliptocolumn % M"
"UST match\n column-box\n /next-line lpc def\n cliptocolumn "
" % MUST match\n } if\n next-line lpp ge {\n % We just went to the"
" top of column 3; start new page column 1\n endcliptocolumn % MUS"
"T match\n column-box\n showpage\n Hfont setfont\n /next-line"
" 0 def\n show-pageno\n cliptocolumn % MUST match\n } if\n}"
" def\n\n/IncrementLineOutside {\n /incr exch def\n /next-line next-lin"
"e incr add def\n next-line lpc ge next-line incr sub lpc lt and {\n"
" % We just went to the top of column 2\n /next-line lpc def\n } i"
"f\n next-line lpp ge {\n % We just went to the top of column 3; star"
"t new page column 1\n showpage\n Hfont setfont\n /next-line 0 d"
"ef\n show-pageno\n } if\n} def\n\n/NextColumn {\n lpc 1 sub Increme"
"ntLine\n} def\n\n/NextPage {\n lpp 1 sub IncrementLine\n} def\n\n% Up"
"on entry, we are OUTSIDE the clip\n/start-detail {\n /d-title exch def\n"
"\n % align >= 1 inch at bottom of column, and/or start new column\n lp"
"c next-line lpc mod sub widowlines lt {\n % Start at top of a column\n"
" next-line lpc ge {\n % Start new page\n showpage\n Hf"
"ont setfont\n /next-line 0 def\n show-pageno\n } {\n %"
" Start new column\n /next-line lpc def\n } ifelse\n } if\n\n l"
"margin tmargin moveto\n next-line lpc idiv delc mul next-line lpc mod "
"dell mul rmoveto\n gsave d-title show grestore\n 0 dell rmoveto\n 1 1"
" 4 {/j exch def gsave probw j mul 5 div -2 rmoveto 50 j 10 mul sub 20 st"
"ring cvs cshow grestore} for\n 2 IncrementLineOutside\n /detail-count "
"1 def\n cliptocolumn % MUST match\n /d-array [] def\n} def\n"
"\n/size-detail {\n /d-names exch def\n /d-size exch def\n % zero sums"
"\n /sums d-size array def\n 0 1 d-size 1 sub {/i exch def sums i 0 pu"
"t} for\n /old-d-max 0 def\n /colors d-size array def\n 0 1 d-size 1 s"
"ub {/i exch def colors i i 3 mul 17 mod 17 div put} for\n %0 1 d-size "
"1 sub {/i exch def colors i d-names i get strhash 3 mul 17 mod 17 div p"
"ut} for\n %0 1 d-size 1 sub {/i exch def ( ) show colors i get 20 stri"
"ng cvs show} for\n} def\n\n/count-detail {\n /detail-total-count exch d"
"ef\n % if total-count >= one column, start at top of a column\n detail"
"-total-count lpp ge {\n % Start new page\n NextPage\n } {\n de"
"tail-total-count lpc ge {\n % Start new column\n NextColumn\n "
" } if\n } ifelse\n} def\n\n% highlight next entry with underbar\n/do-"
"flag {\ngsave\n setrgbcolor\n lmargin tmargin moveto\n next-line lpc "
"idiv delc mul next-line lpc mod dell mul rmoveto\n 0 -2 rmoveto\n pro"
"bw 0 rlineto\n 0 dell neg rlineto\n probw neg 0 rlineto\n closepath\n"
" fill\ngrestore\n} def\n\n/do-detail-e {\n /d-array exch def\n /d-enc"
" exch def\n /d-label exch def\n /d-max -999999 def\n\n lmargin tmargi"
"n moveto\n next-line lpc idiv delc mul next-line lpc mod dell mul rmov"
"eto\n 0.25 setlinewidth\n\n % show label, using encoding color\n gsav"
"e\n probw 2 add -2 rmoveto\n detail-count 1 sub 2 mod 0.25 inch mu"
"l 0 rmoveto\n % ([) show detail-count 20 string cvs show (] ) show\n "
" d-enc 0 lt {\n 0 setgray\n }{\n colors d-enc get 1 .8 se"
"thsbcolor\n } ifelse\n d-label show\n grestore\n % For -prune- d"
"raw horizontal line\n d-label length 8 gt {d-label 4 get (p) 0 get eq d"
"-label 5 get (r) 0 get eq and {\n /prune-val d-label cvi def\n /ne"
"wx prune-val 30 mul prob2x def\n gsave newx 6 rmoveto 0 -12 rlineto 1"
".5 setlinewidth 0.8 setgray stroke grestore\n gsave probw 0 add 0 rli"
"neto 0.25 setlinewidth 0.8 setgray stroke grestore\n } if } if\n\n % t"
"rack max per new row\n 0 1 d-array length 1 sub {\n /i exch def\n "
" /sum sums i get d-array i get add def\n d-max sum lt {/d-max sum def"
"} if\n } for\n\n % draw line increments\n 0 1 d-array length 1 sub {\n"
" /i exch def\n detail-count 1 gt {\n /oldx old-d-max sums i g"
"et sub prob2x def\n } {\n /oldx 600 prob2x def\n } ifelse\n "
" /oldy dell neg def\n /newx d-max sums i get d-array i get add sub"
" prob2x def\n /newy 0 def\n gsave\n oldx oldy rmoveto\n newx"
" oldx sub newy oldy sub rlineto\n % if encoding is being tracked, ma"
"ke bold line\n i track-me eq\n {2 setlinewidth}\n {i track-"
"me2 eq {1.25 setlinewidth} {0.25 setlinewidth} ifelse}\n ifelse\n "
" colors i get 1 .8 sethsbcolor stroke\n grestore\n } for\n /detail"
"-count detail-count 1 add def\n\n % increment running total in sums, tr"
"ack max per row\n 0 1 d-array length 1 sub {\n /i exch def\n sums"
" i sums i get d-array i get add put\n } for\n /old-d-max d-max def\n"
"\n 1 IncrementLine\n} def\n\n\n/do-detail {\n /d-array exch def\n /d-"
"label exch def\n d-label -1 d-array do-detail-e\n} def\n\n% Upon exit, "
"we are outside the clip\n/end-detail {\n pop\n endcliptocolumn "
" % MUST match\n column-box\n\n % text labels\n 0 1 d-array length 1 s"
"ub {\n /i exch def\n gsave\n /newx old-d-max sums i get sub pro"
"b2x def\n newx 0 ge {\n newx 0 rmoveto\n currentpoint trans"
"late\n colors i get 1 .8 sethsbcolor\n gsave 0 dell neg rline"
"to 0.25 setlinewidth stroke grestore\n -60 rotate\n 0 -2 movet"
"o d-names i get show\n } if\n grestore\n } for\n d-array length "
"0 gt {\n lpg IncrementLineOutside\n } {\n lpg 4 idiv IncrementLin"
"eOutside\n } ifelse\n} def\n\n/do-src {\n/src exch def\n lmargin tmarg"
"in moveto\n next-line lpc idiv delc mul next-line lpc mod dell mul rmo"
"veto\n Cfont setfont\n src show\n Hfont setfont\n 1 IncrementLine\n}"
" def\n\n% Underline trigram in source text\n/do-highlight1 {\n /hl-colo"
"r exch def\n /hl-offset exch def\n /hl-line exch 1 sub 2 mul def\n gs"
"ave\n lmargin tmargin moveto\n next-line hl-line sub lpc idiv delc mul"
"\n next-line hl-line sub lpc mod dell mul rmoveto\n % Assume text is 6"
" chars in and 3.6 pts per char, but 2 chars per offset\n hl-offset 2 mu"
"l 6 add 3.6 mul 4 rmoveto\n\n 0 setgray 0.5 setlinewidth\n hl-color 1"
" eq {0 0 1 setrgbcolor} if % Latin1 blue\n hl-color 2 eq {1 0 1 setrgb"
"color} if % Latin2 magenta\n hl-color 3 eq {1 0.67 0 setrgbcolor} if "
"% Latin7 orange\n 18 -2 rlineto stroke\n grestore\n} def\n\n% Box trig"
"ram in source text\n/do-highlight2 {\n /hl-color exch def\n /hl-offset"
" exch def\n /hl-line exch 1 sub 2 mul def\n gsave\n lmargin tmargin m"
"oveto\n next-line hl-line sub lpc idiv delc mul\n next-line hl-line su"
"b lpc mod dell mul rmoveto\n % Assume text is 6 chars in and 3.6 pts pe"
"r char, but 2 chars per offset\n hl-offset 2 mul 6 add 3.6 mul 4 rmove"
"to\n\n 0 setgray 0.25 setlinewidth\n hl-color 1 eq {0 0 1 setrgbcolor}"
" if % Latin1 blue\n hl-color 2 eq {1 0 1 setrgbcolor} if % Latin2 mag"
"enta\n hl-color 3 eq {1 0.67 0 setrgbcolor} if % Latin7 orange\n -0.5"
" -0.5 rmoveto\n 22 0 rlineto\n 0 4 rlineto\n -11 2 rlineto\n -11 -2 "
"rlineto\n closepath\n stroke\n grestore\n} def\n\n/show-pageno {\ngsa"
"ve\nlmargin bmargin moveto 0 -12 rmoveto\n(Page ) show pageno 20 string "
"cvs show\ngrestore\n/pageno pageno 1 add def\n} def\n\n/pageno 1 def\nsh"
"ow-pageno\n%=============================\n\n\n"
|