使用 latex3 和 utf8 引擎在 PDF 元数据中使用 Unicode

使用 latex3 和 utf8 引擎在 PDF 元数据中使用 Unicode

PDF 元数据中的 Unicode,Heiko Oberdiek 提出了一种在低级操作时将 PDF 元数据设置为某个 unicode 字符串的方法,而无需诉诸hyperref。为此,他最终使用该stringenc包对字符串进行必要的重新编码,从 utf-8 改为 utf-16be,并且需要手动添加 BOM。以下是他的例子:

% UTF-8 encoded source file
\input stringenc.sty\relax

\def\MyAuthor{Erwin Schrödinger}
\edef\BOM{\string\376\string\377}
\StringEncodingConvert{\PdfAuthor}{\MyAuthor}{utf8}{utf16be}
\StringEncodingSuccessFailure{}{%
  \errmessage{Conversion from utf8 to utf16be failed for author string}%
}
\pdfinfo{/Author(\BOM\pdfescapestring{\PdfAuthor})}%
\null
\bye

我想知道是否有一种方法可以做同样的事情,而不必诉诸stringenc,而是依靠latex3接口。我已经看到有一个完整的 latex3 包用于字符串编码转换,即l3str-convertpackage。但是,我找不到任何直接完成我需要的东西。例如,是否有针对 PDF 元数据的预制 BOM 定义?我应该依靠 来\str_set_convert:Nnnn进行转换(可能使用:NVnn变体?)。是否有一个一体化函数可以帮我完成转换?\str_convert_pdfname:n肯定不是我想要的,对吧?

相关内容