我正在使用 Doxygen 来记录我的 C 代码项目。我的 C 源文件使用 UTF-8 编码保存。在一些文件中,我有数学符号,例如以下行:
∴ ∀ FOO ∈ ℕ ≤ BAR
这些符号是从 fileformat.info 网站复制粘贴的,因此肯定是正确的 UTF-8 字符。我的 doxygen 构建使用一个配置文件(以 UTF-8 编码),该文件告诉它生成 UTF-8 编码的 latex 输出。它还指示它添加amsmath
和amssymb
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
。