U+2234 未设置为与 LaTeX 一起使用

U+2234 未设置为与 LaTeX 一起使用

我正在使用 Doxygen 来记录我的 C 代码项目。我的 C 源文件使用 UTF-8 编码保存。在一些文件中,我有数学符号,例如以下行:

∴ ∀ FOO ∈ ℕ ≤ BAR

这些符号是从 fileformat.info 网站复制粘贴的,因此肯定是正确的 UTF-8 字符。我的 doxygen 构建使用一个配置文件(以 UTF-8 编码),该文件告诉它生成 UTF-8 编码的 latex 输出。它还指示它添加amsmathamssymb

Doxygen 构建运行时没有错误或警告

然而,当我尝试构建乳胶时,却失败了,因为:

(“C:\Program Files\MiKTeX 2.9\tex\latex\amsfonts\umsb.fd”)[1{C:/Users/Toby/App Data/Local/MiKTeX/2.9/pdftex/config/pdftex.map}] [2] [1] [2] 第 1 章。(group__pmb.tex

! 包 inputenc 错误:Unicode 字符 Ôê┤ (U+2234) (inputenc) 未设置为用于 LaTeX。

请参阅 inputenc 包文档以了解解释。输入 H 可立即获得帮助。...

l.12 ...+E+L+O+W+E+R+B+I+TS))\mbox{]} Ôê┤ ÔêÇ A+D+D+R+_++N+...

它似乎在遇到的第一个符号(∴)上出错。

我不是 TeX 爱好者,我只想很好地记录我的 C 程序(该程序在我的上一台 PC 上运行良好,当然运行所有相关软件的旧版本)。我还能做些什么来让它理解符号字符?

我正在使用最新版本的 MiKTeX(64 位)和 ghostscript(32 位)

答案1

你应该添加

\DeclareUnicodeCharacter{2234}{\therefore}

到您的文档序言。我不知道如何为 Doxygen 执行此操作。您还需要\usepackage{amssymb}

您可以使用类似以下方法自动实现 Unicode 点与命令名称之间的对应关系

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath,amssymb}

\makeatletter
\newcommand\UnicodeMathSymbol[4]{%
  \ifnum#1>"FF
    \expandafter\DeclareUnicodeCharacter\expandafter{\@gobble#1}{#2}%
  \fi
}
\makeatother
\input{unicode-math-table}

\begin{document}

$∴$

\end{document}

基于提供的命令名称unicode-math-table与名称相同的假设amssymb

相关内容