整个文档的字体选择

整个文档的字体选择

你好:)有人能告诉我如何使用fontspec字体文件名为整个文档选择字体(serif:常规/粗体/斜体/粗体斜体/小写,sans:常规/粗体/斜体)。并且至少为特殊场合选择一种装饰字体(不是整个文档),为方程式选择一种装饰字体。我是否应该设置字体系列,它们有什么区别?我正在与fontspec手册作斗争,我看到了几个选项,我完全迷失了。我发现了这个:

\fontspec
[ BoldFont = texgyrepagella-bold.otf ,
ItalicFont = texgyrepagella-italic.otf ,
BoldItalicFont = texgyrepagella-bolditalic.otf ]
{texgyrepagella-regular.otf}

但是如何设置其他字体?哪里可以获得示例?

答案1

通常fontspec根据字体的主名称处理各种粗体、斜体等字体的正确分配,因此您不必单独执行此操作,也不必使用实际的文件名。相反,您通常应该使用字体的名称,因为它会显示在系统上的桌面应用程序中。

在 中,有三个主要的常规字体选择命令需要了解fontspec

\setmainfont[options]{<fontname>} % sets the Roman font for the document
\setsansfont[options]{<fontname>} % sets the Sans Serif font for the document
\setmonofont[options]{<fontname>} % sets the Monospaced font for the document

如果需要将字体用于特殊用途,通常不需要\fontspec直接使用宏。相反,您应该使用:

\newfontfamily\foo[options]{<fontname>}

然后如果您需要使用该字体,您只需使用:

{\foo Some text in the special font}

这会将宏分配\foo给特殊字体。此宏的行为与其他字体系列命令完全相同,因为它是一个开关(而不是接受参数的命令),并且通常应包含在组中(通过括号或通过创建环境)。如果您想创建一个接受参数的命令,您可以添加以下内容:

\DeclareTextFontCommand{\textfoo}{\foo}

这将允许您使用字体\textfoo{<some text>}进行制作。<text>\foo

如果您确实需要使用文件名加载字体,则以下问题的答案中有详细说明:

请注意,本答案中描述的所有字体加载命令(\setmainfont\setsansfont等)都可以按照与该答案中的命令描述的完全相同的方式使用\fontspec

这是一个完整的示例。根据您的要求,我在示例中包含了使用直接文件名加载其中一种字体的内容。为了理解代码,请仔细阅读注释。为了按名称加载字体,您需要知道每个单独字体文件的确切名称;不同字体的这些名称会有所不同,并且通常区分大小写。在示例文档中,我将 sans 字体 TeX Gyre Adventor 放在名为的本地目录中,localfonts并按名称加载它。可以使用 XeLaTeX 或 LuaLaTeX 编译此文档。

% !TEX TS-program = LuaLaTeX

\documentclass[12pt]{article}
\usepackage[margin=1in]{geometry}
\usepackage{parskip}
\usepackage{fontspec}

\defaultfontfeatures{Ligatures=TeX}

\setmainfont{TeX Gyre Pagella}

% Now load the next font using its name and an explicit path
% The final / in the path name is required!
% In this example, I have created a directory called localfonts which
% is inside the directory containing the source document.
% So the path is relative to the source directory.
%  You can also use a full path if you like.
% The TeX Gyre fonts are named "texgyreadventor-regular.otf", 
% "texgyreadventor-italic.otf" etc. so this scheme is used to form the
% template for assigning the different font faces to the file name.
% The main name of the font goes in the {} argument, and the different
% faces go into the optional [] part of the command.  The font only has four
% faces, so these are the only ones defined.
%
\setsansfont[Path=localfonts/,
Scale=MatchLowercase,
UprightFont = *-regular, 
BoldFont = *-bold,
ItalicFont = *-italic,
BoldItalicFont = *-bolditalic
]{texgyreadventor}

\setmonofont[Scale=MatchLowercase]{Linux Biolinum O}

% Now create a new font family for the special font.
% This creates a font switch macro \cursivefont which works
% like \sffamily
\newfontfamily\cursivefont[Scale=MatchLowercase]{TeX Gyre Chorus}

% Now create an equivalent command that takes an argument
% This creates a \cursive{} macro.
\DeclareTextFontCommand{\cursive}{\cursivefont}


\begin{document}
The main font will be Pagella. The \textbf{bold} and \emph{italics} work as 
you would expect.


{\sffamily You can use \verb|\sffamily| as normal to \emph{switch} to the
\textbf{sans font}. Of course verbatim text will show up in the mono font as the
 verbatim section of this sentence did.}

{\cursivefont This text is in the cursive font.}

\cursive{This is also in cursive}
\end{document}

代码输出

相关内容