包 inputenc 错误:Unicode 字符未设置为用于 LaTeX

包 inputenc 错误:Unicode 字符未设置为用于 LaTeX

我正在用代码生成带有 Unicode 字符的乳胶表达式,但它们没有显示在公式中。我正在使用 LaTeXiT 获取\usepackage[utf8]{inputenc}标题中的方程式并xelatex对其进行编译。我的乳胶表达式的通用形式如下:{g^{{i_1}{j_1}}_{{⍺_1}{β_1}}}。输出中没有显示任何 Unicode 字符。

我尝试在文档中表达它,但是没有作用。

非常感谢您的意见。谢谢!

答案1

切勿inputenc与 xetex 一起使用,它的处理会扰乱 unicode TeX 的输入,但是它可以检测 xetex 和 luatex 并仅发出警告而不执行任何操作(因此如果使用 xelatex,则不会在标题中收到警告)

默认情况下,xetex 使用经典的 8 位数学字体

所以

\documentclass{article}

 \usepackage[utf8]{inputenc}

\begin{document}

$α$

\end{document}

不是对标题发出警告(使用 pdftex 你会得到这个警告)但是我会假设,因为你说你正在使用 xelatex,所以这就是你想要的。

日志文件还会显示警告

Missing character: There is no α in font cmmi10!

如果您想继续使用经典数学字体,那么最简单的方法是使用$\alpha$ alpha 的标准标记,或者您可以使用 egreg 的 newunicodechar包使 α 处于活动状态并扩展为\alpha(但您不能在命令名称中使用它)

所以

\documentclass{article}

\usepackage{newunicodechar}

\newunicodechar{α}{\TextOrMath{\char`\α}{\alpha}}

\begin{document}

$α$ α

\end{document}

然后数学就可以了,但是拉丁现代语中没有希腊语文本,所以你会收到警告

缺少字符:字体 [lmroman10-regular]:mapping=tex-text; 中没有 α!

除非你通过选择合适的字体fontspec

或者您可以使用 Uniocde 数学字体,然后unicode-math直接设置 α,而不使其处于活动状态。

在此处输入图片描述

\documentclass{article}

\usepackage{unicode-math}
\setmainfont{TeX Gyre Termes}
\setmathfont{TeX Gyre Termes Math}


\begin{document}

$α$ α

\end{document}

相关内容