定义 spec 符号字形的 Unicode

定义 spec 符号字形的 Unicode

假设我有:

\documentclass{article}
\begin{document}
$1 \cdot{1}$
\end{document}

我想知道 cdot 特殊符号的字形 Unicode。我按照这样的方式。

我已经latex在我的 *nix 系统上运行了命令并执行了这样的命令

\show\cdot

之后我明白了

\cdot=\mathchar"2201.

但对于 CENTERED DOT 字符来说,这是错误的 Unicode。

如何确定从 2201 到 Unicode 的映射规则?

答案1

你猜对了,这"2201是一个十六进制表示的数字,但这个数字与 Unicode 无关(Unicode 诞生于 Knuth 发明数学码几年后)。

这四位十六进制数字告诉 TeX 这\cdot是一个操作符号(第一位数字2),它必须从数学系列 2 的字体中取出(第二位数字),选择插槽处的字形"01

TeX 最多可以识别 16 个数学家族,每个家族可以定义三种字体,分别为正常大小、第一级下标和上标以及第二级下(上)标。

0 系列字体包含直立字母,1 系列字体包含数学斜体字母;2 系列字体包含最常见的数学符号;最后,3 系列字体包含“大”符号,例如可扩展括号。

如果要排版数学公式,这四个系列是必需的,因为 TeX 依靠这些字体的参数来完成工作。其他系列可以由 LaTeX 内核(例如 等)或其他软件包定义\mathbf\mathsf例如斯特玛丽德)。

数学代码和 Unicode 之间有任何联系。

XeTeX 和 LuaTeX 引擎定义了用于处理 Unicode 数学字体的新原语,但那是另一个故事。

TeX 字体最多包含 256 个字形,标准数学字体只有 128 个。它们的表格在 TeXbook 或 TeX by Topic 中列出(在 TeX Live 上,可以使用texdoc texbytopic)。您可以通过排版以下文档来自己制作字体表:

\documentclass{article}
\usepackage[a4paper,margin=3cm]{geometry}
\usepackage{fonttable}
\setcounter{secnumdepth}{0}
\pagestyle{empty}
\begin{document}

\section{Family 0}
\xfonttable{OT1}{cmr}{m}{n}
\newpage

\section{Family 1}
\xfonttable{OML}{cmr}{m}{n}
\newpage

\section{Family 2}
\xfonttable{OMS}{cmr}{m}{n}
\newpage

\section{Family 3}
\xfonttable{OMX}{cmex}{m}{n}

\end{document}

答案2

在数学模式下生成的 Unicode 代码\cdot是 U+022C5。顺便说一句,可以在以下文件中在线找到数千个数学符号的 Unicode 代码的精彩列表unimath-符号.pdf

附录 2011 年 9 月 26 日:unicode 字形 U+00b7 可以用命令 $\cdotp$ 呈现。以下 MWE 使用类似 Times-Roman 的 XITS Math 字体,显示 $\cdot$(unicode U+22C5)和 $\cdotp$ 的输出位于同一水平线上。我能检测到的唯一区别(并且仅在高放大倍数下)是 产生的点的直径\cdotp略小于 产生的点的直径\cdot;这是有道理的,因为\cdotp它用于构建更常用的命令\cdots(三个连续的中心点)——unicode char U+22EF。

% !TEX TS-program = xelatex
\documentclass{article}
\usepackage{unicode-math}  
\setmathfont{XITS Math}
\begin{document}
$\cdot \cdotp \cdot$ 
\end{document}

相关内容