\csname ... \endcsname no funciona con \newfontfamily

\csname ... \endcsname no funciona con \newfontfamily

Tengo un MWE a continuación que muestra mi problema (obtuve el esquema general del documento deesta respuesta:

\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}

Entonces, el problema aquí es que siento que lo que estoy tratando de reemplazar y lo que estoy tratando de reemplazar son equivalentes. Sin embargo, me arroja el siguiente error:

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

Entonces parece estar tomando solo la primera letra del argumento cyrillic, pero parece extraño mientras lo coloco en el \csname ... \endcsnameentorno. ¿Cómo debo hacer para solucionar este problema?

También lo intenté \expandafterantes de \newcommand, pero tampoco parece funcionar.

Respuesta1

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

\newfontfamilyno ve una secuencia de comandos, sino \csnamecomo primer argumento. \expandafter ayuda creando la secuencia de comandosantes \newfontfamilyanaliza sus argumentos:

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

información relacionada