尝试使用 \newfontfamily 时未定义的控制序列

尝试使用 \newfontfamily 时未定义的控制序列

文件结构为:

fonts
     Roboto-Regular.ttf
main.tex

该文件主要内容如下:

\documentclass{article}

\RequirePackage[utf8]{inputenc}
\RequirePackage{fontspec}

\newfontfamily [ Path = /fonts/,
 UprightFont = *-regular,
 BoldFont = *-bold, ...]
 {Roboto}

\title{TITLE}
\author{MY NAME}
\date{February 2018}

\begin{document}

\maketitle
\section{Introduction}

\end{document}

然后它给了我未定义的控制序列,缺少 \begin{document}。我尝试了很多方法,但还是搞不清楚我做错了什么。

编辑我也尝试过:

    \setmainfont{Roboto}[
    Path = /fonts/,
    Extension = .ttf,
    UprightFont = *-Regular,
    BoldFont = *-Bold,
    ItalicFont = *-Italic,
    ...
]

答案1

正如其他人在评论中指出的那样,你的用法\newfontfamily是错误的。而不是

\newfontfamily{Roboto}

它必须像

\newfontfamily\Roboto{Roboto}

然后,在文档正文中,写入... {\Roboto some text} ...

一个 MWE(最小工作示例),它使用\setmainfont、、\setsansfont和三个\newfontfamily语句(请注意,并不总是需要指定ItalicFont、、BoldFontBoldItalicFont选项):

在此处输入图片描述

\documentclass{article}
\RequirePackage{fontspec}

\setmainfont{Minion Pro}
\setsansfont{Myriad Pro}

\newfontfamily\Roboto{Roboto}
\newfontfamily\RobotoCond{Roboto Condensed}
\newfontfamily\RobotoMed{Roboto Medium}%
        [ItalicFont     = "Roboto Medium Italic",
         BoldFont       = "Roboto Black",
         BoldItalicFont = "Roboto Black Italic"]

\newcommand\hello{Hello World.}
\newcommand\blurb{\hello{} \textbf{\hello} \textit{\hello} \textbf{\textit{\hello}}}

\begin{document}

\blurb

{\sffamily \blurb}

\medskip
{\Roboto \blurb}

{\RobotoMed \blurb}

{\RobotoCond \blurb}
\end{document}

相关内容