如何在 \pdfinfo 中使用 \char?

如何在 \pdfinfo 中使用 \char?

首先,我以避免hyperref包裹。

我在用着

\AtEndDocument{
    \pdfinfo{
        /Title (here (\the\year))
        /Creator (foo)
        %   /Producer (pdfTeX 1.40.0)
        /Author (\@author)
        /Subject (foo)
        /Keywords (faa,foo)
    }
}

将一些信息传递给 PDF 文件。

但我也希望在里面写一些字符(不那么明确),例如\char'151\char'141

但在这种情况下输出是(2016 年)字符 '151字符 '141

是否可以隐藏里面的字符pdfinfo

答案1

\char不是可扩展命令,因此它不能用作 中的字符串\pdfinfo。此外,\char将使用当前字体编码。但字体编码在这里无关紧要。相反,PDF 规范允许两种编码:

  • PDFDocEncoding,一种 8 位编码,与 latin1 不同,但类似,
  • Unicode 字符串采用带 BOM 的 UTF16-BE

该包stringenc有助于将字符串(例如从 UTF-8)转换为中的值所需的正确编码\pdfinfo

此外,键的值\pdfinfo必须转义为字符串,例如不匹配的括号;pdfTeX\pdfescapestring在此处帮助处理括号中的字符串。另一种字符串形式是尖括号,其中的字符串编码为十六进制字符串。

包处理了很多这些问题。它还定义了虚拟字体hyperref编码和\pdfstringdefPD1PU让许多字符正常工作。为了重新发明轮子,我强烈建议PDF 规范

在 TeX 级别,字符串需要扩展为不带命令的纯文本字符串。PDF 查看器无法识别书签字符串内的 TeX 命令。

\char'151( i) 和\char'141( )中的字母a可以表示为 (PDFDocEncoding):

\pdfinfo{/Author(\string\151\string\141)}

pdfinfo然后报告:

Author: ia

相关内容