我想将默认单字体(与 和\texttt{}
一起使用\url{}
)更改为“CMU 打字机文本可变宽度”,而不触及默认主字体。
我可以做到
\usepackage{fontspec}
\setmonofont[Scale=.935]{CMU Typewriter Text Variable Width}
但fontspec
迫使我将编译器更改为 XeLaTeX 或 LuaLaTeX,我不喜欢它们,因为它们会忽略\oldstylenums{}
。
有什么解决方法吗?
答案1
cfr-lm
提供拉丁现代字体的所有四种数字系列以及可变和等宽打字机的访问权限。还提供直立斜体和斜体小写字母的访问权限。
您可以选择默认样式。您还可以根据需要在图形和打字机样式之间切换。
但是,在准备此示例时,我发现包中有一个未声明的依赖项,因此您需要先加载ifthen
。 (我想加载了这么多东西,尽管使用了多年,ifthen
但我从未注意到。)cfr-lm
\documentclass{article}
\usepackage{ifthen}
\usepackage[rm={lining},sf={lining},tt={tabular,lining,monowidth}]{cfr-lm}
% \usepackage[rm={lining},sf={lining},tt={proportional,lining,variable}]{cfr-lm}
\begin{document}
one two three four five 0123456789
\texttt{one two three four five 0123456789}
% select variable typewriter with proportional lining figures when
% monowidth with tabular lining is default
\texttv{\textpl{one two three four five 0123456789}}
\end{document}
编辑
如果您想要使用字体\texttm
产生的轻型、压缩的等宽打字机,请在加载后将以下行添加到您的序言中cfr-lm
。
\DeclareTextFontCommand\texttm{\tmstyle\lgweight\cdwidth}
然后\texttm{Hello world!}
会产生
编辑 编辑
我无法确定这是否会改变您的参考书目样式对 URL 的处理方式,因为我对您的设置一无所知。但是,以下结果是使用等宽、轻型、压缩的拉丁现代打字机对 URL 进行排版,例如\url{*<URL>*}
。
\documentclass{article}
\usepackage{ifthen}
\usepackage[rm={lining},sf={lining},tt={proportional,lining,monowidth}]{cfr-lm}%
\usepackage{hyperref}
\makeatletter
\DeclareRobustCommand{\tmlcstyle}{% monowidth, light, condensed typewriter
\tmstyle\lgweight\cdwidth}
% \DeclareTextFontCommand\texttmlc{\tmlcstyle}% create a new command
\DeclareTextFontCommand\texttm{\tmlcstyle}% overwrite the package's \texttm
\def\url@tmlcstyle{%
\@ifundefined{selectfont}{\def\UrlFont{\tt}}{\def\UrlFont{\tmlcstyle}}}
\makeatother
\urlstyle{tmlc}
\begin{document}
one two three four five 0123456789
\texttt{one two three four five 0123456789}
% select variable typewriter with proportional lining figures when
% monowidth with tabular lining is default
\texttv{\textpl{one two three four five 0123456789}}
\texttm{Hello world!}
\url{https://tex.stackexchange.com}
\end{document}
相比之下,以下是使用tt
URL 样式的结果: