\csname ... \endcsname não funciona com \newfontfamily

\csname ... \endcsname não funciona com \newfontfamily

Tenho um MWE abaixo mostrando meu problema (obtive o esboço geral do documento emesta resposta:

\documentclass[twoside]{scrartcl}

\usepackage{fontspec}
\usepackage{polyglossia}
\usepackage{microtype}
\usepackage{lipsum}

\newfontfamily\cyrillicfontsf{CMU Sans Serif}[Script=Cyrillic]

% What I'm trying to replace
% \newfontfamily\cyrillicfont{CMU Serif}[Script=Cyrillic]

% What I'm trying to replace it with
\newcommand\mycommand[2]{\newfontfamily\csname#1font\endcsname{#2}[Script=Cyrillic]}
\mycommand{cyrillic}{CMU Serif}

\setmainlanguage{ukrainian}

\begin{document}
\author{А.В. Тор}
\title{Великий об'єм }
\maketitle
\section{Перший}
\lipsum[1-2]
\end{document}

Portanto, o problema aqui é que sinto que o que estou tentando substituir e o que estou tentando substituir são equivalentes. No entanto, recebo o seguinte erro:

fontspec error: "font-not-found"
! 
! The font "c" cannot be found.
! 
! See the fontspec documentation for further information.
! 
! For immediate help type H <return>.
!............................................... 

Então parece estar pegando apenas a primeira letra do argumento cyrillic, mas isso parece estranho pois estou colocando no \csname ... \endcsnameambiente. Como devo proceder para consertar isso?

Eu também tentei \expandafterantes do \newcommand, mas também não parece funcionar.

Responder1

\newcommand\mycommand[2]{\newfontfamily\csname#1font\endcsname{#2}[Script=Cyrillic]}

\newfontfamilynão vê uma sequência de comando, mas \csnamecomo primeiro argumento. \expandafterajuda criando a sequência de comandosantes \newfontfamilyanalisa seus argumentos:

\newcommand\mycommand[2]{\expandafter\newfontfamily\csname#1font\endcsname{#2}[Script=Cyrillic]}

informação relacionada