如何通过 \string 命令查找表示的 unicode 字符

如何通过 \string 命令查找表示的 unicode 字符

我正在使用 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。表格可以在很多地方找到。

相关内容