贤贤易色

HOW IS HUMMAN THINK?

Latex下字体设置

翻译Walter Schmidt 的一篇文章《Font selection in LaTeX--The most frequently asked questions》。
Walter Schmidt is well-known in the TeX community as the maintainer of PSNFSS (PostScript New Font Selection Scheme), a key element in the LaTeX system. He is also proficient in designing font macro packages for LaTeX, and is author of the mtpro package for MathTimeProfessional fonts and the lucimatx package for Lucida fonts. He maintains a math fonts web page (in German) containing samples and comparisons of several math fonts that can be used with LaTeX. Walter lives in Erlangen, Germany.
latex字体设置
1、基本命令
\rmfamily 选择一种roman (i.e., serifed)字体族
\sffamily 选择一种sans serif字体族
\ttfamily 选择一种monospaced (“typewriter”)字体族
对于每种字体族可以使用下面的申明,选择不同的系列:
\mdseries 普通
\bfseries 加粗
和不同的形状:
\upshape 竖直
\slshape 倾斜
\itshape 斜体
\scshape 大写小写
这些“申明”命令,在当前组或环境中起作用。
族、系列、形状命令可以组合使用,如,\bfseries\itshape生成粗意大利体。另外并不是每种组合都是有效的,例如许多字体族中没有大小写。
这种方案称为NFSS(新字体选择方案),它的官方文件可以在每个latex系统中找到,fntguide.dvi或.pdf
2、怎样改变整篇文档的默认字体?
latex使用的三种默认字体族是
roman
sans serif
monospaced
在tex之外的世界里,这三种字体已经不流行了,因此“怎样改变整篇文档的默认字体?”这个问题是最多人问及的。
用\rmfamily, \sffamily和\ttfamily命令选择的字体族由对应的宏\rmdefault, \sfdefault 和\ttdefault决定。如果你知道希望使用的字体族的名字,则可以用\renewcommand改变它们。只需在导言部分增加这个命令
\renewcommand{\rmdefault}{ptm}
ptm是latex系统中“time”字体族的名字,因此文档中所以的CM Roman变为Times。
在后面将说明怎样知道一种字体族的名字。
但是如果文档中含有数学表达式,需要注意的是改变\rmdefault并不会对公式产生影响。在上面的例子中它们将还是使用CM数学字体,不会与Times相混淆。
要想改变数学字体比简单地定义一个宏要麻烦的多。这就是为什么可选择的数学字体常伴随着一个宏:要想得到宏的结果必须替换默认的(CM)数学字体;许多情况下这些宏会慎重考虑重定义\rmdefault.例如,将文字和数学表达式均改为Times,必须在导言部分还加入下面的命令:
\usepackage{mathptmx}
也有其他的宏可以只改变文字的字体,但是这也会改变其他特征,如缩放。
3、在你的Latex系统中有哪些字体族可用?
除了计算机现代体外还有其他的字体,相关的宏经常涉及“PSNFSS collection”。它支持typefaces Times, Helvetica, Palatino 和Charter (还有些其他的),另外还支持与Times和Palatino相适应的数学字体。相关信息可以参考Latex系统中的PDF文件psnfss2e.pdf,通常在目录doc/latex/psnfss下。强烈推荐大家阅读一下这篇文档。它谈到了支持字体族的名称(如上面提到的ptm),还解释了相关宏的用法。
PSNFSS collection谈到之外的可供选择的字体,严格来说,只有你的特定TEX发行文件可以告诉你,你的系统中安装了哪些字体,相关的文件安装在哪里。
最新的TEX发行及附带的免费文字和数学字体可以从CTAN得到。
更多Latex用户字体族在http://tug.org/fonts有介绍。

4、怎样改变文档某一部分的字体?
一个经常问到的问题就是怎样改变文档中一部分元素的字体,特别地如章节标题的字体。这些元素的样式,包括字体的选择,是由你使用的文档类决定的。不幸的是标准的文档类(article, report, book)默认情况下不提供任何定制。
一种可行的办法就是使用额外的宏,来增加必要的功能;最常用的titlesec(CTAN:macros/latex/contrib/titlesec/)和sectsty(CTAN:macros/latex/contrib/sectsty/)来改变章节标题的样式,控制图形和表格的标题样式。这些宏的使用方法在相关的文章中有介绍。
另外,不同的文档类用不同的方法。KOMA类以及Memoir类提供多种方法定制格式。例如,我们来看看KOMA类控制节标题格式的接口:
默认情况下KOMA类使用粗体sans-serif 字体输出标题。要改变它可以使用
\setkomafont{sectioning}{...}
它的第二个参数定义对所有的节标题起作用。通常我们希望使用粗体的roman字体,另外应用\boldmath,因此在节标题中的数学表达式也是粗体。这在KOMA类中很简单:
\setkomafont{sectioning}{\rmfamily\bfseries\boldmath}
相似地,可以用\setkomafont{caption}{...}修改章标题的样式。
通常使用这些额外的宏和类,只需要一条Latex命令就可以改变文档许多部分的格式。

posted on 2006-05-04 22:30 人是什么? 阅读(26375) 评论(2)  编辑 收藏 引用 所属分类: 生活随笔

评论

# re: Latex下字体设置 2006-06-03 20:37 argochen

正文中想用五号作为默认字体大小,用
\documentclass{article}
\renewcommand{\baselinestretch}{1.25}
\newcommand{\wuhao} {\fontsize{10.5pt}{\baselineskip}\selectfont}% 五号
\def\defaultfont{\wuhao}
\begin{document}
test
\end{document}

得到的字体大小好象还是10pt的,查了好多地方,一直没找到答案,请给予解答。谢谢。
当然在文字之前加上\defaultfont是可以实现,但这样的话上面几行的代码是不是在改变默认字体大小?
难道默认字体大小只能是10pt,11pt和12pt?   回复  更多评论   

# re: Latex下字体设置 2006-06-05 13:39 yangjianlin

sorry sir, I hadn't review my bolg for a long time. And cann't replay your message immediately.
I think the problem may be in this code:
\newcommand{\wuhao} {\fontsize{10.5pt}{\baselineskip}\selectfont}% 五号

it means you define "wuhao" as 10.5pt, and in Tex it omit the decimal in font size define.
you can change the 10.5 to other number, try it.  回复  更多评论   

只有注册用户登录后才能发表评论。