\DeclareTextFontCommand 和 \textsl、\textbf,

\DeclareTextFontCommand 和 \textsl、\textbf,

我正在编写一份文档,该文档使用该fontspec包来确保主字体、无衬线字体和等宽字体使用公司字体。这工作正常。

\usepackage{fontspec}
\setmainfont[
    ItalicFont={Hoefler Text Regular Italic},
    SmallCapsFont={Hoefler Text Roman SC},
    BoldFeatures={
        SmallCapsFont={Hoefler Text Bold SC}
    },
    ItalicFeatures={
        SmallCapsFont={Hoefler Text Regular Italic SC}
    },
    BoldItalicFeatures={
        SmallCapsFont={Hoefler Text Bold Italic SC}
    },
]{Hoefler Text}

\usepackage{biolinum}
\setsansfont[
    Numbers=OldStyle,
    BoldFont={LinBiolinumOB},
    ItalicFont={LinBiolinumOI},
    BoldItalicFont={LinBiolinumOBO},
]{LinBiolinumO}

\usepackage{sourcecodepro}

问题是,我还需要将段落设置为“Computer Modern”字体。因此,我在序言中添加了以下内容:

\newcommand*{\computermodern}{\fontfamily{cmr}\selectfont}
\newenvironment{cmfont}{\fontfamily{cmr}\selectfont}{\par}
\DeclareTextFontCommand{\textcm}{\computermodern}

\begin{cmfont}和之间的段落\end{cmfont}设置为 Computer Modern 字体,但其他格式信息(如斜体、倾斜、粗体等)被忽略。我如何才能实现这一点?

提前致谢。

答案1

使用 Latin Modern 字体而不是 Computer Modern 字体解决了这个问题。

只需包含 lmodern 包\usepackage{lmodern}并将自引入的字体命令更改为:

\newcommand*{\latinmodern}{\fontfamily{lmr}\selectfont}
\newenvironment{lmfont}{\fontfamily{lmr}\selectfont}{\par}
\DeclareTextFontCommand{\textlm}{\latinmodern}
\newcommand*{\latinmodernsans}{\fontfamily{lmss}\selectfont}
\newenvironment{lmsfont}{\fontfamily{lmss}\selectfont}{\par}
\DeclareTextFontCommand{\textlms}{\latinmodernsans}
\newcommand*{\latinmoderntype}{\fontfamily{lmtt}\selectfont}
\newenvironment{lmtfont}{\fontfamily{lmtt}\selectfont}{\par}
\DeclareTextFontCommand{\textlmt}{\latinmoderntype}

这也使得访问拉丁现代字体的无衬线和打字机字体成为可能。

相关内容