我正在写一本简单的数学书,但我对圆周率符号有疑问。我使用的字体没有圆周率符号,因此它看起来像这样:
我是这样写的:
\textbf{Perímetro:} $2\pi r$\\
\textbf{Área:} $r\pi^2$\\+
以下是我应用字体的方式:
\newfontfamily{\miletra}{MILETRA}[
NFSSFamily=MiLetra,
Path=./,
Extension=.ttf,
UprightFont=*,
BoldFont=*,
BoldFeatures={FakeBold=3},
]
\renewcommand{\familydefault}{MiLetra}
\DeclareSymbolFont{numbers}{TU}{MiLetra}{m}{n}
\SetSymbolFont{numbers}{bold}{TU}{MiLetra}{bx}{n}
\DeclareMathSymbol{0}\mathalpha{numbers}{"30}
\DeclareMathSymbol{1}\mathalpha{numbers}{"31}
\DeclareMathSymbol{2}\mathalpha{numbers}{"32}
\DeclareMathSymbol{3}\mathalpha{numbers}{"33}
\DeclareMathSymbol{4}\mathalpha{numbers}{"34}
\DeclareMathSymbol{5}\mathalpha{numbers}{"35}
\DeclareMathSymbol{6}\mathalpha{numbers}{"36}
\DeclareMathSymbol{7}\mathalpha{numbers}{"37}
\DeclareMathSymbol{8}\mathalpha{numbers}{"38}
\DeclareMathSymbol{9}\mathalpha{numbers}{"39}
\DeclareSymbolFont{operators}{TU}{MiLetra}{m}{n}
\DeclareSymbolFontAlphabet{\mathsf}{operators}
\DeclareSymbolFont{letters}{TU}{MiLetra}{m}{n}
\DeclareSymbolFontAlphabet{\mathsf}{letters}
如何在不改变字体的情况下让 LaTeX 使用其数学字体中的 π 符号?
提前致谢。
答案1
一个更合理的例子是
\documentclass{article}
\usepackage{fontspec}
\newfontfamily{\miletra}{Comic Sans MS}[
NFSSFamily=MiLetra,
UprightFont=*,
BoldFont=*,
BoldFeatures={FakeBold=3},
]
\DeclareSymbolFont{letters}{TU}{MiLetra}{m}{n}
\begin{document}
\textbf{Perímetro:} $2\pi r$
\textbf{Área:} $\pi r^2$
\end{document}
(我选择了一种不带希腊语的知名字体)
您可以使用经典的 tex 数学编码定义符号字体,然后重新定义\pi
以使用该字体(从fontmath.ltx
刚更改letters
为grletters
\documentclass{article}
\usepackage{fontspec}
\newfontfamily{\miletra}{Comic Sans MS}[
NFSSFamily=MiLetra,
UprightFont=*,
BoldFont=*,
BoldFeatures={FakeBold=3},
]
\DeclareSymbolFont{letters}{TU}{MiLetra}{m}{n}
\DeclareSymbolFont{grletters}{OML}{cmm} {m}{it}
\DeclareMathSymbol{\pi}{\mathord}{grletters}{"19}
\begin{document}
\textbf{Perímetro:} $2\pi r$
\textbf{Área:} $\pi r^2$
\end{document}
答案2
如果你可以使用\newfontfamily
,那么你也可以使用unicode-math
,例如:
\usepackage[math-style=upright]{unicode-math}
\defaultfontfeatures{Scale=MatchLowercase, Ligatures=TeX}
\setmainfont{Miletra}[Scale=1.0]
\setmathfont{Fira Math} % Or your math font of choice
\setmathfont{Miletra}[range=up/{Latin,latin,digits}]
虽然我没有你的字体来测试,但对于除拉丁字母和数字之外的所有符号,这都会恢复为 Fira Math 字体。