首先,我想以避免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
编码和\pdfstringdef
PD1
PU
让许多字符正常工作。为了重新发明轮子,我强烈建议PDF 规范。
在 TeX 级别,字符串需要扩展为不带命令的纯文本字符串。PDF 查看器无法识别书签字符串内的 TeX 命令。
\char'151
( i
) 和\char'141
( )中的字母a
可以表示为 (PDFDocEncoding):
\pdfinfo{/Author(\string\151\string\141)}
pdfinfo
然后报告:
Author: ia