缩放默认无字体

缩放默认无字体

考虑以下最小文档:

\documentclass[11pt]{article}
\usepackage{times}
\begin{document}

Consider the algorithm \textsf{heapify} below.

Consider the algorithm $\mathsf{heapify}$ below.

\end{document}

这给了我以下输出。

无衬线字体

第一个代码明显很丑:算法名称的 x 高度与时间文本相比太大。第二行代码对我来说看起来更好,但代价是使用数学模式来处理“道德”文本。这不仅弄乱了伪代码中的间距,而且在调用下一个算法时也无法工作make-heap;我不考虑$\mathsf{make}\textsf{-}\mathsf{heap}$解决方案。

有没有简单的方法来设置\textsf字体以匹配\mathsf

注意:将默认的无衬线字体(cmss?)与 Times 一起使用以及在文本块中以无衬线字体设置算法名称都是我无权质疑的决定。

答案1

您可以通过以下方式实现您的目标:

  • 不要加载该times包,因为它已被弃用。加载该mathptmx包,或者,如果您愿意,加载newtxtextnewtxmath一对包。更新,2023 年 7 月:我会选择newtxtextnewtxmath

  • helvet使用选项加载包Scaled。在我看来,如果您希望衬线和无衬线字母的 x 高度大致相等,则默认缩放量不太适合Times Roman衬线文本字体。因此,我会使用 选项,Scaled=0.86而不仅仅是Scaled

\mathsf顺便说一下,你的例子中使用的字体是不是Helvetica 但是Computer Modern Sans Serif

在此处输入图片描述

\documentclass[11pt]{article}
\usepackage{mathptmx}
\usepackage[scaled=0.86]{helvet}
\begin{document}
Consider the algorithm \textsf{heapify} below.

Consider the algorithm $\mathsf{heapify}$ below.
\end{document}

附录:我曾假设——可能是错误的——因为你加载了包times,所以你通缉使用 Helvetica 作为文档的无衬线文本字体。如果此假设不正确,即如果您只想使用 Computer Modern Sans Serif (CMSS) 和 Times New Roman (TNR),加载helvet包——当然也不要加载包times,因为会times自动将 Helvetica 设置为无衬线文本字体。碰巧的是,TNR 和 CMSS 的 x 高度非常相似;因此无需缩放 CMSS 以使其与 TNR 一起“工作”。

相关内容