با تشکر از وفا و سید جواد به خاطر توجه و پاسخگویی درست به پرسش. روش های گفته شده حتما مفید و کاربردی است. با جستجو در منابع دیگر به پاسخی رسیده ام که به نظرم قابلیت های زیادی برای ما فراهم می کند. در این پاسخ تعداد ورودی ها هیچ محدودیتی ندارد. استفاده از دستور هم تا حدودی راحت تر است. با استفاده از بسته etoolbox
و دستور زیر می توان یک دنباله از یک دستور را اجرا کرد:
\newcommand\sequence[2][\Rightarrow]
{ \def\nextitem{\def\nextitem{#1}}
\renewcommand*\do[1]{\nextitem##1}
\docsvlist{#2} }
در این صورت دستور مورد نظر به صورت زیر است که همه ورودی ها به جای آنکه مجزا باشند با هم آورده می شوند و این به سادگی کار خیلی کمک می کند.
$\sequence{َA,B,C,D}$\\
$\sequence{َA,B,C}$\\
$\sequence{َA,B}$\\
$\sequence{َA}$\\
علاوه بر این می توان دستورات دیگری را همراه با این دستور در متن استفاده کرد بدون آنکه نیاز به تعریف مجدد باشد. مثلا به صورت زیر:
$\sequence[\searrow]{u,v,w,x,y,z}$\\
$\sequence[\nearrow]{x,y,z}$\\
کد کامل زیر در نظر می گیریم:
\documentclass{article}
\usepackage{etoolbox}
\newcommand\sequence[2][\Rightarrow]
{ \def\nextitem{\def\nextitem{#1}}
\renewcommand*\do[1]{\nextitem##1}
\docsvlist{#2} }
\begin{document}
\noindent
$\sequence{َA,B,C,D}$\\
$\sequence{َA,B,C}$\\
$\sequence{َA,B}$\\
$\sequence{َA}$\\
$\sequence[\searrow]{u,v,w,x,y,z}$\\
$\sequence[\nearrow]{x,y,z}$\\
\end{document}
و خروجی به صورت زیر است: