分组和未定义的控制序列错误

分组和未定义的控制序列错误

我试图找出另一个问题的答案,这个问题需要在句子中间更改字体和大小。所以我尝试使用 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;进行实验以找到所需的放大倍数。

相关内容