\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{fontspec}
\setmainfont{Source Sans Pro}[
UprightFont =Source Sans Pro-Light,
BoldFont =Source Sans Pro-Semibold,
ItalicFont =Source Sans Pro-Light Italic,
BoldItalicFont =Source Sans Pro-Semibold Italic]
\begin{document}
Maths Formula: $F=ma$
I cannot get upright serif when I use "mathrm" command: $\mathrm{F=ma}$
\end{document}
我使用 fontspec 包更改了字体。当我在数学模式下输入时,我希望字体是直立衬线字体。但是,数学模式下的字体是衬线字体,但在添加 \mathrm 后变成了我设置的字体。如何在数学模式下获得直立衬线字体?
答案1
(备注:在原帖作者阐明了他的/她的目标后,我对这个答案进行了重大更新。)
我建议您 (a) 加载包并 (b)在运行时unicode-math
指定选项。您没有指定math-style=upright
\setmathfont
哪个您希望使用的 serif 数学字体系列;我假设它是Latin Modern Math
。
另外:由于您正在加载fontspec
包,因此您不应该使用inputenc
选项加载包utf8
。
不要使用\mathrm
,因为这会给你使用文本字体——您已将其定义为无衬线字体。
\documentclass[a4paper]{article}
%\usepackage[utf8]{inputenc} % don't load this package!
\usepackage{amsmath,amssymb}
\usepackage{unicode-math} % <-- new
\setmainfont{Source Sans Pro}[
UprightFont = *-Light,
ItalicFont = *-Light Italic,
BoldFont = *-Semibold,
BoldItalicFont = *-Semibold Italic]
\setmathfont{Latin Modern Math}[math-style=upright] % <-- new
\begin{document}
Maths Formula: $F=ma$
\end{document}
答案2
最后的结果让我哭泣。
\documentclass[10pt,a4paper]{article}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{fontspec}
\usepackage{mathastext}
\setmainfont{Source Sans Pro}[
UprightFont = *-Light,
BoldFont = *-Semibold,
ItalicFont = *-Light Italic,
BoldItalicFont = *-Semibold Italic
]
\begin{document}
Maths Formula: $\mathbf{F}=m\mathbf{a}$
\[
\sum_{k=0}^n k^2 = n\Bigl(n+\frac{1}{2}\Bigr)(n+1)
\quad\text{for every $n$}
\]
\end{document}
答案3
这原本是对@egreg 的评论回答。但现在我添加了一些额外的内容。我正在使用的Source Serif Pro
显然没有斜体变体。
尤其使用时应fontspec
加载选项。no-math
mathastext
此外,我不太明白楼主是否想全部数学中的字母是直立的,或者仅适用于\mathrm
等等。产生衬线字母。
我有点期待 OP 想要斜体字母,除了使用时,\mathrm
但好吧,我们开始吧。无论如何,TeXLive 中的 Source Serif Pro 似乎没有斜体变体,所以这无论如何都结束了关于字母在数学中应该是斜体还是直立的讨论:
\documentclass[10pt,a4paper]{article}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage[no-math]{fontspec}
\setmainfont{Source Serif Pro}[
UprightFont = *-Light,
BoldFont = *-Semibold,
]
\usepackage[defaultmathsizes, basic]{mathastext}
\setmainfont{Source Sans Pro}[
UprightFont = *-Light,
BoldFont = *-Semibold,
ItalicFont = *-Light Italic,
BoldItalicFont = *-Semibold Italic
]
\begin{document}
Physics Formula: $\mathbf{F}=m\mathbf{a}$.
Wrong Maths Formula:
\[
\sum_{k=0}^n k^2 = n\Bigl(n+\frac{1}{2}\Bigr)(n+1)
\quad\text{for every $n$}
\]
\end{document}
(以上是错误的数学公式,见下文)。
顺便说一句,我喜欢在文本中使用衬线字体,而在数学中使用无衬线字体。这可以通过以下方式实现:
\documentclass[10pt,a4paper]{article}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage[no-math]{fontspec}
\setmainfont{Source Serif Pro}[
UprightFont = *-Light,
BoldFont = *-Semibold,
]
\setsansfont{Source Sans Pro}[
UprightFont = *-Light,
BoldFont = *-Semibold,
ItalicFont = *-Light Italic,
BoldItalicFont = *-Semibold Italic
]
\renewcommand\familydefault{\sfdefault}
\usepackage[defaultmathsizes, basic]{mathastext}
\renewcommand\familydefault{\rmdefault}
\begin{document}
Maths Formula: $\mathbf{F}=m\mathbf{a}$
\[
\sum_{k=0}^n k^2 = \frac{n\Bigl(n+\frac{1}{2}\Bigr)(n+1)}3
\quad\text{for every $n$}
\]
\end{document}
% Local Variables:
% TeX-engine: xetex
% End: