字体族

字体族 #

作者:二花

关键词:字体,字体族(font family),字体形状(font shape),字体系列(font series)

我们生活中所见到的大多数物体,都有一个属性,那就是结构,那结构是什么呢?基本上我们可以认为结构包括三部分:形状,材料,尺寸。

我们用于排版的字体,同样有结构,他们的结构又包含什么呢?字体的类型(宋体,隶书),字体的正体斜体,字体的粗细,字体的大小等。这几个性质也离不开我们所说的结构,因为他们同属于形状和尺寸范畴。

但是,字体因为是一个系列体,因此他可以有更加详细的划分,我们一般从这几个角度去讨论他们:

  • 字体族(font family):对应一组风格相似,适用于一起使用的成套字体,如罗马字体族,无衬线字体族等
  • 字体形状(font shape):斜体,直立,小型大写等
  • 字体系列(font series):中等,加宽加粗等

LaTeX默认预定义的三种字体族为:罗马字体族,无衬线字体族,打字机字体族

有两种命令可以局部使用这些字体族:

字体族 带参数命令 声明命令
罗马 \textrm{ } \rmfamily
无衬线 \textsf{ } \sffamily
打字机 \texttt{ } \ttfamily

但是对于中文,没有太多的变体,因此,我们一般使用字体族来区分(宋体,隶书等)。

因此,中文字体的选择与西文字体是分离的,这个要注意

ctex 宏包及其文档类(如ctexart)另外新定义了一些组合字体,可以让中文拥有如同西文一样使用粗体(\bfseries)和意大利体(\itshape) 的功能,并且重新定义了 \rmfamily 使他同时对中文其作用。 这样就默认了中文的字体组为rm,正常字体是宋体,粗体是黑体,意大利体是楷体,符合我们平时使用的习惯。

\documentclass[]{ctexart}
\begin{document}
我是一个人(宋体),\textbf{你呢(黑体)?}\textit{不是吧,是汪(楷体)!}
\end{document}

中文的字体族,在ctex宏包及其文档类下进行了一部分预定义,在win下配置了四种字体族,并提供了如下的简化命令来进行使用

\documentclass[]{article}
\usepackage{ctex}
\begin{document}
{\songti 我是宋体},{\heiti 我是黑体},{\fangsong 我是仿宋},{\kaishu 我是楷体}。
\end{document}


基本字体设置 #

但是上面的设置还是太落后了,因此,我们现在使用XeLaTeX。使用 fontspec 宏包来调用字体

**对于英文:**设置正文罗马字体族,无衬线字体族和打字机字体族

\setmainfont[可选选项]{字体名}
\setsansfont[可选选项]{字体名}
\setmonofont[可选选项]{字体名}
设置好之后,fontspec会自动找到并匹配相应的粗体,斜体等,令我们使用\bfseries\itshape也有效,若没有,那需要进行如下的设置。
\setmainfont[
       BoldFont       = texgyrepagella-bold.otf ,
       ItalicFont     = texgyrepagella-italic.otf ,
       BoldItalicFont = texgyrepagella-bolditalic.otf ]{texgyrepagella-regular.otf}

对于中文

\setCJKmainfont[可选选项]{字体名}
\setCJKsansfont[可选选项]{字体名}
\setCJKmonofont[可选选项]{字体名}
\setCJKfamilyfont{中文字体族}{字体名}
\documentclass[]{article}
\usepackage{ctex}
\usepackage{fontspec}
\setCJKmainfont[BoldFont = STLibian-SC-Regular,]{TpldKhangXiDictTrial}
\setCJKsansfont{DFWaWaSC-W5}
\setCJKmonofont{STXingkai-SC-Light}
\setCJKfamilyfont{qingsong}{FZQKBYSJW--GB1-0}
\begin{document}
\CJKfamily{qingsong}
锦瑟无端五十弦
\rmfamily
一弦一柱\textbf{思华年}
\sffamily
庄生晓梦迷蝴蝶
\ttfamily
望帝春深托杜鹃
\end{document}


正文局部字体更改 #

如何解决在文章内容中局部更换不常用字体

英文

几个字,几句话:定义一个新的命令即可

%重新定义新的字体族命令:
\newfontfamily<命令>[可选参数]{字体名}
%例:
\documentclass{article}
\usepackage{fontspec}
\newfontfamily\fugu{Luminari-Regular}
\newfontfamily\ptmr{PTMono-Regular}
\begin{document}
hello, {\ptmr everyone}. this is my blog---{\fugu yeyuqiudeng}
\end{document}

中文

%重新定义新的字体族命令:
\newCJKfontfamily<命令>[可选参数]{字体名}
%例:
\documentclass[]{article}
\usepackage{ctex}
\usepackage{fontspec}
\newCJKfontfamily\qingsong{FZQKBYSJW--GB1-0}
\begin{document}
锦瑟无端五十弦,\qingsong{一弦一柱思华年}
\end{document}


常用字体举例 #