Fontspec & Newcommand:向 \newfontfamily 添加参数

Fontspec & Newcommand:向 \newfontfamily 添加参数

我需要帮助来定义命令的别名\newfontfamily

我需要的与 非常相似\textbf{aaa},但带有字体系列的命令,例如\Courier{aaa},这样只有参数才具有所需的字体。

类似于\newfontfamily{\Courier}{Courier{#1}。当然,这将是无效的语法,因为第二个参数不是命令,但你明白我的意思。

梅威瑟:

\documentclass{article}
\usepackage{fontspec}

%%% FONTSPEC %%%
\defaultfontfeatures[CourierPrime]{
    Extension={.ttf},
    UprightFont={*-Regular},
    BoldFont={*-Bold},
    ItalicFont={*-Italic},
    BoldItalicFont={*-BoldItalic},
}

\newfontfamily{\Courier}%
    {CourierPrime}
    \newcommand{\cp}{\Courier}

\begin{document}

\cp{This text shall be in Courier Prime}, while this shall not.

\end{document}

可以看到,逗号后面的短语依然是Courier 字体:

如图所示,逗号后面的短语实际上仍然是 Courier 字体。

答案1

当您已经有了类似 的开关时,LaTeX必须\DeclareTextFontCommand声明命令。它可以用作\textbf\bfseries\Courier

\documentclass{article}
\usepackage{fontspec}

%%% FONTSPEC %%%
\defaultfontfeatures[CourierPrime]{
    Extension={.ttf},
    UprightFont={*-Regular},
    BoldFont={*-Bold},
    ItalicFont={*-Italic},
    BoldItalicFont={*-BoldItalic},
}

\newfontfamily{\Courier}%
    {CourierPrime}
\DeclareTextFontCommand \textcourier \Courier

\begin{document}

\textcourier{This text shall be in Courier Prime}, while this shall not.

\end{document}

相关内容