CasperVector/pkuthss

增加 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}