awesome-cv 中的数学字体

awesome-cv 中的数学字体

我正在使用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 替代品。您还应该使用中的命令,而不是尝试重新定义。amssymbunicode-math\setoperatorfontunicode-mathoperator@font

我至少留下了一个限制,而不是让字体选择变得更加复杂。[range={\partial,\mitpartial,\mbfpartial,\mbfitpartial}]如果出于某种原因您需要在同一文档中使用偏导数符号的直立、斜体、粗体和粗斜体形式,则需要加载另一种数学字体。

相关内容