是否可以使用unicode-math
来伪造无衬线希腊数学字母?我将\symsfit{x}(f)
其用于 的傅里叶变换x(t)
。我希望它也能用于希腊函数变量。例如,我可以使用一种标准字体,并将希腊无衬线字母(例如\symsfit{\phi}
)设置为不同的字体,以便可以将其与其变换区分开来\phi
?
答案1
答案2
这是一个老问题,但值得回答。
获取无衬线中等粗细希腊字母的一种方法是加载希腊字体作为数学字体,然后选择该字体。除非字体有数学字母数字符号,否则必须使用直立字符才能正常工作:
\tracinglostchars=2
\documentclass{article}
\usepackage{unicode-math}
\pagestyle{empty} % Remove the page number from the MWE.
\defaultfontfeatures{ Scale = MatchLowercase, Ligatures = TeX }
\setmainfont{CMU Serif}[Scale=1.0]
\setmathfont{Latin Modern Math}
%% Available from:
%% https://www.greekfontsociety-gfs.gr/typefaces/20th_21st_century
\setmathfontface\greeksfup{GFS Orpheus Sans}
\begin{document}
\[ \greeksfup{\mupGamma}( \greeksfup{\mupvarphi}, \greeksfup{\muptheta} ) =
\greeksfup{\mupbeta} \]
\end{document}
请注意,您可以加载斜体字体;但是,您必须使用 Unicode 基本多语言平面代码点。您可以声明 等\msfalpha
,然后键入这些代码点。
另一种方法是加载无衬线字体作为数学版本。在这里,我定义\sansmath
和\sanssymbol
命令类似于\boldmath
和\boldsymbol
:
\tracinglostchars=2
\documentclass{article}
\usepackage[math-style=ISO]{unicode-math}
\pagestyle{empty} % Remove the page number from the MWE.
\defaultfontfeatures{ Scale = MatchLowercase, Ligatures = TeX }
\setmainfont{CMU Serif}[Scale=1.0]
\setmathfont{Latin Modern Math}
\setmathfont[version=sans]{Fira Math}
\makeatletter
\newcommand\sansmath{\mathversion{sans}}
%% Based on the definition of \boldsymbol from amsbsy.sty"
\DeclareRobustCommand{\sanssymbol}[1]{%
\begingroup%
\let\@nomath\@gobble \mathversion{sans}%
\math@atom{#1}{%
\mathchoice%
{\hbox{$\m@th\displaystyle#1$}}%
{\hbox{$\m@th\textstyle#1$}}%
{\hbox{$\m@th\scriptstyle#1$}}%
{\hbox{$\m@th\scriptscriptstyle#1$}}}%
\endgroup}
\makeatother
\begin{document}
\[ \sanssymbol{\Gamma}( \sanssymbol{\varphi}, \sanssymbol{\theta} ) =
\sanssymbol{\beta} \]
\end{document}