增加 fontset 参数
Closed this issue · 4 comments
我想更改文档的字体:
\documentclass[UTF8, nopkufont]{pkuthss}
\usepackage[
backend = biber, style = caspervector, utf8,
sorting = ecnyt, giveninits = true
]{biblatex}
\usepackage{iftex, fancyvrb, hologo}
\usepackage{caption}
\setCJKmainfont{Noto Serif CJK SC}[BoldFont=Noto Sans CJK SC Medium,ItalicFont=FZKai-Z03]
\setCJKmonofont{Noto Sans Mono CJK SC}[BoldFont=Noto Sans Mono CJK SC Bold,ItalicFont=FZFangSong-Z02]
\DeclareCaptionFont{kaiti}{\CJKfontspec{FZKai-Z03}}
\captionsetup{font=kaiti}
我尝试的是这个方案,这样可以更改,但是会报warning Redefining CJKfamily '\CJKrmdefault'undefined (ctexbook) (FandolSong-Regular).
,按理来讲我应该使用 \usepackage[fontset=none]{ctex}
,但如果强行插入会报错Package 'ctex' can not be loaded with 'ctexbook' undefined
所以说最好就是能够加入ctex文档类的fontset参数并继承给ctexbook
在 \documentclass
一行前加
\PassOptionsToClass{fontset = none}{ctexbook}
没有用,lualatex和xelatex都试过了
在 \documentclass 一行前
也不是一行前,是在此之后,否则直接报错
PS:\usepackage{anyfontsize}
可以解决很多warning例如Size substitutions with differencesundefined (Font) up to 1.22pt have occurred.
也可以尝试直接改 pkuthss.cls
- -
解决方案:在pkuthss.cls
的第43行后面加一句\DeclareOption{fontset}{\thss@opt@gbkfalse\PassOptionsToClass{fontset}{ctexbook}}
这样就可以传递fontset
,如\documentclass[UTF8,fontset=windows,nopkufont,ugly,openany]{pkuthss}
,由于fontset
可能和pkufont
冲突,建议开nopkufont
然后如果fontset=none
的话,需要自定义\fangsong
等字体,如:
\setCJKmainfont{SimSun}[BoldFont=Noto Sans CJK SC Medium,ItalicFont=FZKai-Z03]
\setCJKsansfont{Noto Sans CJK SC Regular}[BoldFont=Noto Sans CJK SC Medium,ItalicFont=FZKai-Z03]
\setCJKmonofont{Noto Sans Mono CJK SC}[BoldFont=Noto Sans Mono CJK SC Bold,ItalicFont=FZFangSong-Z02]
\newCJKfontfamily\kaishu{FZKai-Z03}
\newCJKfontfamily\fangsong{FZFangSong-Z02}