我想知道有多少个 LaTeX 字符(包括所有特殊数学符号)可以用 Unicode 表示。我现在可以说,LaTeX 优于 Unicode 的地方主要在于它能够绘制图表,而这仅靠 Unicode 是无法创建的,对吗?
另外,例如,如果我需要排版诸如“从 a 到 b 的积分”之类的带有下标和上标的内容,或者甚至“e 的 (x 的 y 次方)”的幂,那么我可以使用 Unicode 来做到这一点吗?或者我只需要 LaTeX 来生成较小的上标和下标?
另外,我可以在多大程度上将 LaTeX 与 Unicode 数学字符结合起来,如果我使用 LaTeX 符号来生成数学字符而不是使用 Unicode 字符来达到相同的目的,排版是否相同?
谢谢。
答案1
部分的、可能不令人满意的答案。
unicode 本身并不能完成所有的事情。例如,如果您想要一个从x=1
到的积分\infty
,unicode 有代码,但它本身无法定位下标/上标或极限。因此,至少需要某种标记和组合功能。
标记可以是 mathml 也可以是 latex,但这取决于准备文档的人。
至于“所有”乳胶字符/符号是否都包含在unicode中,为了stipub的利益而做出的努力(见http://www.ams.org/STIXstix 项目历史)试图让尽可能多的此类符号被 unicode 接受。如果某个 stipub 组织请求某个符号,则该符号将进入列表,并且 unicode 技术委员会大体上会将该请求视为可接受的文档级别。对于一些不在主要 stipub 列表中的极端情况(例如stmaryrd
集合或中的某些符号tipa
),需要额外的文档(以公认的技术出版商出版的文章或书籍的形式),如果没有,则不会采取任何行动。(如果有人可以为任何“缺失”符号提供合适的引文,则添加新符号的努力正在进行中。)
什么做过发生的事情是,unicode 技术委员会接受了这样的主张,即数学符号实际上是一种“语言”,因此,常用符号的编码方式应该与“次要”人类语言(无论是现存的还是已消亡的)的字母编码方式一样。这正是数学家和其他科学家在网络上进行交流所需要的。
我不知道是否存在完整的符号列表,包括它们的视觉表示和相关的 unicode(以及可能的“tex 名称”)。我希望可以将这些信息添加到“综合符号列表”(texdoc comprehensive
),但这是一项艰巨的任务(我愿意参与其中,但尚未就此联系作者)。作为 stix 项目成果的 stix 字体中的一些小问题仍有待解决,特别是私人使用区域中相当多的“unicode”的位置。
关于直接使用unicodes或“本机”符号与“tex名称”,是否能这样做取决于所使用的引擎。使用pdflatex可能无法实现,但只要有合适的字体,使用xelatex应该相对简单。
答案2
我编写的许多应用程序都与 LaTeX 有关。它们要么创建 LaTeX 输入的文件,要么解析 LaTeX 代码,因此我必须在 Unicode 和 LaTeX 命令之间建立一些映射。
流框架是一个图形应用程序,可以导出到.tex
(或.sty
或.cls
),并且在图形环境中输入的 Unicode 字符可以映射到 LaTeX 命令。如果您安装flowframtk
,运行应用程序然后退出,您应该找到一个包含应用程序设置的目录(~/.flowframtk/
在类 Unix 系统或flowframtk-settings
Windows 上)。此目录应包括(除其他文件外)文本模式(textmappings.prop
)和数学模式(mathmappings.prop
)映射。文件以制表符分隔,共有三列。第一列有 Unicode 代码点,第二列是最接近的 LaTeX 等效代码点,第三列是所需的软件包。文件太大,无法在此重现。(文本模式映射有 200 行,数学模式映射有 795 行。)
这文本解析器该库旨在解析 LaTeX 文件,但也包含从 LaTeX 到 Unicode 的映射,尽管这些包含在 Java 源代码中。