| // 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" |