我正在用 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}}