تالار گفتگوی پارسی‌لاتک

زی‌پرشین XePersian => زی‌تک => نويسنده: وحید دامن‌افشان در اكتبر 22, 2012, 03:54:31 pm

عنوان: چپ به راست شدن متن فارسی داخل دستور ‎\mbox‎ در محیط ریاضی
رسال شده توسط: وحید دامن‌افشان در اكتبر 22, 2012, 03:54:31 pm
توی فایل پایین، متن فارسی داخل دستور ‎\mbox‎، چپ به راست می‌شه. آیا این رفتار عمداً صورت می‌گیره؟
من خودم همیشه از ‎\text‎ استفاده می‌کنم. کنجکاو شدم بدونم دلیلش چیه.
\documentclass{article}
\usepackage{xepersian}
\begin{document}
$x \mbox{این یک آزمایش است} y$
‎\end{document}‎
عنوان: پاسخ : چپ به راست شدن متن فارسی داخل دستور ‎\mbox‎ در محیط ریاضی
رسال شده توسط: vafa در اكتبر 22, 2012, 04:18:31 pm
\mbox در واقع همون \hbox است. در فایل latex.ltx دستور فوق اینگونه تعریف شده است:
\long\def\mbox#1{\leavevmode\hbox{#1}}
حالا اگر شما جای \mbox روی توی نمونه خودتون با \hbox عوض کنید، دقیقاً رفتار یکسانی رو می‌بینید. دستور \hbox در متون راست به چپ (در صورتی که در حالت عمودی و حالت ریاضی نباشه) راست به چپ و در محیط چپ به راست، چپ به راست هست پس بنابراین طبیعی که دستور \mbox هم رفتار مشابهی داشته باشه. محیط ریاضی یکی از زیرشاخه‌های محیط چپ به راست می‌باشد.

بسته bidi دستوری مشابه \hbox با نام \hboxR تعریف می‌کنه که همیشه راست به چپ حروف‌چینی میشه پس می‌توانی بجای استفاده از \mbox از دستور \hboxR استفاده کنی. اما توصیه نمی‌شود و بهتر هست که از دستور \text برای این کار استفاده کنی چون این دستور (برخلاف دستور \mbox یا \hbox یا \hboxR و ...) بصورت خودکار کارهای اضافه‌ای انجام می‌ده که برای حروف‌چینی در محیط ریاضی لازمه.