幻灯片文档类中的符号不​​一致

幻灯片文档类中的符号不​​一致

问题描述

我喜欢slides文档类对大部分数学运算的排版方式,我可以裁剪它们并在所见即所得的幻灯片编辑器中使用这些数学运算。

首先,我不确定如何将字体设置为 10pt,以便新公式类似于我使用article文档类生成的公式(我的公式在导入时在幻灯片软件中被放大到 360%,因此我将其缩放slides到 180%,因为它们默认使用 20pt 大小)。

其次,document-class 似乎有一些怪癖。也就是说,垂直点、分号和冒号看起来不对劲。水平点和逗号看起来没问题。 在此处输入图片描述 为了进行比较,使用article文档类我得到以下内容。 在此处输入图片描述

最后,我不太确定我是否理解了字体的用途。从名称上看,在我看来,直立字体是无衬线字体,一些符号也是无衬线字体(例如圆括号、方括号等),斜体拉丁字母和希腊字母是衬线字体。

有人能解释一下这个文档类吗?
如果这个类不再是主流,我也愿意接受替代方案。

附加信息

PS 是否应向类别维护者提交错误报告以修复不一致之处?

用于生成上述示例的代码如下:

\documentclass{slides}
\begin{document}
\[
\ldots\;\cdots\;\vdots\;,\;;\;:\;\sin(2x)
\]
\end{document}

ghostscript然后用于从渲染的 PDF 中裁剪出数学内容。

实时调试

slides已给出文档类字体答案这里经过埃格尔。在这种情况下,我不想使用beamer。我想理解这是怎么回事。

文档第 9.1 节规定字体设置如下:

\def\rmdefault{lcmss}
\def\sfdefault{lcmss}
\def\ttdefault{lcmtt}
\def\itdefault{sl}
\def\sldefault{sl}
\def\bfdefault{bx}
\def\updefault{n}

虽然执行这些命令确实article会改变主文本字体,但数学运算并不像使用该类时那样表现slides

啊,好的,从第 9.5 节我们有:

\SetSymbolFont{operators}{normal}{OT1}{lcmss}{m}{n}
\SetSymbolFont{letters}{normal}{OML}{lcmm}{m}{it}
\SetSymbolFont{symbols}{normal}{OMS}{lcmsy}{m}{n}
\SetSymbolFont{largesymbols}{normal}{OMX}{lcmex}{m}{n}

这样就会使数学符号以无衬线字体呈现,并且标点符号不一致,但至少三个垂直点不会被挤压在一起。

在此处输入图片描述

\ldots我想,如果现在始终使用三个小正方形而不是圆圈的话,那就太好了\dots……也许现在要求太多了。

此外,逗号是怎么回事?为什么它看起来不像其他标点符号那样方正?

最后,编译上述 tex 会pdftex生成有关缺少字体和执行替换的多个警告。

早期结论

  1. 三个垂直点被转换为小方块\def\rmdefault{lcmss},这会改变主文本字体(但如果没有三个垂直点,数学运算将保持不变)。我觉得这像是一个 bug。
  2. 分号、冒号、正则、括号和数字都用单个命令以无衬线字体呈现\SetSymbolFont{operators}{normal}{OT1}{lcmss}{m}{n}。我不明白为什么逗号不受影响。

早期自我解答

使用以下模板可以获得 10pt 数学运算slides

\documentclass{article}
\SetSymbolFont{operators}{normal}{OT1}{lcmss}{m}{n}
\begin{document}
\[

\]
\end{document}

答案1

默认情况下\vdots\ddots不是来自字体的字符,而是由定位构成的\hbox{.},正如您所注意到的,使用使用方点的 cm sans serif 非常明显,尤其是与计算机 motern roman italic math 配对时,这是幻灯片中的默认设置。

这重新定义\vdots为使用(圆形)数学.并加载粗体未扩展的 cm 罗马字体以获得(至少):;为了匹配数学字体,中等重量的罗马字体;在幻灯片无衬线字体旁边看起来太薄了,所选的b重量可能有点重但可能是可行的。

在此处输入图片描述

重新定义\vdots为使用圆形后,.您还可以根据需要调整定位(尽管我在这里没有这样做)

\RequirePackage{fix-cm}% cope with non standard sizes
\documentclass{slides}
\makeatletter
\DeclareSymbolFont{rmops}   {OT1}{cmr} {b}{n}% get back a roman font, for ; at least
\DeclareRobustCommand
  \vdots{\vbox{\baselineskip4\p@ \lineskiplimit\z@
      \kern6\p@\hbox{$.$}\hbox{$.$}\hbox{$.$}}} % no $ by default
  \DeclareMathSymbol{:}{\mathrel}{rmops}{"3A}% was operators
  \DeclareMathSymbol{;}{\mathpunct}{rmops}{"3B}% was operators
\makeatother
\begin{document}
\[
\ldots\;\cdots\;\vdots\;,\;;\;:\;\sin(2x)
\]
\[
\ldots\;\cdots\;\vdots\;,\;;\;:\;\sin(2\mathsf{x})
\]
\end{document}

相关内容