Thank you, Clemens, for your help. Unfortunately, it seems that, in my actual document, the command
\addDes
(which is the analogue of
\addVoice
in the MWE) is not expandable:
Code: Select all
\documentclass{article}
\usepackage[polutonikogreek,italian]{babel}
\usepackage[latin1]{inputenc}
\usepackage{hanging}
\usepackage{type1ec}
\usepackage{etoolbox}
\usepackage{xparse}
\usepackage{mfirstuc}
% counters declarations
\newcounter{formlist}
\newcounter{meaninglist}
\newcounter{verblist}
\newcounter{rvlist}
% general definitions
\newcommand{\gr}[1]{\begin{otherlanguage*}{greek}#1\end{otherlanguage*}}
\newcommand{\aum}[2]{#1\ifstrempty{#1}{\`e#2}{\`#2}}
% definitions for command \entry
\newcommand{\addForm}[1]{\stepcounter{formlist}\ifnumequal{\theformlist}{1}{\markboth{#1}{#1}}{, }#1}
\newcommand{\addMeaning}[1]{\stepcounter{meaninglist}\ifnumequal{\themeaninglist}{1}{}{. }\makefirstuc{#1}}
\NewDocumentCommand{\entry}{>{\SplitList{;}}m m >{\SplitList{;}}m m}%
{\setcounter{formlist}{0}\hangpara{2em}{1}\textbf{\ProcessList{#1}{\addForm}}\ifstrempty{#4}{}{ [#4]} \emph{#2}\ \setcounter{meaninglist}{0}\ProcessList{#3}{\addMeaning}\par}
% definitions for command \verbo
\newcommand{\iv}[1]{%
\ifnumequal{\theverblist}{1}{; \emph{txt1.\ \emph{#1}}}{}%
\ifnumequal{\theverblist}{2}{; \emph{txt2.\ \emph{#1}}}{}%
\ifnumequal{\theverblist}{3}{; \emph{txt3.\ \emph{#1}}}{}%
\ifnumequal{\theverblist}{4}{; \emph{txt4.\ \emph{#1}}}{}%
\ifnumequal{\theverblist}{5}{; \emph{txt5.\ \emph{#1}}}{}%
\ifnumequal{\theverblist}{6}{; \emph{txt6.\ \emph{#1}}}{}%
\ifnumequal{\theverblist}{7}{, #1}{}%
\ifnumequal{\theverblist}{8}{; \emph{txt7.\ \emph{#1}}}{}%
\ifnumequal{\theverblist}{9}{; \emph{txt8.\ \emph{#1}}}{}%
\ifnumequal{\theverblist}{10}{; \emph{txt9.\ \emph{#1}}}{}%
\ifnumequal{\theverblist}{11}{; \emph{txt10.\ \emph{#1}}}{}%
\ifnumequal{\theverblist}{12}{; \emph{txt11.\ \emph{#1}}}{}%
\ifnumequal{\theverblist}{13}{; \emph{txt12.\ \emph{#1}}}{}%
\ifnumequal{\theverblist}{14}{; \emph{txt13.\ \emph{#1}}}{}%
\ifnumequal{\theverblist}{15}{; \emph{txt14.\ \emph{#1}}}{}%
\ifnumequal{\theverblist}{16}{; \emph{txt15.\ \emph{#1}}}{}%
\ifnumequal{\theverblist}{17}{, #1}{}%
\ifnumequal{\theverblist}{18}{; \emph{txt16.\ \emph{#1}}}{}%
\ifnumequal{\theverblist}{19}{; \emph{txt17.\ \emph{#1}}}{}%
\ifnumequal{\theverblist}{20}{; \emph{txt18.\ \emph{#1}}}{}%
}
\newcommand{\addConjug}[1]{\stepcounter{verblist}\ifstrempty{#1}{}{\iv{#1}}}
\NewDocumentCommand{\verbo}{>{\SplitList{;}}m m m m m}%
{\setcounter{verblist}{0}%
\entry{#2}{\ifdefequal{#3}{1}{v.\ tr.}{v.\ intr.}\ProcessList{#1}{\addConjug}}{#4}{#5}}
% definitions for command \verboreg
\newcommand{\rva}{}
\newcommand{\rvb}{}
\newcommand{\rvt}{}
\newcommand{\rv}[1]{%
\ifnumequal{\thervlist}{1}{\aum{\rva}{\rvb}#1}{}%
\ifnumequal{\thervlist}{2}{xxx \rva\rvb#1}{}%
\ifnumequal{\thervlist}{3}{\aum{\rva}{\rvb}#1}{}%
\ifnumequal{\thervlist}{4}{yyy \rva\rvb#1}{}%
\ifnumequal{\thervlist}{5}{zzz \rva\rvb#1}{}%
\ifnumequal{\thervlist}{6}{\rva\rvb#1}{}%
\ifnumequal{\thervlist}{7}{\rva\rvb#1}{}%
\ifnumequal{\thervlist}{8}{\rva\rvb#1}{}%
\ifnumequal{\thervlist}{9}{\rva\rvb#1}{}%
\ifnumequal{\thervlist}{10}{\rva\rvb#1}{}%
%\ifdefequal{\rvt}{1}{%
\ifnumequal{\thervlist}{11}{\rva\rvb#1}{}%
\ifnumequal{\thervlist}{12}{\rva\rvb#1}{}%
\ifnumequal{\thervlist}{13}{\rva\rvb#1}{}%
\ifnumequal{\thervlist}{14}{\rva\rvb#1}{}%
\ifnumequal{\thervlist}{15}{\rva\rvb#1}{}%
\ifnumequal{\thervlist}{16}{\rva\rvb#1}{}%
\ifnumequal{\thervlist}{17}{\rva\rvb#1}{}%
\ifnumequal{\thervlist}{18}{\rva\rvb#1}{}%
\ifnumequal{\thervlist}{19}{\rva\rvb#1}{}%
%}{}%
\ifnumequal{\thervlist}{20}{\rva\rvb#1}{;}%
}
\newcommand{\addDes}[1]{\stepcounter{rvlist}\ifstrempty{#1}{}{\rv{#1}}}
\NewDocumentCommand{\verboreg}{m m m m m m >{\SplitList{;}}m}%
{\setcounter{rvlist}{0}%
\renewcommand{\rva}{#1}%
\renewcommand{\rvb}{#2}%
\renewcommand{\rvt}{#4}%
\edef\verboregAux{\ProcessList{#7}{\addDes}}%
\expandafter\verbo\expandafter{\verboregAux}{#1#2#3}{#4}{#5}{#6}}
% definition of end_user command \anno
\newcommand{\anno}[6]%
{\verboreg{#1}{#2}{#3}{#4}{#5}{#6}{bla1;bla2;bla3;blà4;bla5;bla6;bla7;bla8;bla9;bla10;bla11;bla12;bla13;bla14;blò15;bla16;bla17;bla18;blù19;bla20}}
\begin{document}
text
\anno{aaa}{bbb}{ccc}{1}{Some recent text.}{\gr{some ancient text}}
\end{document}
Would you have any idea on how to solve that problem?
Best,
Giuseppe