我想更改标题中的字体,因此我尝试了以下代码:
\documentclass[11pt]{book}
\usepackage{fontspec}
\setmainfont[Mapping=tex-text]{Times New Roman}
\newfontfamily\myfont[Mapping=tex-text, Numbers=Lining]{Ubuntu Condensed}
\usepackage[font=\myfont, labelfont=bf]{caption}
\begin{document}
This is text font
\begin{figure}[htp]
\caption{ ... and this should be the figure font}
\end{figure}
\end{document}
这似乎不起作用,显然这font=\myfont
是错误的,但我不知道如何改变它。
任何想法都将受到赞赏。
答案1
您应该事先声明您的字体。
\documentclass[11pt]{book}
\usepackage{fontspec}
\setmainfont[Mapping=tex-text]{Times New Roman}
\newfontfamily\myfont[Mapping=tex-text, Numbers=Lining]{Ubuntu Condensed}
\usepackage{caption}
\DeclareCaptionFont{quack}{\myfont}
\captionsetup{font=quack, labelfont=bf}
\begin{document}
This is text font
\begin{figure}[htp]
\caption{ ... and this should be the figure font}
\end{figure}
\end{document}
答案2
最简单的策略是将 Ubuntu Condensed 声明为无衬线字体。您不会在同一个文档中使用两种不同的无衬线字体,对吧?;-)
\documentclass[11pt]{book}
\usepackage{fontspec}
\usepackage{caption}
\setmainfont{Times New Roman}
\setsansfont{Ubuntu Condensed}
\captionsetup{font=sf}
\begin{document}
This is text font
\begin{figure}[htp]
\caption{ ... and this should be the figure font}
\end{figure}
\end{document}
请注意,该Mapping=tex-text
选项已弃用,应为Ligatures=TeX
,但不需要指定,因为它是默认加载的。
此外,Ubuntu Condensed 没有粗体变体,因此labelfont=bf
毫无用处。该字体也只有一种数字选择(衬线)。
输出相同\newfontfamily
:
\documentclass[11pt]{book}
\usepackage{fontspec}
\usepackage{caption}
\setmainfont{Times New Roman}
\newfontfamily{\ubuntufont}{Ubuntu Condensed}
\DeclareCaptionFont{ubuntu}{\ubuntufont}
\captionsetup{font=ubuntu}
\begin{document}
This is text font
\begin{figure}[htp]
\caption{ ... and this should be the figure font}
\end{figure}
\end{document}