![由 $-6$ 创建的减号字体(数学模式下的连字符)](https://linux22.com/image/472036/%E7%94%B1%20%24-6%24%20%E5%88%9B%E5%BB%BA%E7%9A%84%E5%87%8F%E5%8F%B7%E5%AD%97%E4%BD%93%EF%BC%88%E6%95%B0%E5%AD%A6%E6%A8%A1%E5%BC%8F%E4%B8%8B%E7%9A%84%E8%BF%9E%E5%AD%97%E7%AC%A6%EF%BC%89.png)
我想为所有减号指定字体(在下面的例子中为:Times New Roman),无论它们是用 Unicode 字符“2212 创建的还是用数学模式中的连字符创建的。
如果我将“2212”添加到的范围选项中\setmathfont
,则当我使用正确的Unicode字符“减号”编写文本时,它就会起作用。请参见我的示例中的前两个6。
但是当我写 $-6$(这里 - 是一个普通的连字符)时,输出是正确的减号,但不是 Times New Roman。请参见我示例中的最后一个 6。
\documentclass{article}
\RequirePackage[silent]{fontspec}
\setmainfont{Times New Roman}
\RequirePackage{unicode-math}
\setmathfont{STIXTwoMath}[]
\setmathfont{Times New Roman}[ range = { up/{num,latin,Latin}, "2212 } ]
\begin{document}
%% Minus ("2212) in source code:
−6 and $−6$
%% Hyphen ("002D) in source code:
-6 and $-6$
\end{document}
输出:
有谁知道如何才能“访问” $ 环境中的连字符?
答案1
我不确定为什么会这样,但是如果您说range = { "2212, \minus }
,它就有效,但您确实需要说明"2212
和\minus
:
\documentclass{article}
\RequirePackage[silent]{fontspec}
\setmainfont{Times New Roman}
\RequirePackage{unicode-math}
\setmathfont{STIX Two Math}
\setmathfont{Times New Roman}[
range = { "2212, \minus }
]
\begin{document}
%% Minus ("2212) in source code:
−6 and $−6$
%% Hyphen ("002D) in source code:
-6 and $-6$
\end{document}
因此,您可能需要执行类似这样的操作来为加号和减号选择相同的字体:
\documentclass{article}
\RequirePackage[silent]{fontspec}
\setmainfont{Times New Roman}
\RequirePackage{unicode-math}
\setmathfont{STIX Two Math}
\setmathfont{Times New Roman}[
range = { "2212, \minus, "002B }
]
\begin{document}
-6 and $-6$
+6 and $+6$
\end{document}
答案2
我建议你写\textnormal{-}
。
\documentclass{article}
\RequirePackage{unicode-math}
\setmainfont{Times New Roman}
\setmathfont{STIXTwoMath}[]
\setmathfont{Times New Roman}[ range = { up/{num,latin,Latin}, "2212 } ]
\begin{document}
%% Minus ("2212) in source code:
−6 and $−6$
%% Hyphen ("002D) in source code:
-6 and $\textnormal{-}6$
\end{document}