cfr-lm 和 lm 包之间的区别

cfr-lm 和 lm 包之间的区别

对于拉丁现代字体,有以下软件包现代流明。此外,还有字体包流明lm-数学。对于初学者来说,很难弄清楚这些包之间的关系。令人困惑的是,lmodern 文档间接指向 lm,但 lm “只是”一种字体,而不是 可直接使用的东西\usepackage{lm}

答案1

lm是一个包含各种内容的软件包。最重要的是,它包含 Latin Modern 字体本身,以及与 TeX 和朋友一起使用它们所需的文件。例如,字体以 type1 格式提供,用于 TeX 和 pdfTeX,以 opentype 格式提供,用于 XeTeX 和 LuaTeX。

该软件包的一个元素lm是一组用于将 type1 字体与 LaTeX 或 pdfLaTeX 结合使用的支持文件。这包括lmodern.sty您用作 的软件包\usepackage{lmodern}

到目前为止,一切都很好。

现在,如果如果你正在使用 XeTeX 或 LuaTeX,那么你可能,如果您愿意,可以使用lm-math由 opentype 数学字体组成的。unicode-math提供了一种使用方法。您不必这样做 - 您可以使用标准数学支持 - 但您可以。

如果您使用的是 TeX 或 pdfTeX,lm-math则无关紧要。您无法使用它,也不需要它,因为lmodern这些引擎已经支持数学。

到目前为止,这都是官方支持 - 或者无论如何都是官方支持。

现在,如果您使用带有 type1 字体的 TeX 或 pdfTeX,则lmodern功能会受到一定限制。它仅支持字体本身提供的部分功能。例如,它使用表格、衬线数字,尽管您可以使用特殊命令访问旧式数字,但这些数字仍然是表格形式,使用起来很不方便。此外,没有简单的方法来使用斜体小写字母、非扩展粗体或直立斜体,例如,因为默认情况下 LaTeX 无法很好地支持这些。可变宽度打字机、斜线零和引号 sans 超出范围,并且没有简单的文档级命令来访问 Latin Modern Dunhill。

对于这些引擎,cfr-lm提供增强的支持。尽可能地,cfr-lm旨在通过一组相当简单的命令和选项提供对字体中可能有用的所有内容的访问。cfr-lm不仅仅是一个包文件,cfr-lm.sty。的大部分cfr-lm由一组 TeX 字体文件和 LaTeX 定义文件组成。本质上,这些是文件*.tfm*.vf*.fd一个新*.map文件。不过,这一切都在幕后进行。对最终用户来说,重要的是cfr-lm.sty和文档。

例如,您可以向包传递选项,说明对于每种字体,您是希望使用表格还是比例数字,是使用衬线还是老式字体。您可以说明您想要哪种字体样式。此外,您可以在文档本身内切换不同的样式。例如,您可以对文本使用老式比例数字,但对表格切换为表格衬线数字。

如果您不需要任何功能,请使用lmodern。这不仅更简单,而且不依赖于虚拟字体,虚拟字体在某些情况下可能会带来不利影响。(不要问我哪些情况 - 我还没有学会这一点。)

但是,如果你想使用这些功能中的任何一个,cfr-lm生活就会变得轻松很多。在某些情况下,它可以让你做一些你只能通过创造与cfr-lm自己相当的东西才能做的事情。

请注意,cfr-lm使用与 相同的 type1 字体lmodern。此外,对数学的支持也相同。cfr-lm只需加载 提供的数学支持lmodern即可。(包文件的相关部分只是从 复制而来lmodern.sty

请注意,将使用选项cfr-lm加载。它还将加载以访问编码。fontencT1textcompTS1

以下是一个示例:

cfr-lm 采样器

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[rm={proportional,oldstyle},sf={proportional,oldstyle},tt={lining,tabular,monowidth}]{cfr-lm}


\begin{document}

1234567890\zeroslash (serif, oldstyle, proportional)

\textsf{1234567890\zeroslash} (sans, oldstyle, proportional)

\texttt{1234567890\zeroslash} (monowidth, tabular, lining typewriter)

\textpl{1234567890\zeroslash} (serif, proportional, lining)

\texttl{1234567890\zeroslash} (serif, tabular, lining)

\textsf{\tlstyle 1234567890\zeroslash} (sans, tabular, lining)

\textsl{This is oblique text.}

\textit{This is in regular italics.}

\textui{This text is in upright italics.}

\textsc{Here are some small-caps.}

\textsi{This is italic small-caps.}

Text weight and width (Medium)

\textsb{Text weight and width} (Bold)

\textbf{Text weight and width} (Bold Extended)

\textti{This is Latin Modern Dunhill.}

\texttt{Typewriter text.} (Monowidth)

\texttv{Typewriter text.} (Variable)
\end{document}

文档力求清晰全面。如果不够,您可以尝试向软件包维护者投诉。

texdoc cfr-lm

答案2

您不应将“CTAN 包”与“LaTeX 包”混淆。前者是一组文件,用于支持不同类型的 TeX 相关对象,而 LaTeX 包是带有扩展名的单个文件.sty,可能与其他支持文本文件相关。

流明lm-数学CTAN 包提供字体文件;第一个还包含lmodern.sty一个支持 LaTeX 的包使用LaTeX 中的字体。第二个仅提供 OpenType 格式的字体,不支持 LaTeX 包(可以加载unicode-math以在 XeLaTeX 或 LuaLaTeX 中使用这些字体)。

流明是一个 CTAN 包,它提供了几个字体文件和一个名为的支持 LaTeX 包cfr-lm.sty

您可能已经注意到,我对这两件事使用了不同的标记:CTAN包裹和一个 LaTeX package.sty

lmodern.sty和有什么区别cfr-lm.sty?后者自带了很多字体文件流明; 他们是虚拟字体最终将字形映射到字体流明,并且可以很容易地选择基本版本中不存在的几个不同功能流明分布和lmodern.sty:旧式和衬线数字、比例或表格、倾斜小写字母、压缩无衬线字体、半粗体。阅读文档了解更多信息。

相关内容