从自定义字体系列设置字体类型

从自定义字体系列设置字体类型

我有几个自定义的字体系列如下:

\usepackage{fontspec} 
\usepackage{xltxtra}
\usepackage{xunicode}

\newfontfamily\anonymous{AnonymousPro}[
Path            =   ./Fonts/Anonymous/,
Extension       =   .ttf,
UprightFont     =   *-Regular,
BoldFont        =   *-Bold,
ItalicFont      =   *-Italic,
BoldItalicFont  =   *-BoldItalic
]  


\newfontfamily\galano{Galano-Classic}[
Path            =   ./Fonts/Galano/,
Extension       =   .otf,
UprightFont     =   *,
BoldFont        =   *-Bold,
]  

ETC。

这让我几乎可以无缝地通过创建一个块并调用字体系列名称来切换字体,例如

{\anonymous nice monospaced font}

我的问题是,现在如何告诉 LaTeX(XeLaTeX 编译)使用\anonymous等宽字体系列?

我知道,使用fontspec,我必须声明:

\setmainfont{Lato}[
Path            =   ./Fonts/Lato/,
Extension       =   .ttf,
UprightFont     =   *-Light,
BoldFont        =   *-Regular ,
ItalicFont      =   *-LightItalic ,
BoldItalicFont  =   *-Italic
]

而不是\setmainfont{\lato}(定义为上面的其他家族)。

那么我怎样才能简单地做到这一点?

答案1

您可以使用\defaultfontfeatures可选参数来定义字体名称,然后使用该名称:

\documentclass[a4paper]{article}

\usepackage{fontspec}

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

\setmonofont{AnonymousPro}

\newfontfamily\anonymous{AnonymousPro}

\begin{document}
Roman Text, \texttt{Monotype text}\par
{\fontspec{AnonymousPro} Monotype text}, roman text\par
{\anonymous Monotype text}, roman text

\end{document}

在此处输入图片描述

相关内容