文件名未准确显示

文件名未准确显示

平均能量损失

\documentclass[a4paper,11pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{currfile}

\begin{document}

%File Name: ÖüğşiÇ.tex

\jobname

\currfilename

\end{document}

并输出:

在此处输入图片描述

图像下方可以实现吗?

在此处输入图片描述

答案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
    

相关内容