答案1
指某东西的用途
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
表示您正在使用 pdfTeX,这是一个 8 位引擎。这无法在内部表示 Unicode 代码点的全部范围,并且对于 0-127 位置,8 位和 Unicode 代码点之间只有 1 对 1 的映射:从字母角度来说,基本上是 A-Za-z。要打印其他字符,inputenc
包会制作各种代码点积极的,并使用它将引擎看到的 2、3 或 4 个“字符”重新映射到字体中的单个插槽。
这对于普通文本来说很有效(如果你只是输入ÖüğşiÇ
它就会打印出来),但对于\jobname
“字符串”来说则不行:字符的类别代码在读取之前就已经设置好了。你有几个选择:
- 使用可以处理全部范围的 Unicode 引擎(XeTeX、LuaTeX),再加上设置了正确插槽的字体(基本上
\usepackage{fontspec}
) 告诉 TeX 重新扫描(重新分配类别代码)输入:由于
\jobname
工作方式的原因,这有点棘手。例如\begingroup \edef\x{\endgroup\noexpand\scantokens{\jobname}}\x