diff options
Diffstat (limited to 'Master/tlpkg/tlgs/Resource/Init/gs_ttf.ps')
-rw-r--r-- | Master/tlpkg/tlgs/Resource/Init/gs_ttf.ps | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/Master/tlpkg/tlgs/Resource/Init/gs_ttf.ps b/Master/tlpkg/tlgs/Resource/Init/gs_ttf.ps index 74043d16b0c..394cba28e26 100644 --- a/Master/tlpkg/tlgs/Resource/Init/gs_ttf.ps +++ b/Master/tlpkg/tlgs/Resource/Init/gs_ttf.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2019 Artifex Software, Inc. +% Copyright (C) 2001-2020 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -1304,7 +1304,7 @@ currentdict /.pickcmap_with_no_xlatmap .undef TTFDEBUG { (\n1 setting alias: ) print dup ==only ( to be the same as ) print 2 index //== exec } if - 7 index 2 index 3 -1 roll exch .forceput + 7 index 2 index 3 -1 roll exch put } forall pop pop pop } @@ -1322,7 +1322,7 @@ currentdict /.pickcmap_with_no_xlatmap .undef exch pop TTFDEBUG { (\n2 setting alias: ) print 1 index ==only ( to use glyph index: ) print dup //== exec } if - 5 index 3 1 roll .forceput + 5 index 3 1 roll put //false } { @@ -1339,7 +1339,7 @@ currentdict /.pickcmap_with_no_xlatmap .undef { % CharStrings(dict) isunicode(boolean) cmap(dict) RAGL(dict) gname(name) codep(integer) gindex(integer) TTFDEBUG { (\3 nsetting alias: ) print 1 index ==only ( to be index: ) print dup //== exec } if - exch pop 5 index 3 1 roll .forceput + exch pop 5 index 3 1 roll put } { pop pop @@ -1369,7 +1369,7 @@ currentdict /.pickcmap_with_no_xlatmap .undef } ifelse ] TTFDEBUG { (Encoding: ) print dup === flush } if -} .bind executeonly odef % hides .forceput +} .bind odef % ---------------- CIDFontType 2 font loading ---------------- % @@ -1657,7 +1657,13 @@ currentdict /.pickcmap_with_no_xlatmap .undef /CharStrings currentdict end } .bind def -% - .pdfcharkeys /CharStrings <charstrings> /Encoding <encoding> +% If we're using a 1,0 cmap table, we need to store the table for the heuristic +% to know whether to image or elide GID 0. See zfapi.c ps_get_glyphname_or_cid(). +% For other cmap types, we don't. Since this just pushes key/value pairs onto the +% stack for a later dicttomark op, it doesn't matter that different branches can push +% different numbers of objects. +% +% - .pdfcharkeys [/TT_cmap cmapdict] /CharStrings <charstrings> /Encoding <encoding> /.pdfcharkeys { % The following algorithms are per the PDF 1.7 Reference. TTFDEBUG { (.pdfcharkeys beg) = } if @@ -1736,12 +1742,13 @@ currentdict /.pickcmap_with_no_xlatmap .undef } ifelse } { <00010000> //.findcmap exec { + /TT_cmap 1 index cmapdict 3 -1 roll TTFDEBUG { (Using cmap 1.0 for non-symbolic.) = } if prebuilt_encoding //null ne { prebuilt_encoding .invert_encoding exch .romanmacdict //.pdfmapchars exec prebuilt_encoding } { - 0 dict exch + 0 dict exch .romanmacdict //.pdfmapchars exec /MacRomanEncodingForTrueType .findencoding } ifelse /Encoding exch |