Skip to content

想问一下 tg termes 字体设置中一部分代码的原理 #802

Answered by AlexaraWu
syvshc asked this question in 提问
Discussion options

You must be logged in to vote

这里的道理其实很简单,以下是 newtxmath 设置字体的部分代码:

\DeclareMathAlphabet{\mathsf}{\encodingdefault}{\sfdefault}{m}{n}
\DeclareMathAlphabet{\mathit}{\tx@enc}{\rmdefaultB}{m}{it}
\DeclareMathAlphabet{\mathtt}{\encodingdefault}{\ttdefault}{m}{n}
\DeclareSymbolFontAlphabet{\mathrm}{operators}

可以看到 newtxmath 会使用当前的 \encodingdefault, \rmdefault, \sfdefault, \ttdefault 来设置 operators, \mathrm, \mathsf, \mathtt 字体。

termes 字体设置这段代码做的就是在局部设置 \encodingdefault, \rmdefault, \sfdefault, \ttdefaultnewtxtext 中的默认值,再加载 newtxmath 包。(\RequirePackage[T1]{fontenc} 的主要作用就是 \def\encodingdefault{T1}

因为 ctex 包使用 fontspec 来设置 CJK 字体。为了不在正文环境中混用 OpenType 和 Type 1 字体,SJTUThesis 统一使用 fontspec 来设置正文中使用 OpenType 西文字体。因此我们不直接使用 newt…

Replies: 3 comments 6 replies

Comment options

You must be logged in to vote
0 replies
Comment options

You must be logged in to vote
2 replies
@syvshc
Comment options

@AlexaraWu
Comment options

Answer selected by syvshc
Comment options

You must be logged in to vote
4 replies
@syvshc
Comment options

@AlexaraWu
Comment options

@syvshc
Comment options

@syvshc
Comment options

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
提问
Labels
None yet
2 participants