Вытащить первый кириллический UTF-8 символ из макроса
Занимаюсь созданием пакета под свой универ, хочу, чтоб он работал на всех дистрибутивах LaTeX’a. Использую pdflatex. Сейчас мне необходимо получить первый символ из некой строки, «спрятанной» в команду. Например \newcommand\developerName{Иван}
. Проблема в том, что если использовать конструкцию
\def\firstchar#1{\getfc#1 \fc}
\def\getfc#1{\def\fc{#1}}
\firstchar{\developerName}
то #1 оказывается единым токеном и, соответственно, «съедается» одномоментно и полностью, честно возвращая «Иван» целиком.
Если же использовать
\def\firstchar#1{\expandafter\getfc#1 \fc}
\def\getfc#1{\def\fc{#1}}
\firstchar{\developerName}
то возникает ошибка ! LaTeX Error: Invalid UTF-8 byte "9A.
С xstring, всевозможными комбинациями edef, def и expandafter проблема либо аналогичная (вылезающая из двубайтности символов в UTF-8), либо со случайным неопределённым макросом.
Как мне получить первый символ из \developerName?
P.S. Конечная цель иметь 3 переменных, в которые пользователь вбивает свои имя, отчество и фамилию, а на выходе получает строки «И. О. Фамилия» и «Фамилия Имя Отчество». Для первой формы и надо вытаскивать первый символ.
Перемещено hobbit из general