diff --git a/source-tounicode.dif b/source-tounicode.dif new file mode 100644 index 0000000..a0f8f59 --- /dev/null +++ b/source-tounicode.dif @@ -0,0 +1,69 @@ +--- texk/dvipdfm-x/tt_cmap.c (revision 47624) ++++ texk/dvipdfm-x/tt_cmap.c (revision 47625) +@@ -1,6 +1,6 @@ + /* This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. + +- Copyright (C) 2007-2017 by Jin-Hwan Cho and Shunsaku Hirata, ++ Copyright (C) 2007-2018 by Jin-Hwan Cho and Shunsaku Hirata, + the dvipdfmx project team. + + This program is free software; you can redistribute it and/or modify +@@ -928,7 +928,6 @@ + } + #undef MAX_UNICODES + if (unicode_count == -1) { +-#if defined(LIBDPX) + if(verbose > VERBOSE_LEVEL_MIN) { + if (name) + MESG("No Unicode mapping available: GID=%u, name=%s\n", gid, name); +@@ -935,12 +934,6 @@ + else + MESG("No Unicode mapping available: GID=%u\n", gid); + } +-#else +- if (name) +- MESG("No Unicode mapping available: GID=%u, name=%s\n", gid, name); +- else +- MESG("No Unicode mapping available: GID=%u\n", gid); +-#endif /* LIBDPX */ + } else { + /* the Unicode characters go into wbuf[2] and following, in UTF16BE */ + /* we rely on WBUF_SIZE being more than adequate for MAX_UNICODES */ +@@ -1021,13 +1014,7 @@ + { + USHORT count = 0; + USHORT cid = cffont ? cff_charsets_lookup_inverse(cffont, gid) : gid; +- +- /* Skip PUA characters and alphabetic presentation forms, allowing +- * handle_subst_glyphs() as it might find better mapping. Fixes the +- * mapping of ligatures encoded in PUA in fonts like Linux Libertine +- * and old Adobe fonts. +- */ +- if (is_used_char2(used_chars, cid) && !is_PUA_or_presentation(ch)) { ++ if (is_used_char2(used_chars, cid)) { + int len; + unsigned char *p = wbuf + 2; + +@@ -1038,11 +1025,18 @@ + len = UC_UTF16BE_encode_char((int32_t) ch, &p, wbuf + WBUF_SIZE); + CMap_add_bfchar(cmap, wbuf, 2, wbuf + 2, len); + +- /* Avoid duplicate entry +- * There are problem when two Unicode code is mapped to +- * single glyph... ++ /* Skip PUA characters and alphabetic presentation forms, allowing ++ * handle_subst_glyphs() as it might find better mapping. Fixes the ++ * mapping of ligatures encoded in PUA in fonts like Linux Libertine ++ * and old Adobe fonts. + */ +- used_chars[cid / 8] &= ~(1 << (7 - (cid % 8))); ++ if (!is_PUA_or_presentation(ch)) { ++ /* Avoid duplicate entry ++ * There are problem when two Unicode code is mapped to ++ * single glyph... ++ */ ++ used_chars[cid / 8] &= ~(1 << (7 - (cid % 8))); ++ } + } + + return count; diff --git a/texlive.changes b/texlive.changes index b85549c..337e8e8 100644 --- a/texlive.changes +++ b/texlive.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon May 7 11:19:03 UTC 2018 - werner@suse.de + +- Add patch source-tounicode.difto fix tounicode entries for + ligatures in pdf output of xelatex + ------------------------------------------------------------------- Mon May 7 10:16:26 UTC 2018 - idonmez@suse.com diff --git a/texlive.spec b/texlive.spec index 1db4abc..efb7b03 100644 --- a/texlive.spec +++ b/texlive.spec @@ -277,6 +277,8 @@ Patch47: biber-perl-5.18.2.dif Patch50: source-dvipdfm-x.dif # PATCH-FIX-SUSE Use pkg-config to find freetype2 Patch51: freetype-use-pkg-config.patch +# PATCH-FIX-TEXLIVE +Patch52: source-tounicode.dif Prefix: %{_bindir} Provides: pdfjam = %{version} Obsoletes: pdfjam < %{version} @@ -3574,7 +3576,8 @@ rm -vf t/*.fastsort popd %endif %patch50 -p0 -b .dvipdfm-x -%patch51 -p1 +%patch51 -p1 -b .fft2 +%patch52 -p0 -b .2utf8 # Correct FHS paths paths=$(find -name cnf-to-paths.awk) @@ -3615,10 +3618,9 @@ popd LD_LIBRARY_PATH=${prefix}/lib:${world}/texk/kpathsea/.libs:${world}/texk/ptexenc/.libs export LD_LIBRARY_PATH - # This is for freetype2 pkg-config change (patch51) - ./reautoconf . libs/gd texk/dvipng texk/dvisvgm texk/ttf2pk2 texk/xdvik - # We have an other autoconf/automake version - ./reautoconf libs/icu/dummy texk/dvipdfm-x texk/web2c texk/web2c/web2c + # We have an other autoconf/automake version and some patch changing ac files + ./reautoconf . libs/gd libs/icu/dummy texk/dvipdfm-x texk/dvipng texk/dvisvgm \ + texk/ttf2pk2 texk/web2c texk/web2c/web2c texk/xdvik if [[ $VENDOR =~ opensuse ]] ; then banner='for opensuse.org'