hyperref:在章节/部分中使用英语时遇到麻烦(希腊语文档)

hyperref:在章节/部分中使用英语时遇到麻烦(希腊语文档)

我正在用 latex(希腊文文档)写论文,当我在章节和节中输入英文单词时,hyperref 出现了问题。如果我只使用希腊字符,这个问题就会消失。下面是一个包含我实际序言的简单示例

\documentclass[a4paper,oneside,11pt]{book}
\usepackage{ucs}
\usepackage{amsmath,amssymb}
\usepackage{xfrac}
\DeclareMathOperator{\arcsinh}{arcsinh}
\usepackage{bm}
\usepackage[utf8x]{inputenc}
\usepackage[greek,english]{babel}
\newcommand{\en}{\selectlanguage{english}}
\newcommand{\gr}{\selectlanguage{greek}}
\usepackage{graphicx}
\usepackage{fancyhdr}
\usepackage{epigraph}
\pagestyle{fancy}
\fancyhead{}
\fancyhead[R]{\thepage}
\fancyfoot{}
\usepackage{pdfpages}
\usepackage{kerkis}
\usepackage[unicode]{hyperref}

\begin{document}
\gr

\chapter{τι κάνεις {\en {Hello}}

καλημέρα\cite{alice}

\begin{thebibliography}{9}
\bibitem{alice}  \en
Carol L.,Alice in,Wiley
\end{thebibliography}


\end{document}

答案1

\selectlanguage(由\en和使用\gr)在书签中不起作用。可以在加载后禁用它hyperref

\pdfstringdefDisableCommands{\let\selectlanguage\@gobble}

此外,由于赋值在书签字符串中不起作用,因此需要为ucs/加载所需的代码页utf8x。可以使用\PreloadUnicodePage或:\PrerenderUnicode

\PreloadUnicodePage{3}

第三,第一行的花括号不匹配\chapter。要么是行尾需要额外的右括号,但\en没有参数,而且Hello不需要周围的组括号。因此,更简单的解决方法是删除 之前的左花括号Hello

概括:

\usepackage[unicode]{hyperref}
\pdfstringdefDisableCommands{\let\selectlanguage\@gobble}
\PreloadUnicodePage{3}
...
\chapter{τι κάνεις {\en Hello}}

相关内容