我尝试使用 加载 STIX Two fontspec
,使用 加载 STIX Two Math unicode-math
,并直接加载newtxtt
包。但是,似乎无法正确编译文档:如果我newtxtt
在 之前加载fontspec
,那么等宽字体仍将是默认字体;如果我在 之后fontspec
(以及\setmainfont
部分,参见代码示例)但在 之前unicode-math
加载它,则文件无法编译,因为出现“数学符号不足”错误;如果我在 之后加载它unicode-math
,那么虽然数学字体是 STIX 2 且等宽字体是 newtxtt,但文本字体会更改为默认的计算机现代字体。
\documentclass{scrartcl}
\usepackage{amsmath}
\usepackage{fontspec}
\setmainfont {STIX2Text-Regular}[
Extension=.otf,
BoldFont=STIX2Text-Bold,
ItalicFont=STIX2Text-Italic,
BoldItalicFont=STIX2Text-BoldItalic,
]
\usepackage[zerostyle=b]{newtxtt}
\usepackage{unicode-math}
\setmathfont{STIX2Math.otf}[StylisticSet=02, StylisticSet=08]
\usepackage{cabin}
\usepackage{dutchcal}
\usepackage{ulem}
\usepackage{leftidx}
\usepackage{physics}
\usepackage{mattens}
\usepackage[e]{esvect}
\usepackage{units}
\usepackage{minted}
\begin{document}
\usemintedstyle{murphy}
\begin{minted}{python}
# Propagate two balls with velocities v1 and v2, print "The
# two balls collided" if they collide:
while 1==1:
ball1.pos=ball1.pos+v1*dt
ball2.pos=ball2.pos+v2*dt
if mag(ball1.pos-ball2.pos) < ball1.radius+ball2.radius:
print("The two balls collided")
\end{minted}
\end{document}
答案1
您需要选择里面的 T1 编码minted
,这似乎不可能直接实现,因此需要进行一些小小的修改。
我稍微改变了你的序言,将包加载和声明分开。
对于 STIX Two 字体,使用您自己的方法,但将它们安装为系统字体更方便,因为这样更容易在文档中设置它们。
\documentclass{scrartcl}
\usepackage{amsmath}
\usepackage{fontspec}
\usepackage{unicode-math}
\usepackage[zerostyle=b]{newtxtt}
\usepackage{cabin}
\usepackage{dutchcal}
\usepackage{ulem}
\usepackage{leftidx}
\usepackage{physics}
\usepackage{mattens}
\usepackage[e]{esvect}
\usepackage{units}
\usepackage{minted}
\usepackage{xpatch}
\setmainfont{STIX Two Text}
\setmathfont{STIX Two Math}[StylisticSet=02, StylisticSet=08]
\makeatletter
\xpretocmd\FV@SetupFont{\fontencoding{T1}}{}{}
\makeatother
\begin{document}
\usemintedstyle{murphy}
\begin{minted}{python}
# Propagate two balls with velocities v1 and v2, print "The
# two balls collided" if they collide:
while 1==1:
ball1.pos=ball1.pos+v1*dt
ball2.pos=ball2.pos+v2*dt
if mag(ball1.pos-ball2.pos) < ball1.radius+ball2.radius:
print("The two balls collided")
\end{minted}
\end{document}