我有几个自定义的字体系列如下:
\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}