cfr-lm 除了更改为旧式数字之外还有其他副作用吗?

cfr-lm 除了更改为旧式数字之外还有其他副作用吗?

我目前正在使用以下内容:

\documentclass[12pt,extrafontsizes]{memoir}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\begin{document}
I have 1,233,345.6 cats.
\end{document}

我想要旧式数字,并使用

\usepackage{cfr-lm}

将它们普遍地提供给我。但是,由于我的文档比上面的 MWE 更复杂,我担心cfr-lm除了旧式编号之外还会有其他变化。是吗?

答案1

cfr-lm比较有无软件包时获得的字体

\documentclass{memoir}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{cfr-lm}
%\usepackage{lmodern}

\usepackage{fonttable}

\newcommand{\printfontdimen}[1]{%
  \texttt{\string\fontdimen#1: }%
  \expandafter\texttt\expandafter{\the\fontdimen#1\font}%
}

\begin{document}
\fonttable{\fontname\font}
\newpage
\noindent
\printfontdimen{1}\\
\printfontdimen{2}\\
\printfontdimen{3}\\
\printfontdimen{4}\\
\printfontdimen{5}\\
\printfontdimen{6}\\
\printfontdimen{7}

\end{document}

以下是字体表:

字体表

以下是字体尺寸的列表:

字体尺寸

在加载时进行比较lmodern。您会注意到打字机字体也有旧式数字,这可能是您不想要的。

根据文档报告,加载没有选项的包相当于执行

\usepackage[
  rm={oldstyle=true,proportional=true},
  sf={oldstyle=true,proportional=true},
  tt={oldstyle=true,proportional=true,variable=true},
  qt=false,
]{cfr-lm}

所以你可能想要

  tt={lining=true,tabular=true,variable=false},

此外,我认为不推荐使用无衬线旧式字体。以下是此调用中字体尺寸表的显示方式

在此处输入图片描述

答案2

正如 egreg 指出的那样,cfr-lm没有选项相当于:

\usepackage[%
rm={oldstyle=true,proportional=true},%
sf={oldstyle=true,proportional=true},%
tt={oldstyle=true,proportional=true,variable=true},%
qt=false%
]{cfr-lm}

除了使用旧式而不是衬线数字之外,这意味着cfr-lm不使用选项的加载将执行以下操作:

  1. 它将使用虚拟字体来显示文本,而不是直接访问字体
  2. 它将对所有文本使用比例数字,而不是表格数字
  3. 它将可变宽度变量设置为默认值\ttfamily
  4. 它将定义一个新的命令\zeroslash
  5. 如果加载,它将设置microtype配置microtype
  6. 它将加载以下内容:
    1. fontencT1
    2. textcomp
    3. xkeyval
    4. nfssext-cfr

1 对您来说几乎肯定没有什么区别。使用适当的选项可以轻松更改 2 和 3。4 仅在您使用它时才重要。如果您使用,5 可能是您想要的,如果您microtype不使用,应该也没有区别。

无论如何,您都会加载 6.1。许多软件包使用 6.3。如果您一直使用 Latin Modern,则 6.4 不太可能出现问题。如果将 Latin Modern 与其他字体混合使用,则可能会发生冲突,但这取决于您正在执行的操作的细节。如果您只使用 Latin Modern,除非您使用它定义的附加命令,否则它几乎不会执行任何操作。

要访问其他字体形状等,您需要使用 中定义的命令nfssext-cfr。也就是说,cfr-lm不是兼容fontaxes或类似。

相关内容