![包 inputenc 错误:Unicode 字符未设置为用于 LaTeX](https://linux22.com/image/404954/%E5%8C%85%20inputenc%20%E9%94%99%E8%AF%AF%EF%BC%9AUnicode%20%E5%AD%97%E7%AC%A6%E6%9C%AA%E8%AE%BE%E7%BD%AE%E4%B8%BA%E7%94%A8%E4%BA%8E%20LaTeX.png)
我正在用代码生成带有 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}