由于企业设计规则,我需要使用字体源代码管理软件对于等宽文本和宋体用于纯文本。使用 KOMA 脚本,我声明
\setmainfont{Arial}
\renewcommand{\sfdefault}{\familydefault}
\setmonofont{Source Code Pro}
不幸的是,等宽字体在用于单个单词或段落行时太显眼了(不符合我的口味)。其他情况也许可以接受,但并不吸引人。为了减轻痛苦,我使用宏
\newcommand{\mono}[1]{\texttt{\protect\scalebox{.9}[1.0]{#1}}}
这对于纯文本来说效果很好,但会导致问题
当用于超链接的
\url
宏(\mono{\url{...}}
如果可以接受失去破坏文本的能力,则有效,但\url{\mono{...}
不能),更令人讨厌的是,在使用时根本不起作用清单的
lstlisting
环境。
我不想以某种方式尝试解决这两个问题,而是希望有一种方法可以传递缩放字体的信息,\setmonofont{}
从而声明所有出现的源代码管理软件狭窄。
有什么建议吗?
答案1
您可以使用选项加载单色字体FakeStretch
(手册fontspec
,示例 17)。
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Arial}
\setsansfont{Arial}
\setmonofont{Source Code Pro}[FakeStretch=0.9]
\newfontfamily{\scp}{Source Code Pro}% for comparing
\begin{document}
Some words in Arial and \texttt{some in shrinked mono font}
Some words in Arial and {\scp some in unshrinked mono font}
\end{document}