diff options
Diffstat (limited to 'macros/unicodetex/latex/njuthesis/profile/font.sty')
-rw-r--r-- | macros/unicodetex/latex/njuthesis/profile/font.sty | 219 |
1 files changed, 219 insertions, 0 deletions
diff --git a/macros/unicodetex/latex/njuthesis/profile/font.sty b/macros/unicodetex/latex/njuthesis/profile/font.sty new file mode 100644 index 0000000000..d939fb4842 --- /dev/null +++ b/macros/unicodetex/latex/njuthesis/profile/font.sty @@ -0,0 +1,219 @@ +\ProvidesExplPackage{profile/font}{2021-09-11}{0.7.0}{NJU Thesis 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] +} + +% 字体判断 +\bool_if:NTF \nju_systemfont +% 根据操作系统自动选择相应字体 +{ + % 检测是否是 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 + } + } +} +{ + % 如果用户需要自定义字体 + % 此处需要使用\str_case_e而不是\str_case使宏展开为字符串 + \str_case_e:nn { \nju_customlatinfont } + { + { windows } { \set_latin_fontset_windows } + { macos } { \set_latin_fontset_macos } + { gyre } { \set_latin_fontset_gyre } + { null } {} + } + \str_case_e:nn { \nju_customchinesefont } + { + { windows } { \set_chinese_fontset_windows } + { macos } { \set_chinese_fontset_macos } + { gyre } { \set_chinese_fontset_gyre } + { founder } { \set_chinese_fontset_founder } + { noto } { \set_chinese_fontset_noto } + { null } {} + } +} +% 选择其他字体,请确保相应字体已安装 + +% 设置数学字体 (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}} |