چرا در ماکرو نویسی علائم @ در دستورها قرار میگیره.
دستوراتی که @دارند دستورات داخلی هستند و برای برنامهنویسی به کار میروند و این دستورات، دستورات کاربر نیست.
مثلاً اگر در دستوری که جنابعالی ارائه دادید
به جای \@tartibi از \tartibi استفاده شه چه مشکلی پیش میاد؟
اگر شما گفتهاید:
\tartibi{chapter}
و آقای دامنافشان گفته باشند:
\@tartibi\c@chapter
هیچ تفاوتی وجود ندارد و هر دو معادل هم هستند. اگر فایل xepersian.sty را نگاه کنید، دستور \tartibi اینگونه تعریف شده:
\newcommand{\tartibi}[1]{%
\expandafter\@tartibi\csname c@#1\endcsname%
}
پس در واقع وقتی مینویسید:
\tartibi{chapter}
به:
\@tartibi\c@chapter
ترجمه میشود.