summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/t2/enc-maps/make-enc.pl
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/t2/enc-maps/make-enc.pl
Initial commit
Diffstat (limited to 'macros/latex/contrib/t2/enc-maps/make-enc.pl')
-rw-r--r--macros/latex/contrib/t2/enc-maps/make-enc.pl48
1 files changed, 48 insertions, 0 deletions
diff --git a/macros/latex/contrib/t2/enc-maps/make-enc.pl b/macros/latex/contrib/t2/enc-maps/make-enc.pl
new file mode 100644
index 0000000000..8e141a2bb6
--- /dev/null
+++ b/macros/latex/contrib/t2/enc-maps/make-enc.pl
@@ -0,0 +1,48 @@
+#!/usr/bin/perl
+
+$enc2uni=$ARGV[0];
+$encname=$ARGV[1];
+shift;shift;
+$glyph2uni=join("', `",@ARGV);
+
+while(<>) {
+ if ($_ =~ /^#/) { next }
+ s/(....);([^;]*);/$glyphenc{$1}=$2/e;
+}
+
+print <<"ENDHEADER";
+% This file is generated from `$enc2uni' and `$glyph2uni'
+%
+% LIGKERN hyphen hyphen =: endash ; endash hyphen =: emdash ;
+% LIGKERN quoteleft quoteleft =: quotedblleft ;
+% LIGKERN quoteright quoteright =: quotedblright ;
+% LIGKERN comma comma =: quotedblbase ; less less =: guillemotleft ;
+% LIGKERN greater greater =: guillemotright ;
+% LIGKERN f f =: ff ; f i =: fi ; f l =: fl ; ff i =: ffi ; ff l =: ffl ;
+%
+% LIGKERN space {} * ; * {} space ; zero {} * ; * {} zero ;
+% LIGKERN one {} * ; * {} one ; two {} * ; * {} two ;
+% LIGKERN three {} * ; * {} three ; four {} * ; * {} four ;
+% LIGKERN five {} * ; * {} five ; six {} * ; * {} six ;
+% LIGKERN seven {} * ; * {} seven ; eight {} * ; * {} eight ;
+% LIGKERN nine {} * ; * {} nine ;
+%
+/${encname}Encoding [
+ENDHEADER
+
+$n=0;
+open(ENC2UNI,$enc2uni);
+while(<ENC2UNI>) {
+ if ($_ =~ /^#/) { next }
+ s/(..);([^;]*);/$codeenc=$1;$codeuni=$2/e;
+ if ($n % 16 == 0) { printf "%% 0x%02X\n",$n }
+ $n++;
+ if ($glyphenc{$codeuni} ne "") {
+ print "/$glyphenc{$codeuni}\n";
+ } else {
+ print "/.notdef\n";
+ }
+}
+close(ENC2UNI);
+
+print "] def\n";