和似乎\sfseries
都\sfshape
不起作用。那么我要找的命令是什么来将当前组更改为无衬线?\bfseries
,\scshape
并且\itshape
有效,但我找不到无衬线命令来做同样的事情......
答案1
您想要的命令是\sffamily
。我不知道为什么粗体是一个系列(其他字体粗细也是;它可能是一个印刷术语),但应该清楚为什么小写字母和斜体是形状;无衬线字体是一个字体系列,因此得名。(虽然我理解逻辑,但确实觉得一致性会很好……)有一个列表TeX 常见问题解答:
默认的模态命令集提供重量
\mdseries
和\bfseries
、形状\upshape
、、\itshape
和\scshape
、和\slshape
系列\rmfamily
和。\sffamily
\ttfamily
这些命令依次激活米埃d重量,b老的F高手,向上正确的,它阿利克,s购物中心CAP,斯洛文尼亚前言,ro米一个(衬线),s安斯利F, 和吨打字机吨ext(等宽)。为了形成命令\textXX
,始终使用模态命令的前两个字母。
答案2
虽然这个问题已经很老了(只是因为 lockstep 重新激活了它才发现它)但也许值得添加这些信息。
在我的 LaTeX 讲座中,我使用下图来解释 LaTeX 对不同特征的印刷材料进行分类的方式。
1. 编码
首先要选择字体在文件中的编码方式,即哪个字符位于哪个位置。字体编码(在 中pdflatex
)通常使用fontenc
使用类似的东西进行打包
\usepackage[T1]{fontenc}
这与单个字母的出现无关。
2a. 字体和 2b. 系列
这里 LaTeX 没有太多区分。Typeface(2a)是“字体”,就像电脑现代罗马,英语字体格式一种或者海尔维提卡,例如。字体通常(在pdflatex
)通过加载类似
\usepackge{lmodern}
加载拉丁现代字体(可以在以下位置找到许多字体包的列表LaTeX 字体目录)问题就从这里开始:lmodern
不仅会加载一种字体,还会加载三个系列的三种字体(2b)罗马/衬线字体,无衬线字体和打字机。要选择系列 (2b),您可以使用以下三个字体开关
\rmfamily and \textrm{<text>} % = Serif/Roman
\sffamily and \textsf{<text>} % = Sans Serif
\ttfamily and \texttt{<text>} % = Typewriter (Teletype)
3a. 系列和 3b. 形状
在下一级,您可以选择一个系列(3a,也称为重量) 和/或形状 (3b)。不同的系列具有相同的特征,但笔画宽度不同。通常 LaTeX 仅使用两个系列,但字体的粗细最多可达十种或更多。
\mdseries and \textmd{<text>} % = normal
\bfseries and \textbf{<text>} % = bold face
或者
适用于无衬线字体系列。
一般来说,您可以将系列与任何形状组合,但并非所有字体都包含所有可能的组合,例如粗体斜体小写字母非常罕见。也可以组合多种形状,但不能组合两个不同的系列。在 LaTeX 中,您可以从以下选项中进行选择
\upshape and \textup{<text>} % = normal
\itshape and \textit{<text>} % = italic
\slshape and \textsl{<text>} % = slanted/oblique
\scshape and \textsc{<text>} % = small caps
请注意斜体和倾斜是不是无论如何都一样。特别是衬线字体系列通常(希望)具有真正的斜体形状,甚至具有不同的字母形式,例如字母a
。无衬线字体系列通常会消除这种差异,如下图所示。
我不会展示任何理论上可能的组合,因为拉丁现代字体并不支持所有这些,正如您所见,无衬线字体甚至没有小写字母形状。在这方面,我强烈建议您不要使用缩放的大写字母来伪造小写字母。当您缩放大写字母时,您也会缩放笔划宽度,然后伪造的小写字母将与大写字母不匹配。
4. 尺寸
当然,值得讨论的是,尺寸是否应该处于最低级别,或者它应该是编码正下方的第二个级别,但我选择将其置于最低级别。
这一层最明显的部分是字母的宽度和高度,可以通过开关选择
\tiny % smalles size
\scriptsize % size of (first level) super and supscripts
\footnotesize % size of footnotes
\small
\normalsize % size of regular text
\large
\Large
\LARGE
\huge
\Huge % biggest size
这些字体大小是相对的,取决于常规文本的选定值,例如,可以使用类选项来完成11pt
。如果要设置特定大小,可以使用\fontsize{<size>}{<baselineskip>}\selectfont
。
除了这些明显的尺寸之外,还有一种东西叫做光学尺寸这意味着小尺寸的字母形式与大尺寸的字母形式有很大不同。
最后一行显示的文本设置为\Huge
,第一行设置为\tiny
,中间一行设置为\normalsize
,所有文本都缩放到相同的字母高度。正如您所见,设计为较小尺寸的字母在笔划宽度方面更加稳健,它们的间距增加了,字母形状也更宽了。字体设计师这样做是为了保持小文本的可读性,并防止细笔划在打印时断裂。
幸运的是,LaTeX 足够智能,可以根据字母的当前大小找到正确的光学尺寸——不幸的是,只有少数字体具有不同的光学尺寸。
字体切换与文本命令
如上所示,有些特性可以通过两个宏来更改,例如\bfseries
和\textbf
,而有些 — 大小宏 — 只有一个,例如\large
。我使用一个参数调用 ons文本命令因为它们可以在运行的文本中使用(内联),并且可以用来改变单个或几个单词的外观。没有参数的我称之为字体开关因为它们可以打开或关闭某个特性,并且其效果只能由组限制。字体大小开关没有附带的文本命令,因为在线更改字体大小没有多大意义(除了脚注标记,但如果需要,这会自动完成)!请记住,有没有环境来改变字体,特别是没有这样的环境!\begin{large} ... \end{large}
为什么不使用\it
等等\bf
?
看双字母字体样式命令 (\bf,\it,...) 会在 LaTeX 中复活吗?。
生成此帖子第一张图片的代码:
\documentclass[tikz,border=5mm]{standalone}
\usepackage{lmodern}
\begin{document}
\begin{tikzpicture}[every node/.style={inner sep=0.25cm,font=\sffamily\bfseries}]
% Overlaying rectangles
\begin{scope}[fill=yellow!65!red,nearly transparent]
% Series
\fill (-4.25,-2) rectangle (4.25,2);
\draw [white, opaque, ultra thick] (0,-2) -- (0,2);
% Size
\fill (-1.5,-2) rectangle (1.5,2);
% Family
\fill (-4.5,-2.25) rectangle (4.5,2.75);
% Encoding
\fill (-4.75,-2.5) rectangle (4.75,3.5);
\end{scope}
% Text
\node {4. Size};
\node at (-4,0) [right] {3a. Series};
\node at (4,0) [left] {3b. Shape};
\node at (-4.5,2.75) [below right] {2a. Typeface and 2b. Family};
\node at (-4.75,3.5) [below right] {1. Encoding};
\end{tikzpicture}
\end{document}