我试图在TextMate中输入一些UTF-8字符到LaTeX文件(它说它的默认编码是UTF-8),但LaTeX似乎不理解它们。

运行cat my_file.tex可以在Terminal中正确显示字符。运行ls -al会显示一些我以前从未见过的东西:文件列表旁边的“@”:

-rw-r--r--@  1 me      users      2021 Feb 11 18:05 my_file.tex

(并且,是的,我在LaTeX中使用\usepackage[utf8]{inputenc}。)

我找到了iconv,但这似乎不能告诉我编码是什么-它只会转换一旦我弄清楚。


当前回答

在Mac OS X中,命令文件-I(大写i)将为您提供适当的字符集,只要您正在测试的文件包含基本ASCII范围之外的字符。

例如,如果你进入终端,使用vi来创建一个文件。vi用法 然后插入一些字符,包括一个重音字符(尝试ALT-e后面跟着e) 然后保存文件。

他们输入file -I text.txt,你应该得到这样的结果:

用法:文本/平原;utf - 8字符集=

其他回答

经典的8位LaTeX只能使用UTF8字符;它高度依赖于您所使用的字体的编码以及该字体具有哪些可用的字形。

由于您没有给出具体的示例,因此很难确切地知道问题在哪里——您是否试图使用字体没有的字形,或者您是否首先就没有使用正确的字体编码。

下面是一个演示如何在LaTeX文档中使用几个UTF8字符的最小示例:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[utf8]{inputenc}
\begin{document}
‘Héllø—thêrè.’
\end{document}

使用[utf8x]编码可能会更幸运,但要稍微警告一下,与[utf8]相比,它不再受支持,并且具有一些特性(据我回忆;我已经有一段时间没有看它了)。但如果成功了,那对你来说就够了。

您可以尝试将文件加载到firefox窗口中,然后转到“查看-字符编码”。在文件的编码类型旁边应该有一个复选标记。

@表示该文件具有与之相关的扩展文件属性。您可以使用getxattr()函数查询它们。

没有确定的方法来检测文件的编码。阅读这个答案,它解释了为什么。

有一个命令行工具enca,它尝试猜测编码。你可能会想去看看。

在终端中输入文件myfile.tex有时可以使用一系列算法和神奇数字告诉您文件的编码和类型。它相当有用,但不要依赖它提供具体或可靠的信息。

可以定位的。字符串文件(在本地化的Mac OS X应用程序中找到)通常报告为utf - 16c源文件。

@符号表示文件具有扩展属性。xattr文件显示了它拥有的属性,xattr -l文件也显示了属性值(有时可能很大-尝试例如xattr /System/Library/Fonts/HelveLTMM来查看存在于资源分叉中的旧式字体)。