当我使用text_uppercase
德语变音符号和 hyperref 选项“unicode=true”时,书签中的变音符号会被替换为带有波浪号的“A”。我设置了选项“unicode=true”,因为我必须使用希腊字母对其中一个节级进行编号。为此,我使用了“textgreek”字母,这些字母只在带有 hyperref unicode 选项的书签中有效... 有办法解决这个问题吗?
\documentclass{book}
\usepackage[T1]{fontenc}
\usepackage{hyperref}
\hypersetup{
unicode=true,
bookmarksnumbered=true
}
\ExplSyntaxOn
\cs_set_eq:NN\textupper\text_uppercase:n
\ExplSyntaxOff
\begin{document}
\tableofcontents
\chapter{\textupper{Über die Einöde}}% umlauts get replaced in bookmarks
\end{document}
答案1
下面的方法似乎有效,但我没有检查很多情况。
\documentclass{book}
\usepackage[T1]{fontenc}
\usepackage{hyperref}
\hypersetup{
unicode=true,
bookmarksnumbered=true
}
%\usepackage{bookmark}
\ExplSyntaxOn
\newcommand\textupper{}
\pdfstringdefDisableCommands
{
\cs_set:Npn\textupper #1{ \use:e {\text_uppercase:n {#1}} }
}
% if also in the headings
%\cs_set_eq:NN\textupper\text_uppercase:n
\ExplSyntaxOff
\begin{document}
\tableofcontents
\chapter{\textupper{Über die Einöde}}%
\end{document}