![awesome-cv 中的数学字体](https://linux22.com/image/384732/awesome-cv%20%E4%B8%AD%E7%9A%84%E6%95%B0%E5%AD%A6%E5%AD%97%E4%BD%93.png)
我正在使用awesome-cv
类文件(来自这里) 来写语句,但我对数学字体不满意。具体来说,我不喜欢使用 的结果\mathbb
。此外,数学运算符(甚至是预定义的运算符,如\log
)都是斜体,而我希望它们像 一样\mathrm
(如下所示)。
我尝试在字体目录中安装不同的字体(Palatino),但这根本不影响数学字体。
我甚至愿意使用例如来完全改变字体,\usepackage{mathpazo}
但它似乎没有改变任何东西,可能是因为awesome-cv.cls
文件中的规范。
该awesome-cv.cls
文件包含行\RequirePackage[math-style=TeX,vargreek-shape=unicode]{unicode-math}
,事实证明,使用此包配置数学字体是我遇到的大部分问题。一些有用的帖子:
加载 unicode-math 后更改运算符字体,Unicode-math 更改超出范围的字体,unicode-math 丢失符号
最后更新感谢 Davislor 的评论。
梅威瑟:
% Important note:
% This template must be compiled with XeLaTeX, the below lines will ensure this
%!TEX TS-program = xelatex
%!TEX encoding = UTF-8 Unicode
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%----------------------------------------------------------------------------------------
% PACKAGES AND OTHER DOCUMENT CONFIGURATIONS
%----------------------------------------------------------------------------------------
\documentclass[letterpaper]{awesome-cv}
\geometry{left=2cm, top=1.5cm, right=2cm, bottom=2cm, footskip=.5cm}
\fontdir[fonts/]
% math packages
%\usepackage{amssymb} % throws errors/conflicts
\usepackage{amsfonts}
\usepackage{amsmath}
% math commands
% new commands
\renewcommand{\C}{\mathbb C}
\newcommand{\R}{\mathbb R}
\newcommand{\Q}{\mathbb Q}
\newcommand{\Z}{\mathbb Z}
% new operators
\DeclareMathOperator{\Gal}{Gal}
\setmathfont[Path=fonts/STIXv2.0.0/OTF/]{STIX2Math.otf}
%\setmathfont[Path=fonts/,range=\sqrt]{SourceSansPro-Regular.otf}
\setmathfont[range=\mathnormal,Path=fonts/]{SourceSansPro-It.otf}
\ExplSyntaxOn
\makeatletter
\renewcommand{\operator@font}{\um_switchto_mathsf:}
\makeatother
\ExplSyntaxOff
%\setmainfont[Path=fonts/]{SourceSansPro-Regular.otf}
%\setmathfont[Path=fonts/]{SourceSansPro-It.otf}
\begin{document}
%----------------------------------------------------------------------------------------
% LETTER CONTENT
%----------------------------------------------------------------------------------------
\begin{cvletter}
%------------------------------------------------
$$
\log(N) \qquad \mathrm{log}(N)
$$
$$
\C \quad \R \quad \Q \quad \Z
$$
$$
\Gal(K/\Q) \quad \mathrm{Gal}(K/\Q)
$$
$$
\varphi: X \to Y
$$
\end{cvletter}
\end{document}
谢谢你的帮助!
答案1
将我的评论转化为答案:你应该认真考虑是否要在非标准简历类中撰写论文。但是,如果你真的想,这就是我要做的事情。
请注意,我需要对您的.cls
文件进行一些更改才能使其在 TeX Live 2018 中进行编译。我必须将 更改为 ,以适应\newfontfamily
之前\setfontfamily
在其加载的包中定义的系列。( 的最新版本fontspec
进行了此兼容性破坏更改。)我还让它使用我系统上安装的较新版本的字体。该sourcesanspro
包还需要[sfdefault]
。完成后,运算符名称的问题在于类文件unicode-math
在您加载 之前加载amsmath
。添加\RequirePackage{amsmath}
之前\documentclass
启用了一些 hackish 解决方法。
%----------------------------------------------------------------------------------------
% PACKAGES AND OTHER DOCUMENT CONFIGURATIONS
%----------------------------------------------------------------------------------------
\RequirePackage{amsmath}
\documentclass[letterpaper]{awesome-cv}
\geometry{left=2cm, top=1.5cm, right=2cm, bottom=2cm, footskip=.5cm}
%% Math Font setup
\defaultfontfeatures{Scale=MatchLowercase}
\unimathsetup{partial=upright} % Source Sans Pro contains \partial at U+2202.
% If you should actually need \mitpartial, \mbfpartial, etc., load them from a
% math font. If you want an italic \partial, load from SourceSansPro-It.
\setmathfont{STIX2Math.otf}
% Sets math symbols present in Source Sans Pro and that work. You still might
% not, e.g. want ≥ and ≤ from the text font if ≰ does not match them.
\setmathfont[range={up,"21,"23-"25,"2A-"2F,"5C,"5E-"5F,"7E,
`¬,`±,`·,`×,`÷,`≤,`≥,`≠,`≈,`∞,`√}
]{SourceSansPro-Regular.otf}
% Must load separately, or this will prevent autodetection of the upright math
% alphabet:
\setmathfont[range=\partial]{SourceSansPro-Regular.otf}
\setmathfont[range={it}]{SourceSansPro-RegularIt.otf}
\setmathfont[range={bfup}]{SourceSansPro-Bold.otf}
\setmathfont[range={bfit}]{SourceSansPro-BoldIt.otf}
% Greek variant letters Missing from Source Sans Pro:
\setmathfont[range={\mupvarepsilon,\mupvarphi,\mupvartheta,\mupvarpi,
\mupvarkappa,\mupvarrho,\mupvarTheta,\nabla,
\mitvarepsilon,\mitvarphi,\mitvartheta,\mitvarpi,
\mitvarkappa,\mitvarrho,\mitvarTheta,\mitnabla,
\mbfvarepsilon,\mbfvarphi,\mbfvartheta,\mbfvarpi,
\mbfvarkappa,\mbfvarrho,\mbfvarTheta,\mbfnabla,
\mbfitvarepsilon,\mbfitvarphi,\mbfitvartheta,
\mbfitvarpi,\mbfitvarkappa,\mbfitvarrho,
\mbfitvarTheta,\mbfitnabla }
]{GFSNeohellenicMath.otf}
% By default, \mathscr is the same as \mathcal, but several math fonts provde
% two separate alphabets as variants.
\setmathfont[range={scr,bfscr},
Scale=MatchUppercase,
StylisticSet=1
]{STIX2Math.otf}
% Workaround for \operatorname and \mathrm:
\setmathrm{SourceSansPro}[
UprightFont = *-Regular ,
BoldFont = *-Bold ,
Ligatures = {Common, TeX },
Extension = .otf ]
\setoperatorfont\mathup
% math commands
% new commands
\renewcommand{\C}{\mathbb C}
\newcommand{\R}{\mathbb R}
\newcommand{\Q}{\mathbb Q}
\newcommand{\Z}{\mathbb Z}
% new operators
\DeclareMathOperator{\Gal}{Gal}
\begin{document}
%----------------------------------------------------------------------------------------
% LETTER CONTENT
%----------------------------------------------------------------------------------------
\begin{cvletter}
%------------------------------------------------
\[
\log(N) \qquad \mathrm{log}(N)
\]
\[
\C \quad \R \quad \Q \quad \Z
\]
\[
\Gal(K/\Q) \quad \mathrm{Gal}(K/\Q)
\]
\[
\varphi: X \to Y
\]
\[
\symup{i} \symup{e} \symup{\pi} \cdot
\Biggl\{ \Biggl[ \Biggl( \biggl\{ \biggl[ \biggl( \Bigl\{ \Bigl[ \Bigl(
\nabla \frac{\partial \vartheta}{\partial t}
\Bigr) \Bigr] \Bigr\} \biggr) \biggr] \biggr\} \Biggr) \Biggr] \Biggr\}
\]
\end{cvletter}
\end{document}
预计到达时间:回去后又做了一些调整。现在调整分隔符的大小并\nabla
工作。
该图像是几种不同字体的不寻常的混搭。我从 Source Sans Pro 加载了可以正常工作的数学符号,然后从 GFS Neohellenic 中取出了不存在的变体希腊字母,然后回退到 STIX Two Math 来处理剩余的符号。 (您可能希望直立的数学符号与正文不同。)
您不应使用 加载或amsfonts
,因为它们使用旧字体编码,并且有 OpenType 替代品。您还应该使用中的命令,而不是尝试重新定义。amssymb
unicode-math
\setoperatorfont
unicode-math
operator@font
我至少留下了一个限制,而不是让字体选择变得更加复杂。[range={\partial,\mitpartial,\mbfpartial,\mbfitpartial}]
如果出于某种原因您需要在同一文档中使用偏导数符号的直立、斜体、粗体和粗斜体形式,则需要加载另一种数学字体。