summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlgs/kanji/metrics2.ps
diff options
context:
space:
mode:
Diffstat (limited to 'Master/tlpkg/tlgs/kanji/metrics2.ps')
-rw-r--r--Master/tlpkg/tlgs/kanji/metrics2.ps97
1 files changed, 97 insertions, 0 deletions
diff --git a/Master/tlpkg/tlgs/kanji/metrics2.ps b/Master/tlpkg/tlgs/kanji/metrics2.ps
new file mode 100644
index 00000000000..f1b7745604d
--- /dev/null
+++ b/Master/tlpkg/tlgs/kanji/metrics2.ps
@@ -0,0 +1,97 @@
+%
+% wmode.ps - define /setmetrics2 operator
+%
+% Aug.28,1991 Programmed by N.Katayama
+%
+% Akira Tanaka <akr@jaist.ac.jp> modified for gs4.03/VFlib support. 1996/10/17
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Metrics Utility Operator
+% Execute this in the BuildChar procedure instead of setcachedevice2
+%
+
+%/SETMETRICS2 14 dict def % private dictionary
+
+%
+% w0x w0y llx lly urx ury w1x w1y vx vy char setmetrics2 -
+%
+
+/setmetrics2
+{
+ currentdict
+ 14 dict begin
+ /font exch def
+ /char exch def
+ /vy exch def /vx exch def /w1y exch def /w1x exch def
+ /ury exch def /urx exch def /lly exch def /llx exch def
+ /w0y exch def /w0x exch def
+
+ /old-llx llx def
+ /old-lly lly def
+
+ % Metrics
+
+ font /Metrics 2 copy known {
+ get char 2 copy known {
+ get dup type
+ dup /integertype eq {
+ /w0x 2 index def
+ } if
+ dup /realtype eq {
+ /w0x 2 index def
+ } if
+ dup /arraytype eq {
+ 1 index
+ dup length 2 eq {
+ /llx 1 index 0 get def
+ /urx llx old-llx sub urx add def
+ /w0x 1 index 1 get def
+ } if
+ dup length 4 eq {
+ /llx 1 index 0 get def
+ /lly 1 index 1 get def
+ /urx llx old-llx sub urx add def
+ /ury lly old-lly sub ury add def
+ /w0x 1 index 2 get def
+ /w0y 1 index 3 get def
+ } if
+ pop
+ } if
+ pop pop
+ }{ pop pop } ifelse
+ }{ pop pop } ifelse
+
+ % Metrics2
+
+ font /Metrics2 2 copy known {
+ get char 2 copy known {
+ get
+ dup 0 get /w1x exch def
+ dup 1 get /w1y exch def
+ dup 2 get /vx exch def
+ dup 3 get /vy exch def
+ pop
+ }{ pop pop } ifelse
+ }{ pop pop } ifelse
+
+ % CDevProc
+
+ font /CDevProc 2 copy known {
+ get
+ w0x w0y llx lly urx ury w1x w1y vx vy char 12 -1 roll exec
+ /vy exch def /vx exch def /w1y exch def /w1x exch def
+ /ury exch def /urx exch def /lly exch def /llx exch def
+ /w0y exch def /w0x exch def
+ }{ pop pop } ifelse
+
+ % setcachedevice2
+
+ w0x w0y llx lly urx ury w1x w1y vx vy setcachedevice2
+
+ % translate
+
+ llx old-llx sub lly old-lly sub translate
+
+ end
+} bind def