Tex中使用fontspec宏包之各种坑
坑1
如果用Sublime编译时由于默认采用了pdfLatex进行编译,而fontspec宏包不是由其实现的,一般会出现
Fatal Package fontspec Error: The fontspec package requires either XeTeX or [\msg_fatal:nn {fontspec} {cannot-use-pdftex}]
解决办法
这个时候建议使用
xelatex
进行编译
xelatex o1.tex # 01.tex 为tex的源码
坑2
编译过程中可能报错其内容为可能带找不到字体的问题。具体内容可能如下:
(c:/texlive/2019/texmf-dist/tex/latex/ctex/fontset/ctex-fontset-windowsnew.def
kpathsea: Running mktextfm KaiTi/OT
The command name is C:\texlive\2019\bin\win32\mktextfm
kpathsea: Running mktexmf KaiTi/OT.mf
The command name is C:\texlive\2019\bin\win32\mktexmf
name = KaiTi/OT, rootname = KaiTi/OT, pointsize =
mktexmf: empty or non-existent rootfile!
Cannot find KaiTi/OT.mf.
kpathsea: Appending font creation commands to missfont.log.
kpathsea: Running mktextfm KaiTi/B/OT
其原因可能是相应的字体无法找到, 比如我电脑上的
楷体
的名字叫
楷体_GB2312
而非
KaiTi
解决办法
将文件
tex/latex/ctex/fontset/ctex-fontset-windowsnew.def
中的内容
\setCJKmainfont
[ BoldFont = SimHei , ItalicFont = KaiTi] { SimSun }
\setCJKsansfont
[ BoldFont = { *~Bold } ] { Microsoft~YaHei }
\setCJKmonofont { FangSong }
\setCJKfamilyfont { zhkai } { KaiTi }
修改为:
\setCJKmainfont
[ BoldFont = SimHei , ItalicFont = 楷体_GB2312 ] { SimSun }
\setCJKsansfont
[ BoldFont = { *~Bold } ] { Microsoft~YaHei }
\setCJKmonofont { FangSong }
\setCJKfamilyfont { zhkai } { 楷体_GB2312 }
最后再采用
xelatex
进行编译就可以编译通过了。
在我本机搜索到喊KaiTi字样的文件
Binary file doc/generic/latex-notes-zh-cn/latex-notes-zh-cn.pdf matches
doc/generic/zhspacing/zhs-man.tex:227: ItalicFont=KaiTi]{SimSun}
doc/generic/zhspacing/zhs-man.tex:229:\newfontfamily\zhttfont[BoldFont=SimHei]{KaiTi}
doc/generic/zhspacing/zhs-man.tex:336:punctuations using some fonts such as \fntname{KaiTi\_GB2312} etc. I've told
Binary file doc/latex/ctex-faq/ctex-faq.pdf matches
doc/latex/elegantbook/elegantbook-cn.tex:79:\setCJKmainfont[BoldFont={SimHei},ItalicFont={KaiTi}]{SimSun}
doc/latex/elegantbook/elegantbook-cn.tex:80:\setCJKsansfont[BoldFont={SimHei},ItalicFont={KaiTi}]{KaiTi}
doc/latex/elegantbook/elegantbook-cn.tex:81:\setCJKmonofont[BoldFont={SimHei},ItalicFont={KaiTi},Scale=0.7]{Microsoft YaHei}
doc/latex/elegantbook/elegantbook-en.tex:80:\setCJKmainfont[BoldFont={SimHei},ItalicFont={KaiTi}]{SimSun}
doc/latex/elegantbook/elegantbook-en.tex:81:\setCJKsansfont[BoldFont={SimHei},ItalicFont={KaiTi}]{KaiTi}
doc/latex/elegantbook/elegantbook-en.tex:82:\setCJKmonofont[BoldFont={SimHei},ItalicFont={KaiTi},Scale=0.7]{Microsoft YaHei}
Binary file doc/latex/seuthesis/sample-bachelor.pdf matches
Binary file doc/latex/seuthesis/seuthesis.pdf matches
Binary file doc/latex/xtuthesis/xtuthesis.pdf matches
doc/latex/zhlipsum/zhlipsum-en.tex:40:\setCJKmonofont{FangSong}[ItalicFont=KaiTi]
doc/luatex/luatexja/luatexja-zhfonts.tex:234: 楷体 & \texttt{simkai.ttf} & KaiTi & {\jfontspec{KaiTi}我能吞下玻
璃而不伤身体} \\
doc/plain/impatient-cn/fonts.tex:31: \def\kai{KaiTi}
doc/support/asymptote-faq-zh-cn/src/preamble_newnew.tex:10:\setCJKmainfont[BoldFont=SimHei,ItalicFont=KaiTi_GB2312]{SimSun}
doc/support/asymptote-manual-zh-cn/src/winfonts.tex:5:\setCJKmainfont[BoldFont={SimHei}, ItalicFont={KaiTi_GB2312}]{SimSun}
doc/support/asymptote-manual-zh-cn/src/winfonts.tex:9:\setCJKfamilyfont{rm}[BoldFont={SimHei}, ItalicFont={KaiTi_GB2312}]{SimSun} % 同 main
doc/support/asymptote-manual-zh-cn/src/winfonts.tex:14:\setCJKfamilyfont{kai}{KaiTi_GB2312}
doc/xelatex/xecjk/example/xeCJK-example-fallback.tex:13:\setCJKmainfont[AutoFakeBold,AutoFakeSlant]{KaiTi_GB2312}
doc/xelatex/xecjk/example/xeCJK-example-mathblock.tex:15:\setCJKmonofont{KaiTi}
doc/xelatex/xecjk/example/xeCJK-example-mathblock.tex:26: \setCJKmonofont [ #1 ] { KaiTi }
fonts/misc/cjk-gs-integrate/cjkgs-macos-removeonly.dat:477:Name: STKaiTi-TC-Bold
fonts/misc/cjk-gs-integrate/cjkgs-macos-removeonly.dat:487:Name: STKaiTi-TC-Regular
fonts/misc/cjk-gs-integrate/cjkgs-sinotype.dat:36:# index 2: STKaiTi-TC-Bold
fonts/misc/cjk-gs-integrate/cjkgs-sinotype.dat:39:# index 5: STKaiTi-TC-Regular
scripts/cjk-gs-integrate/cjk-gs-integrate.pl:2558:Name: KaiTi
source/latex/ctex/ctex.dtx:9705: [ BoldFont = SimHei , ItalicFont = KaiTi_GB2312 ] { SimSun }
source/latex/ctex/ctex.dtx:9708: \setCJKfamilyfont { zhkai } { KaiTi_GB2312 }
source/latex/ctex/ctex.dtx:9713: [ BoldFont = SimHei , ItalicFont = KaiTi ] { SimSun }
source/latex/ctex/ctex.dtx:9717: \setCJKfamilyfont { zhkai } { KaiTi }
source/latex/ctex/ctex.dtx:10652: {windowszhkai} {KaiTi} ,
source/latex/fduthesis/fduthesis.dtx:3492: \@@_set_cjk_font_kai:n { KaiTi }
source/latex/seuthesis/seuthesis.dtx:736:\setCJKfamilyfont{zhkai}{KaiTi}
source/latex/xduthesis/xduthesis.dtx:435:\setCJKmonofont{KaiTi_GB2312}
source/latex/xduthesis/xduthesis.dtx:439:\setCJKfamilyfont{kai}{KaiTi_GB2312}
source/latex/zhlipsum/zhlipsum.dtx:203:\setCJKmonofont{FangSong}[ItalicFont=KaiTi]
source/xelatex/mynsfc/mynsfc.dtx:262:\setCJKfamilyfont{kai}{KaiTi}
source/xelatex/xecjk/xeCJK.dtx:890:% \setCJKmainfont[AutoFakeBold,AutoFakeSlant]{KaiTi_GB2312}
source/xelatex/xecjk/xeCJK.dtx:895:% 之后,就设置了 |SimSun| 是 |KaiTi_GB2312| 的备用字体,而 |SimSun-ExtB| 是
source/xelatex/xecjk/xeCJK.dtx:955:% KaiTi,楷体
source/xelatex/xecjk/xeCJK.dtx:13335:\setCJKmainfont[AutoFakeBold,AutoFakeSlant]{KaiTi_GB2312}
source/xelatex/xecjk/xeCJK.dtx:13898:\setCJKmonofont{KaiTi}
source/xelatex/xecjk/xeCJK.dtx:13909: \setCJKmonofont [ #1 ] { KaiTi }
tex/context/base/mkii/font-chi.mkii:973:\definefontsynonym [SimplifiedChineseKaiTiRegular] [gbkai] [encoding=gbk]
tex/context/base/mkii/font-chi.mkii:974:\definefontsynonym [SimplifiedChineseKaiTiSlanted] [gbkaisl] [encoding=gbk]
tex/context/base/mkii/font-chi.mkii:975:\definefontsynonym [SimplifiedChineseKaiTiBold] [gbkai] [encoding=gbk]
tex/context/base/mkii/font-chi.mkii:976:\definefontsynonym [SimplifiedChineseKaiTiBoldSlanted] [gbkaisl] [encoding=gbk]
tex/context/base/mkii/font-chi.mkii:978:\definefontsynonym [TraditionalChineseKaiTiRegular] [b5kai] [encoding=big5]
tex/context/base/mkii/font-chi.mkii:979:\definefontsynonym [TraditionalChineseKaiTiSlanted] [b5kaisl] [encoding=big5]
tex/context/base/mkii/font-chi.mkii:980:\definefontsynonym [TraditionalChineseKaiTiBold] [b5kai] [encoding=big5]
tex/context/base/mkii/font-chi.mkii:981:\definefontsynonym [TraditionalChineseKaiTiBoldSlanted] [b5kaisl] [encoding=big5]
tex/context/base/mkii/font-chi.mkii:1012:\defineunicodefont [SimKaiTi] [SimplifiedChineseKaiTi] [chinese]
tex/context/base/mkii/font-chi.mkii:1013:\defineunicodefont [TraKaiTi] [TraditionalChineseKaiTi] [chinese]
tex/context/base/mkii/font-chi.mkii:1021:% \definealternativestyle [ChineseTitleFont] [\bfd\SimKaiTi] []
tex/generic/ctex/ctexmakespa.tex:57: {windowszhkai} {KaiTi} ,
tex/latex/ctex/fontset/ctex-fontset-windowsnew.def:97: [ BoldFont = SimHei , ItalicFont = KaiTi ] { SimSun } tex/latex/ctex/fontset/ctex-fontset-windowsnew.def:101: \setCJKfamilyfont { zhkai } { KaiTi }
tex/latex/ctex/fontset/ctex-fontset-windowsold.def:85: [ BoldFont = SimHei , ItalicFont = KaiTi_GB2312 ] { SimSun }
tex/latex/ctex/fontset/ctex-fontset-windowsold.def:88: \setCJKfamilyfont { zhkai } { KaiTi_GB2312 }
tex/latex/elegantbook/elegantbook.cls:58: \setCJKmainfont[BoldFont={SimHei},ItalicFont={KaiTi}]{SimSun}
tex/latex/elegantbook/elegantbook.cls:59: \setCJKsansfont[BoldFont={SimHei},ItalicFont={KaiTi}]{KaiTi}
tex/latex/elegantbook/elegantbook.cls:60: \setCJKmonofont[BoldFont={SimHei},ItalicFont={KaiTi},Scale=0.7]{Microsoft YaHei}
tex/latex/elegantbook/elegantbook.cls:68: \setCJKfamilyfont{zhkai}{KaiTi}
tex/latex/elegantnote/elegantnote.cls:55: \setCJKmainfont[BoldFont={SimHei},ItalicFont={KaiTi}]{SimSun}
tex/latex/elegantnote/elegantnote.cls:56: \setCJKsansfont[BoldFont={SimHei},ItalicFont={KaiTi}]{KaiTi}
tex/latex/elegantnote/elegantnote.cls:57: \setCJKmonofont[BoldFont={SimHei},ItalicFont={KaiTi},Scale=0.9]{Microsoft YaHei}
tex/latex/elegantnote/elegantnote.cls:65: \setCJKfamilyfont{zhkai}{KaiTi}
tex/latex/fduthesis/fduthesis-en.cls:511: \__fdu_set_cjk_font_kai:n { KaiTi }
tex/latex/fduthesis/fduthesis.cls:548: \__fdu_set_cjk_font_kai:n { KaiTi }
tex/latex/hithesis/ctex-fontset-siyuan.def:66: [ BoldFont = SimHei , ItalicFont = KaiTi ] { SourceHanSerifCN-Regular }
tex/latex/hithesis/ctex-fontset-siyuan.def:70: \setCJKfamilyfont { zhkai } { KaiTi }
tex/latex/xduthesis/xduthesis.cls:79:\setCJKmonofont{KaiTi_GB2312}
tex/latex/xduthesis/xduthesis.cls:83:\setCJKfamilyfont{kai}{KaiTi_GB2312}
tex/luatex/luatexja/addons/luatexja-zhfonts.sty:18:\newjfontface\kai{KaiTi}
tex/xelatex/mynsfc/mynsfc.cls:114:\setCJKfamilyfont{kai}{KaiTi}
版权声明:本文为maoye原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。