默认情况下,开冒号“⦂”是unicode-math中的关系符号。如何排版“⦂”直接地在 { xe
| lua
}中latex
用作\Umathchar
普通符号,即无空格符号?
到目前为止我一直在写\mathord{⦂}
:
\newcommand{\unspacedOpenColon}{\mathord{⦂}}
或者
\newcommand{\unspacedOpenColon}{{⦂}}
但是,这两个命令都是先取一个空格符号,然后从中删除空格。有没有更直接的形式定义
\newcommand{\unspacedOpenColon}{\Umathchar"…"…"02982 }
? 我不知道数学类型和家庭论点该放些什么。
下面是一些可供参考的代码:
\documentclass{article}
\pagestyle{empty}
\usepackage[math-style=ISO]{unicode-math}
\setmathfont[Ligatures=TeX]{TeX Gyre Termes Math}
\setmathfont[Ligatures=TeX,Extension=.otf,range={"2982},BoldFont=XITSMath-Bold]{XITSMath-Regular}
\newcommand{\unspacedOpenColon}{{⦂}}
\begin{document}
\(a⦂b\ c\unspacedOpenColon d\)
\end{document}
答案1
与下面四种定义本质上没有区别:
\newcommand{\testA}{\mathord⦂}
\newcommand{\testB}{\mathord{⦂}}
\newcommand{\testC}{{⦂}}
\Umathchardef\testD="0 "2 `⦂
也可以这样做
\newcommand{\testD}{\Umathchar"0 "2 `⦂ }
对于第四个,但效率较低。实际上有一些微不足道不同之处:在情况 2 和 3 中,TeX 创建了一个子公式,但随后意识到它包含一个符号,因此将子公式提升到上层。
当然,数字 4 是最有效的,但缺点是你需要猜测数学组,"2
如果加载了更多数学字体,可能就无需猜测了。
当 TeX 发现已声明或已支撑的内容\mathord
(情况 1、2 和 3)时,它不会在其周围添加空格。
如果您认为它首先插入空格然后删除它们,那您就错了。
插入(或不插入)空格的阶段比制作数学列表要深远。当 TeX 检查数学公式以制作数学列表时,它会用其类型(例如关系或普通)标记其中的每个原子。然后,当数学列表转换为水平列表(框和胶水)时,它会传递到下一个阶段:在此阶段,根据有关连续原子类型的规则将空格插入到适当的位置。由于\mathord⦂
已经产生了奥德原子,其周围不插入空格,除非其前面或后面有其他原子,例如相对或者操作,按照规则。⦂
本身是关系符号的事实在此阶段不起作用。