\setmainfont 中“main”的用途是什么?

\setmainfont 中“main”的用途是什么?

在以下 MCE 中,默认字体是无衬线字体,就像默认情况下类的情况一样beamer。“主”字体(由 声明\setmainfont)与“默认”(“正常”)字体不同,而是“罗马”字体。

\documentclass{article}
\usepackage{fontspec}
\usepackage{xcolor}

\setmainfont{Punk Nova}[Color=red]
\setsansfont{QTAgateType}
\setmonofont{QTArabian}[Color=blue]

\renewcommand*\familydefault{\sfdefault}

\begin{document}
\begin{description}
\item[Default:] Test
\item[Roman:] \textrm{Test}
\item[Sans serif:] \textsf{Test}
\item[Monospace:] \texttt{Test}
\end{description}
\end{document}

所以:

  • 中“main”的用途是什么\setmainfont
  • 的目的不是\setmainfont声明罗马字体吗?如果是这样,为什么不叫这个命令呢\setromanfont

答案1

它设置默认字体(但仅限于你重置它之前)

如果你修改你的例子

\documentclass{article}
\usepackage{fontspec}
\usepackage{xcolor}

\normalfont \showthe\font
\setmainfont{Punk Nova}[Color=red]
\normalfont \showthe\font
\setsansfont{QTAgateType}
\setmonofont{QTArabian}[Color=blue]

\renewcommand*\familydefault{\sfdefault}

\begin{document}
\begin{description}


\item[Default:] Test
\item[Roman:] \textrm{Test}
\item[Sans serif:] \textsf{Test}

\item[Monospace:] \texttt{Test}
\end{description}
\end{document}

你得到

> \TU/lmr/m/n/10 .
<recently read> \font 
      
l.5 \normalfont \showthe\font

此时默认字体仍为拉丁现代罗马字体

然后你得到

> \TU/PunkNova(0)/m/n/10 .
<recently read> \font 
      
l.7 \normalfont \showthe\font

显示效果\setmainfont

然后你

\renewcommand*\familydefault{\sfdefault}

这将使默认字体选择您为 Sans serif 指定的任何字体。(beamer 在开始文档时也做了类似的事情)

相关内容