我想在以下 MWE 中更改 fancyvrb 的默认字体。
% arara: xelatex: { shell: true }
\documentclass{article}
\usepackage[svgnames]{xcolor}
\usepackage{fontspec}
\usepackage{fancyvrb}
\newfontface{\cBld}{SourceSansPro-Bold.ttf}
\newfontface{\cEm}{SourceSansPro-LightItalic.ttf}
\newfontface{\cNrm}{SourceSansPro-Regular.ttf}
\def\It#1{{\cEm #1}}
\def\Bf#1{{\cBld #1}}
\def\Br#1{{\color{IndianRed}{\cNrm #1}}}
\def\Bl#1{{\color{CornflowerBlue}{\cNrm #1}}}
\def\Gr#1{{\color{LimeGreen}{\cNrm #1}}}
\begin{document}
\begin{Verbatim}[commandchars=\\\{\}, numbers=left]
\It{;;}
\It{;; goff.ufm}
\It{;; 13:00:35 11:08:2021 (MST)}
\It{;;}
MyGoFF \{
\Bf{init:}
z = \Br{@Z}
\Bf{complex} zf = \Br{@ZF}
\Bf{loop}:
\Bf{if} \Br{@fof} > 0
zf = Utils.\Bl{fofz}(\Br{@inverse}, \Br{@fof}, Utils.\Bl{zFunction}(\Br{@inverse}, \Br{@fofz}, z, \Gr{\#pixel}))
z = Utils.\Bl{fofz}(\Br{@inverse}, \Br{@fof}, Utils.\Bl{gFunction}(\Br{@inverse}, \Br{@gofz}, zf, \Gr{\#pixel}))
\Bf{else}
zf = Utils.\Bl{zFunction}(\Br{@inverse}, \Br{@fofz}, z, \Gr{\#pixel})
z = Utils.\Bl{gFunction}(\Br{@inverse}, \Br{@gofz}, zf, \Gr{\#pixel})
\Bf{endif}
\Bf{if} \Br{@const} > \Bl{0}
\Bf{if} \Br{@op} == \Bl{0}
z = z * Utils.\Bl{GetConstant}(\Br{@const});
\Bf{elseif} \Br{@op} == \Bl{1}
z = Utils.\Bl{GetConstant}(\Br{@const}) / z;
\Bf{elseif} \Br{@op} == \Bl{2}
z = z + Utils.\Bl{GetConstant}(\Br{@const});
\Bf{elseif} \Br{@op} == \Bl{3}
z = Utils.\Bl{GetConstant}(\Br{@const}) - z;
\Bf{elseif} \Br{@op} == \Bl{4}
z = z / Utils.\Bl{GetConstant}(\Br{@const});
\Bf{elseif} \Br{@op} == \Bl{5}
z = z - Utils.\Bl{GetConstant}(\Br{@const});
\Bf{elseif} \Br{@op} == \Bl{6}
z = z\^{}\Bl{2} + Utils.\Bl{GetConstant}(\Br{@const});
\Bf{elseif} \Br{@op} == \Bl{7}
z = z\^{}\Bl{2} - Utils.\Bl{GetConstant}(\Br{@const});
\Bf{endif}
\Bf{endif}
\end{Verbatim}
\end{document}
我尝试了所有能想到的解决方法,但无法让 fancyvrb 使用任何东西,除了它提供的硬编码默认值或替代方案。手册上说:
4.1.5
Fonts fontfamily (family name) : font family to use. tt, courier and
helvetica are predefined (Default: tt).
我尝试过 helvetica,但后来遇到了一种字体与另一种字体的字符大小不同的问题。我想使用 SourceSansPro-Regular.ttf,但还不知道该怎么用。在尝试过程中,我尝试了字体名称的所有变体:
Family: Source Sans Pro
Subfamily: Regular
Full name: Source Sans Pro Regular
PostScript name: SourceSansPro-Regular
这些都没有什么区别。我相信线索就在于“预定义”这个词。我没有看到任何 API 来实现这一点——给出的方法没有带来任何变化。
如果我可以改变字体,其他一切都会按照我想要的方式运行。这是对半原型的尝试。”列表' 环境。所讨论的语言(Ultra Fractal 的公式语言)不适合其他可用的解析器。
我在 Windows 11 下使用 MikTeX 2.9(前沿技术),字体系列可在https://fonts.google.com/specimen/Source+Sans+Pro
答案1
这在 4.2 中的 fontspec 文档中有描述,具体来说是选择 NFSS 系列:
\documentclass{article}
\usepackage{fontspec}
\usepackage{fancyvrb}
\newfontfamily\verbatimfont{SourceSansPro-Regular.ttf}[NFSSFamily=myverbatimfont]
\begin{document}
\begin{Verbatim}[fontfamily=myverbatimfont]
aaaa
\end{Verbatim}
\end{document}