دوستان، کسی میتواند علت شکنندگی \XePersian را در سرآمد صفحه توضیح دهد؟
به کد زیر و خروجی آن توجه نمایید. البته با کمک \protect میتوان جلوی آن را گرفت. در واقع سوال را بدینگونه بپرسم آیا لازم نبود که \protect هم در تعریف نماد زیپرشین قرار میگرفت تا چنین اتفاقی رخ نمیداد؟!
\documentclass{book}
\usepackage{ptext}
\usepackage{xepersian}
\settextfont[Scale=1]{Yas} %فونت پیشفرض فارسی
% XePersian macro in the xepersian package is defined as below:
%\def\XePersian{\leavevmode$\smash{\hbox{X\lower.5ex\hbox{\kern-.125em\bidi@reflect@box{E}}Persian}}$}
\begin{document}
\chapter{نماد \XePersian}
\ptext
\chapter{نماد \protect\XePersian}
\ptext
\end{document}

جلوگیری از شکست با کمک \protect:

ویرایش
منظور این بود که چرا این ماکرو به ادبیات لاتک به صورت robust تعریف نشده است؟ تعریف آن چه مشکلی را سبب میشده است؟