[latex3-commits] [git/LaTeX3-latex3-hyperref] removexetexbigchars: document change in big chars handling with xetex (1f5daf9)
Ulrike Fischer
fischer at troubleshooting-tex.de
Wed May 13 13:28:48 CEST 2020
Repository : https://github.com/latex3/hyperref
On branch : removexetexbigchars
Link : https://github.com/latex3/hyperref/commit/1f5daf9f0393c363fe66c02394892ea204723faa
>---------------------------------------------------------------
commit 1f5daf9f0393c363fe66c02394892ea204723faa
Author: Ulrike Fischer <fischer at troubleshooting-tex.de>
Date: Wed May 13 13:28:48 2020 +0200
document change in big chars handling with xetex
>---------------------------------------------------------------
1f5daf9f0393c363fe66c02394892ea204723faa
doc/manual.tex | 48 +++++++++---------------------------------------
1 file changed, 9 insertions(+), 39 deletions(-)
diff --git a/doc/manual.tex b/doc/manual.tex
index ff34f2d..7e6da78 100644
--- a/doc/manual.tex
+++ b/doc/manual.tex
@@ -2979,50 +2979,20 @@ For equations the following might work:
\subsubsection{XeTeX}
Default for the encoding of bookmarks is `pdfencoding=auto'.
- That means the strings are always treated as unicode strings.
- Only if the string restricts to the printable ASCII set,
+ That means the strings are always treated as unicode strings.
+ Only if the string restricts to the printable ASCII set,
it is written as ASCII string. The reason is that the
\verb|\special| does not support PDFDocEncoding.
+ In older versions hyperref contained special conversion code from
+ UTF-16BE back to UTF-8 in a number of places for
+ xetex to avoid the xdvipdfmx warning
+ \verb"Failed to convert input string to UTF16..."
- XeTeX uses the program xdvipdfmx for PDF output generation.
- This program behaves a little different from dvipdfm, because
- of the supported Unicode characters. Strings for bookmarks
- or information entries can be output directly. The
- big chars (char code > 255) are written in UTF-8 and
- xdvipdfmx tries to convert them to UTF-16BE. However
- hyperref already provides PDF strings encoded in UTF-16BE,
- thus the result is a warning
-
- \verb"Failed to convert input string to UTF16..."
-
- The best way would be, if xdvipdfm could detect the
- byte order marker (\verb|\376\377|) and skips the conversion
- if that marker is present.
-
- For the time being I added the following to hyperref,
- when option `pdfencoding=auto' is set (default for XeTeX):
- The string is converted back to big characters thus that the
- string is written as UTF-8. But I am very unhappy with this
- solution. Main disadvantage:
- Two versions of \verb|\pdfstringdef| are needed:
-
- a) The string is converted back to big characters for
- the ``tainted key'' of xdvipdfmx (\verb|spc_pdfm.c: default_taintkeys|).
- The subset hyperref uses is /Title, /Author, /Subject,
- /Keywords, /Creator, /Producer, /T. Any changes of this
- set in xdvipdfmx cannot be detected by hyperref.
-
- b) Without conversion for the other strings , providing UTF16be
- directly. Examples: Prefix of page labels, some elements
- of formulars.
-
- Thus \textbf{each} application that uses \verb|\pdfstringdef| now must
- check, if it defines a string for some of the tained keys.
- If yes, then the call of \verb|\pdfstringdef| should be preceded
- by \verb|\csname HyPsd at XeTeXBigCharstrue\endcsname|.
- Example: package bookmark.
+ This is no longer needed with a current xdvipdfmx, so this code has
+ been removed. \verb|\csname HyPsd at XeTeXBigCharstrue\endcsname| should no
+ longer be used.
\section[Limitations]{Limitations%
More information about the latex3-commits
mailing list.