在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
肯定不是我想要的,对吧?