我试图找出另一个问题的答案,这个问题需要在句子中间更改字体和大小。所以我尝试使用 and\begingroup
来\endgroup
隔离字体和大小的变化。结果是我想要的,但它仍然会抛出错误undefined control sequence
。我遗漏了什么?
\documentclass[8pt,a4paper]{article}
\usepackage{fontspec}
\usepackage{microtype}
\newfontfamily\csa{Dekar}
\newcommand{\abc}[1]{%
\begingroup\csa\footnotesize\textls[130]{#1}%
\endgroup\normalfont\normalfontsize
}
\begin{document}
Hello Kitty \abc{DIN 103} by Sanrio.
\end{document}
我正在考虑的问题是:如何设置标准的名称或者标准元件的名称?
答案1
你得到的错误是
! Undefined control sequence.
\abc ...{#1}\endgroup \normalfont \normalfontsize
l.14 Hello Kitty \abc{DIN 103}
by Sanrio.
这意味着未定义的控制序列是\normalfontsize
。
另一方面,你不需要恢复字体和大小,因为组已经限制了范围。
我猜 Dekar 字体相当大;您可以通过以某个比例加载它来避免设置大小。例如
\newfontfamily{\csa}{Dekar}[Scale=MatchUppercase]
定义可以变成
\newcommand{\abc}[1]{%
{\csa\textls[130]{#1}}%
}
您MatchUppercase
可以指定一个因素,例如0.75
;进行实验以找到所需的放大倍数。