前言:fontspac宏包是最好用的字体设置宏包,在.cls模板文件中经常看见看到它的出现。下面要对它的相关参数进行介绍,大体知道它们干了什么即可,无需深究。
%% 字体设定
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\RequirePackage{fontspec}
% 英文字体设置 √
\setmainfont{MinionPro-It.otf} % 默认字体 √
\setsansfont{MyriadPro-Bold.otf} % 无衬线字体:一般大标题 √
\setmonofont{CourierStd-Bold.otf} % 等宽字体:排版程序代码 √
% 中文字体设置:CJK —— 共6个 √
% BoldFont:粗体 ItalicFont:斜体 √
% {}内是字体包名字,[]是细节参数的设置 √
\setCJKmainfont{fzss_GBK.ttf}[BoldFont={fzxbs_GBK.ttf},
ItalicFont={fzkt_GBK.ttf},
BoldItalicFont={fzfs_GBK.ttf}] % 默认字体 √
\setCJKsansfont{fzht_GBK.ttf} % 无衬线字体:同英文字体设置 √
\setCJKmonofont{fzzdx_GBK.ttf} % 等宽字体:同英文字体设置 √
\XeTeXlinebreaklocale "zh"
\XeTeXlinebreakskip = 0pt plus 1pt
% 改别名:把前面使用到的字体包换一个简单的“别名”代替 —— √
% 后面设定某些项目的字体时,直接用该简单的别名代替即可,无需再写全字体包名! √
% 下面标准格式,无需细究 √
\setCJKfamilyfont{fzss}{fzss_GBK.ttf}
\newcommand{\fzss}{\CJKfamily{fzss}}
\setCJKfamilyfont{fzxbs}{fzxbs_GBK.ttf}
\newcommand{\fzxbs}{\CJKfamily{fzxbs}}
\setCJKfamilyfont{fzhei}{fzht_GBK.ttf}
\newcommand{\fzhei}{\CJKfamily{fzhei}}
\setCJKfamilyfont{fzkai}{fzkt_GBK.ttf}
\newcommand{\fzkai}{\CJKfamily{fzkai}}
\setCJKfamilyfont{fzfs}{fzfs_GBK.ttf}
\newcommand{\fzfs}{\CJKfamily{fzfs}}
\setCJKfamilyfont{fzzdx}{fzzdx_GBK.ttf}
\newcommand{\fzzdx}{\CJKfamily{fzzdx}}
常出现的问题:字体包找不到!
字体设置最常出现的问题就是:使用第三方字体包时,经常出现找不到的情况!其报错情况如下:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! fontspec error: "font-not-found"
!
! The font "方正书宋_GBK" cannot be found.
!
! See the fontspec documentation for further information.
!
! For immediate help type H <return>.
!...............................................
解决:使用fontspac来进行第三方文字包的使用时,一般将文字包与.cls和.tex文件放在同一目录下,且第三方文字包的名字中一定不能带中文!!!我就是因为包名字带有中文一直报找到该包的错误!!
补充:
- 常见的字体包后缀有.otf和.ttf,两种格式在使用上没有区别!前者适用范围更广一些;
- 直接使用文字包的文件名时(如上所示),一般带上文件的后缀!虽然有些博客中说可以不用加后缀,但是我会报错!
- 若要使用多个第三方文字包,建议直接把它们和.cls和.tex放在同一路径下!不建议把要使用的多个文字包放在一个文件夹下,然后用[PATH]参数来设置!因为后者经常会报错(猜测程序会在当前目录下搜索文字包名,若找不到会自动去系统文字文件夹中搜索,好像设置PATH不起作用?)
网友评论