我正在使用 PDFLaTex 编译器并想要生成 PDF/A-1b 格式的文件。我正在使用包\usepackage[utf8]{inputenc}
。
我在 PDF 元数据的 unicode 编码方面遇到了问题。我想在作者元数据中使用 unicode,例如:
\pdfinfo{%
/Author (š)
}
这将为 PDF 文档中的作者元数据生成以下值,而不是该值š
:
unhbox voidb@x group let unhbox voidb@x setbox @tempboxa hbox {sglobal mathchardef accent@spacefactor spacefactor }accent 20 segroup spacefactor accent@spacefactor
因此我尝试找到一种方法来对我需要的一些unicode字符进行编码,以便它们能够在PDF文档中正确显示。
我找到了一种使用 Tex 标记的方法,即Š
我可以使用\string\227
。通过强力破解,我找到了我需要的一些 Unicode 字母的代码对应关系:
227:Š
231:Ž
235:š
236:ž
但我找不到字母č
和的代码Č
。有没有更简单的方法,比如查找表?或者有没有其他方法可以使它在我描述的这种特定情况下发挥作用?
答案1
如果您使用包,hyperref
它会负责 PDF 信息条目的编码:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[pdfencoding=auto]{hyperref}
\hypersetup{
pdfauthor={š},
}
\begin{document}
Hello World
\end{document}
(截断的)输出pdfinfo
:
Author: š
Producer: pdfTeX-1.40.21
选项设置pdfencoding=auto
首先创建一个 Unicode 字符串,但如果字符串中的所有字符都可以重新编码,则使用更简单的 8 位 PDFDocEncoding。(在这种情况下,š
确实可以在后一种编码中进行编码)。
当然,也可以手动指定字符串\pdfinfo
:
% Unicode (UTF-16BE with BOM)
\pdfinfo{/Author (\string\376\string\377\string\001\string\141)}% string with octal escapes
\pdfinfo{/Author <feff0161>}% hexadecimal string
% PDFDocEncoding
\pdfinfo{/Author (\string\235)}
\pdfinfo{/Author <9d>}
PDF 参考 (PDF 1.7/ISO 32000-1:2008) 仅支持两种编码 PDFDocEncoding (1 字节/8 位,类似于 ISO-8859-1,但有一些区别) 和 UTF-16BE 带 BOM (多字节) 用于信息和书签字符串。UTF-8 不能直接使用。
该软件包hyperref
负责编码工作,并在信息和书签字符串中支持相当多的 TeX 内容(但远非全部),并使用户免于手动繁琐的操作。
答案2
尝试这个:
\documentclass{standalone}
\begin{document}
^^^^0160 %Š
^^^^0161 %š
^^^^017d %Ž
^^^^017e %ž
^^^^010c %Č
^^^^010d %č
\end{document}
如果您还需要更多,只需谷歌一下字符 + Unicode。表格可以在很多地方找到。