LuaLaTeX 和 hyperref 吞噬了我的文档(属性)。我该如何恢复它们?

LuaLaTeX 和 hyperref 吞噬了我的文档(属性)。我该如何恢复它们?

我使用hyperref它的原因有很多,但其中之一就是它可以很好地设置文档属性。只要我用 XeLaTeX 编译就可以了。一旦我用 LuaLaTeX 编译,一切都会变得一团糟。在我的实际项目中,还有更多字段存在问题,但这是一个仅使用标题字段的 MWE:

\documentclass{scrartcl}
\usepackage{polyglossia}
\setmainlanguage{turkish}
\makeatletter
\usepackage[hidelinks]{hyperref}
\AtBeginDocument{%
    \hypersetup{%
        pdftitle = {\@title}
    }
}{}
\makeatother
\title{RAB'BİN GÜNÜ}
\begin{document}
Title in document properties should match: RAB'BİN GÜNÜ 
\end{document}

编译后xelatex得到:

标题:拉宾·古努

但是lualatex午餐吃了 Unicode 却消化不良:

标题:拉布班·戈尼奥

使用 LuaLaTeX 编译时,如何将正确的 Unicode 字符放入文档属性字段?

答案1

unicode通过将选项传递给以下内容可以避免消化不良hyperref

\documentclass{scrartcl}
\usepackage{polyglossia}
\setmainlanguage{turkish}
\makeatletter
\usepackage[hidelinks,unicode]{hyperref}
\AtBeginDocument{%
    \hypersetup{%
        pdftitle = {\@title}
    }
}{}
\makeatother
\title{RAB'BİN GÜNÜ}
\begin{document}
Title in document properties should match: RAB'BİN GÜNÜ
\end{document}

在此处输入图片描述

以下是输出pdfinfo -enc UTF-8 test.pdf(仅相关部分)

LuaLaTeX

Title:          RAB'BİN GÜNÜ
Subject:        
Keywords:       
Author:         
Creator:        LaTeX with hyperref package
Producer:       LuaTeX-0.79.1
CreationDate:   Tue Mar 24 12:01:09 2015
ModDate:        Tue Mar 24 12:01:09 2015

西拉特克斯

Title:          RAB'BİN GÜNÜ
Creator:        LaTeX with hyperref package
Producer:       xdvipdfmx (20140317)
CreationDate:   Tue Mar 24 11:58:05 2015

答案2

解释了使用 LuaTeX 或 XeTeX 时行为不同的原因这里。XeTeX 使用xdvipdfmx并且此转换器自动设置 UTF8 到 UCS2 的转换。另一方面,当我们使用直接 pdfTeX 原语(如在 LuaTeX 中)时,则必须在宏级别完成 UTF8 到 UCS2 的转换。hyperref当设置了上述选项时,包会执行此操作unicode

相关内容