重新定义 \bf、\it、\rm、\sl、\tt

重新定义 \bf、\it、\rm、\sl、\tt

以下代码编译后会生成一个文档,其中只有罗马字体的单词“проба”(第一段)。我怎样才能在其他段落中也包含该单词?

% Compile with luatex
\input{luaotfload.sty}
\font\f=FreeSerif\f
test проба
\par
\sl test проба
\par
\it test проба
\par
\bf test проба
\bye

答案1

在 Plain TeX 中没有字体选择方案。 的含义\bf

\fam\bffam \tenbf

前两个标记在数学模式下有意义,而\tenbf意思是

select font cmbx10

除非您重新定义的含义\tenbf,否则您将继续选择该cmbx10字体,当然该字体不包含西里尔字符。

% Compile with luatex
\input{luaotfload.sty}
\font\tenrm=FreeSerif
\font\tenbf=FreeSerifBold
\font\tenit=FreeSerifItalic
\rm % choose the upright font

test проба

%\sl test проба

\it test проба

\bf test проба

\bye

在此处输入图片描述

请注意,FreeSerif 没有倾斜变体,但可以伪造:

% Compile with luatex
\input{luaotfload.sty}
\font\tenrm=FreeSerif
\font\tenbf=FreeSerifBold
\font\tenit=FreeSerifItalic
\font\tensl=FreeSerif:+slant=0.2

\rm % choose the upright font

test проба

\sl test проба

\it test проба

\bf test проба

\bye

在此处输入图片描述

相关内容