编译下面这段 LaTeX 代码时,∖ 符号不会显示出来。
\documentclass{article}
\usepackage{unicode-math}
\setmainfont{Latin Modern Roman}
\setmathfont{Latin Modern Math}
\begin{document}
This will not show: $\setminus$ \\
This will show: $\smallsetminus$
\end{document}
我知道为什么会发生这种情况:\setminus
转换为unicode字符0x29F5
,并且该字符不是拉丁现代数学的一部分。我想做的是改用Unicode字符\smallsetminus
,0x2216
。所以我真正寻找的是一种将命令重新映射\smallsetminus
到另一个Unicode值而不是unicode-math包定义的Unicode值的方法。我知道获取值的一种可能方法\setminus
是使用另一种具有Unicode字符的数学字体0x29F5
。添加行
\setmathfont[range={"29F5}]{XITS Math}
给了我一个 ∖ 符号,但我不想对这个字符使用其他字体。
答案1
以下\setminus
相当于\smallsetminus
:
\documentclass{article}
\usepackage{unicode-math}
\setmathfont{Latin Modern Math}
\AtBeginDocument{\let\setminus\smallsetminus}
\begin{document}
\[ A \setminus B \qquad A \smallsetminus B \]
\end{document}
是\AtBeginDocument
必需的,因为unicode-math
仅在 处定义其命令。因此序言中的\begin{document}
simple将被覆盖。或者,您可以将其放在之后,但这是一种不太“干净”的解决方案,因为它违反了内容和样式的分离。\let\setminus\smallsetminus
\let\setminus\smallsetminus
\begin{document}
如果你想使用完全不同的符号,你可以这样做
\AtBeginDocument{\def\setminus{-}}
反而。