我有以下代码。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[scaled]{helvet}
\renewcommand*\familydefault{\sfdefault}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{mathastext}
\begin{document}
\begin{equation*}
\overrightarrow{\mathit{r}}=\mathit{r}\cos \mathit{\varphi}\widehat{\mathrm{\imath}}+\mathit{r}\sin \mathit{\varphi} \widehat{\mathrm{\jmath}}
\end{equation*}
\end{document}
为什么我得到的是一个黑色矩形而不是一个 aj 单位向量?
答案1
\imath
和符号\jmath
并非来自helvet
设置为 TeX Gyre Heros 的文本字体。除非您更改它,否则它们来自 7 位 OML 字体。在本例中,您尝试使用 进行更改mathastext
。
你可能想要明确加载tgheros
,其中确实包含 ĵ 和 ȷ 字形,而不是helvet
。
因此,您的选择包括:
- 使用无衬线数学字体加载
unicode-math
。截至 2020 年,这意味着 Fira Math。 - 加载无衬线数学包,例如
sansmathfonts
、arev
或newtxsf
。 - 在数学模式下使用文本模式符号。将符号定义
\varj
为类似于\textnormal{\sffamily\itshape\selectfont \j}
和\varjhat
的内容\textnormal{\sffamily\itshape\selectfont ĵ}
。 - 与上述相同,但加载
fontspec
并使用ĵ来自 Unicode 字体。
答案2
helvet 没有字形,因此您得到了.notdef
字形的符号。
您可以停用 mathastext 尝试重新定义它的功能。并且不要到处写 \mathit,而是使用 mathastext 的斜体选项。
请注意,helvet 不是数学字体。它缺少字符和一些数学符号,在我看来,结果看起来相当糟糕。您可以使用选项 eulergreek 改进希腊文(但希腊文将直立),但箭头和重音符号仍然看起来太细。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[scaled]{helvet}
\renewcommand*\familydefault{\sfdefault}
%\usepackage[utf8]{inputenc} %unneeded in current tex systems
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage[italic,defaultimath]{mathastext}
\begin{document}
\begin{equation*}
\overrightarrow{r}=r\cos \varphi\widehat{\mathrm{\inodot}}+r\sin \varphi \widehat{\jmath}
\end{equation*}
\end{document}