\ProvidesExplPackage{profile/font}{2021-09-04}{0.1}{NJU Thesis Undergraduate font configuration} % \RequireXeTeX % \RequireLuaTeX % 设置西文字体 \NewDocumentCommand\set_latin_fontset_windows{}{ \setmainfont{Times~New~Roman} \setsansfont{Arial} \setmonofont{Courier~New}[Scale=MatchLowercase] } \NewDocumentCommand\set_latin_fontset_macos{}{ \setmainfont{Times~New~Roman} \setsansfont{Arial} \setmonofont{Menlo}[Scale=MatchLowercase] } \NewDocumentCommand\set_latin_fontset_gyre{}{ \setmainfont{texgyretermes}[ Extension=.otf, UprightFont=*-regular, BoldFont=*-bold, ItalicFont=*-italic, BoldItalicFont=*-bolditalic] \setsansfont{texgyreheros}[ Extension=.otf, UprightFont=*-regular, BoldFont=*-bold, ItalicFont=*-italic, BoldItalicFont=*-bolditalic] \setmonofont{texgyrecursor}[ Extension=.otf, UprightFont=*-regular, BoldFont=*-bold, ItalicFont=*-italic, BoldItalicFont=*-bolditalic, Scale=MatchLowercase, Ligatures=CommonOff] } % 设置中文字体 \NewDocumentCommand\set_chinese_fontset_windows{}{ \setCJKmainfont{SimSun}[ AutoFakeBold=2.17, ItalicFont=KaiTi] \setCJKsansfont{SimHei} \setCJKmonofont{FangSong} \setCJKfamilyfont{zhsong}{SimSun}[AutoFakeBold=2.17] \setCJKfamilyfont{zhhei}{SimHei} \setCJKfamilyfont{zhfs}{FangSong} \setCJKfamilyfont{zhkai}{KaiTi}[AutoFakeBold=2.17] \setCJKfamilyfont{zhnewhei}{Microsoft~YaHei}[BoldFont=Microsoft~YaHei~Bold] } \NewDocumentCommand\set_chinese_fontset_macos{}{ \msg_redirect_name:nnn {fontspec} {no-script} {info} % 移除 does not contain script "CJK" 警告 \setCJKmainfont{Songti~SC~Light}[ BoldFont=Songti~SC~Bold, ItalicFont=Kaiti~SC, BoldItalicFont=Kaiti~SC~Bold] \setCJKsansfont{Heiti~SC~Light}[BoldFont=Heiti~SC~Medium] \setCJKmonofont{STFangsong} \setCJKfamilyfont{zhsong}{Songti~SC~Light}[BoldFont=Songti~SC~Bold] \setCJKfamilyfont{zhhei}{Heiti~SC~Light}[BoldFont=Heiti~SC~Medium] \setCJKfamilyfont{zhfs}{STFangsong} \setCJKfamilyfont{zhkai}{Kaiti~SC}[BoldFont=Kaiti~SC~Bold] \setCJKfamilyfont{zhnewhei}{PingFang~SC} } \NewDocumentCommand\set_chinese_fontset_fandol{}{ \msg_redirect_name:nnn {fontspec} {no-script} {info} % 移除 does not contain script "CJK" 警告 \setCJKmainfont{FandolSong-Regular}[ Extension=.otf, BoldFont=FandolSong-Bold, ItalicFont=FandolKai-Regular] \setCJKsansfont{FandolHei-Regular}[ Extension=.otf, BoldFont=FandolHei-Bold] \setCJKmonofont{FandolFang-Regular}[Extension=.otf] \setCJKfamilyfont{zhsong}{FandolSong-Regular}[ Extension=.otf, BoldFont=FandolSong-Bold] \setCJKfamilyfont{zhhei}{FandolHei-Regular}[ Extension=.otf, BoldFont=FandolHei-Bold] \setCJKfamilyfont{zhfs}{FandolFang-Regular}[Extension=.otf] \setCJKfamilyfont{zhkai}{FandolKai-Regular}[ Extension=.otf, AutoFakeBold=2.17] } % 方正字符集 \NewDocumentCommand\set_chinese_fontset_founder{}{ % FZSSK 方正书宋(简繁扩展) http://www.foundertype.com/index.php/FontInfo/index/id/151 免费商用 % FZXBSK 方正小标宋(简繁扩展) http://www.foundertype.com/index.php/FontInfo/index/id/164 设计师非商免费 % FZKTK 方正楷体(简繁扩展) http://www.foundertype.com/index.php/FontInfo/index/id/137 免费商用 \setCJKmainfont{FZSSK}[ Extension=.ttf, BoldFont=FZXBSK, ItalicFont=FZKTK] % FZXH1K 方正细黑一(简繁扩展) http://www.foundertype.com/index.php/FontInfo/index/id/161 设计师非商免费 % FZHTK 方正黑体(简繁扩展) http://www.foundertype.com/index.php/FontInfo/index/id/131 免费商用 \setCJKsansfont{FZXH1K}[ Extension=.ttf, BoldFont=FZHTK] % FZFSK 方正仿宋(简繁扩展) http://www.foundertype.com/index.php/FontInfo/index/id/128 \setCJKmonofont{FZFSK}[Extension=.ttf] \setCJKfamilyfont{zhsong}{FZSSK}[ Extension=.ttf, BoldFont=FZXBSK] \setCJKfamilyfont{zhhei}{FZHTK}[ Extension=.ttf, AutoFakeBold=2.17] \setCJKfamilyfont{zhfs}{FZFSK}[Extension=.ttf] \setCJKfamilyfont{zhkai}{FZKTK}[Extension=.ttf] % FZYouHK_508R 方正悠黑508R(简繁扩展) http://www.foundertype.com/index.php/FontInfo/index/id/244 设计师非商免费 % FZYouHK_511M 方正悠黑511M(简繁扩展) http://www.foundertype.com/index.php/FontInfo/index/id/244 设计师非商免费 \setCJKfamilyfont{zhnewhei}{FZYouHK_508R}[ Extension=.ttf, BoldFont=FZYouHK_511M] } \NewDocumentCommand\set_chinese_fontset_noto{}{ % 思源宋体 https://www.google.com/get/noto/#serif-hans \setCJKmainfont[ UprightFont=NotoSerifCJKsc-Regular, BoldFont=NotoSerifCJKsc-Bold, ItalicFont=NotoSerifCJKsc-Regular, BoldItalicFont=NotoSerifCJKsc-Bold, ItalicFeatures=FakeSlant, BoldItalicFeatures=FakeSlant]{Noto~Serif~CJK~SC} % 思源黑体 https://www.google.com/get/noto/#sans-hans \setCJKsansfont[ UprightFont=NotoSansCJKsc-Regular, BoldFont=NotoSansCJKsc-Bold, ItalicFont=NotoSansCJKsc-Regular, BoldItalicFont=NotoSansCJKsc-Bold, ItalicFeatures=FakeSlant, BoldItalicFeatures=FakeSlant]{Noto~Sans~CJK~SC} % 包含于上述思源黑体 \setCJKmonofont[ UprightFont=NotoSansMonoCJKsc-Regular, BoldFont=NotoSansMonoCJKsc-Bold, ItalicFont=NotoSansMonoCJKsc-Regular, BoldItalicFont=NotoSansMonoCJKsc-Bold, ItalicFeatures=FakeSlant, BoldItalicFeatures=FakeSlant]{Noto~Sans~Mono~SC} \setCJKfamilyfont{zhsong}{Noto~Serif~CJK~SC} \setCJKfamilyfont{zhhei}{Noto~Sans~CJK~SC} % 方正楷体、方正仿宋为免费商用字体,且支持CJK字符集 % 方正仿宋 http://www.foundertype.com/index.php/FontInfo/index/id/128.html % 方正楷体 http://www.foundertype.com/index.php/FontInfo/index/id/137.html \setCJKfamilyfont{zhfs}{方正仿宋简体}[AutoFakeBold=2.17] \setCJKfamilyfont{zhkai}{方正楷体简体}[AutoFakeBold=2.17] } % 根据操作系统选择相应字体 \ifUseSysFont % 检测是否是 Windows \sys_if_platform_windows:TF { \set_latin_fontset_windows \set_chinese_fontset_windows } { % 检测是否是 macOS \ctex_if_platform_macos:TF { \set_latin_fontset_macos \set_chinese_fontset_macos } % 其余系统一律使用自由字体 { \set_latin_fontset_gyre \set_chinese_fontset_fandol } } \else% 如果用户需要自定义 % tl_case:Nn 只能实现宏和宏之间的比较,不能直接实现字符串和宏的比较,无奈出此下策,希望之后能找到更优雅的写法 \tl_const:Nn \usingwindows {windows} \tl_const:Nn \usingmacos {macos} \tl_const:Nn \usingfandol {fandol} \tl_const:Nn \usinggyre {gyre} \tl_const:Nn \usingfounder {founder} \tl_const:Nn \usingnoto {noto} \tl_const:Nn \usingnull {null} \tl_case:Nn {\CustomEnFont} { \usingwindows{\set_latin_fontset_windows} \usingmacos{\set_latin_fontset_macos} \usinggyre{\set_latin_fontset_gyre} \usingnull{} } \tl_case:Nn {\CustomZhFont} { \usingwindows{\set_chinese_fontset_windows} \usingmacos{\set_chinese_fontset_macos} \usingfandol{\set_chinese_fontset_fandol} \usingfounder{\set_chinese_fontset_founder}% 使用方正字体 \usingnoto{\set_chinese_fontset_noto}% 使用思源宋体+思源黑体 \usingnull{} } \fi % 选择其他字体,请确保相应字体已安装 % 设置数学字体 (XITS, 或者 STIX, 与 Times New Roman 最为相近) % \setmathfont{STIXTwoMath-Regular}[Extension = .otf] \setmathfont{XITSMath-Regular}[ BoldFont = XITSMath-Bold, Extension = .otf] \NewDocumentCommand\songti{}{\CJKfamily{zhsong}} \NewDocumentCommand\heiti{}{\CJKfamily{zhhei}} \NewDocumentCommand\fangsong{}{\CJKfamily{zhfs}} \NewDocumentCommand\kaishu{}{\CJKfamily{zhkai}} % \NewDocumentCommand\lishu{}{\CJKfamily{zhli}}