با سلام
الف) شما خطای قبلی را به دلیل این دریافت کرده بودید که فونت تعریف نکرده بودید. اما در بار دوم احتمالا پی به اشتباه خود بردید و فونت هایی را به صورت زیر تعریف کردید:
\settextfont[Scale=1]{Nazanin}
\setlatintextfont[Scale=.9]{Times New Roman}
پس اگر از نسخه بروزشده xepersian استفاده میکنید، حتما باید بعد از فراخوانی بسته xepersian با دستورات settextfont و setlatintextfont برای آن یک فونت فارسی و یک فونت انگلیسی تعیین کنید.
ب) در xepersian برای این که عبارات انگلیسی با فونت انگلیسی نوشته شود باید آن را داخل \lr{}
بگذارید. یعنی:
\documentclass{article}
\usepackage{xepersian}
\settextfont[Scale=1]{Nazanin}
\setlatintextfont[Scale=.9]{Times New Roman}
\begin{document}
\lr{alalal}\\
شنشنشننشنش
\end{document}
دقت کنید که با دستور \lr
شما برای latex مشخص می کنید که عبارت آمده در دستور \lr
را با فونت انگلیسی که شما Times New Roman انتخاب کرده اید، در متن بنویسد. اما اگر این کار را نکنید latex عبارت alalal را با فونت پیشفرض مینویسد. فونت پیشفرض شما نیز همان فونت فارسی Nazanin است. خوب فونت Nazanin یک فونت فارسی است، پس توسط آن نمیتوان عبارات انگلیسی را نوشت.
نکته اول: پیوند زیر برای آشنایی با مفاهیم فونت در xepersian میتواند مفید باشد.
فونت در xepersian
نکته دوم: در نرم افزار word وقتی شما از یک فونت به عنوان نمونه B Nazanin استفاده می کنید، word در هنگام مواجه با کلمات انگلیسی، این کلمات را به یک فونت پیش فرض تبدیل می کند.
چرا که اغلب فونت هایی که ما با آن ها کار می کنیم، تنها می توانند زبان فارسی و یا انگلیسی را پشتیبانی کنند. مثلا B Nazanin فقط برای پشتیبانی از زبان فارسی است و نه برای انگلیسی. اما در LATEX این گونه نیست. برای حل این مشکل دو راه حل دارید:
- از فونت های سری XB مثل XB Niloofar .و... استفاده کنید. برای این موضوع به قسمت قلمها و حروف سایت پارسی لاتک مراجعه کنید در ضمن در مرکز دانلود سایت این فونت ها قرار داده شده است. در این صورت دیگر نیازی نیست که کلمات انگلیسی خود را درون دستور
\lr{}
قرار دهید. به عنوان مثال:
\documentclass{article}
\usepackage{xepersian}
\settextfont[Scale=1]{XB Niloofar}
\begin{document}
این یک مثال Example است.
\end{document}
- در کل اگر از فونت هایی مثل سری XB که هم فارسی و هم انگلیسی را پشتیبانی می کنند استفاده نکنید، می بایست عبارات انگلیسی در متن فارسی را در داخل یک
\lr{}
قرار دهید تا فهمیده شود که این عبارت باید با فونت انگلیسی نوشته شود، و در ضمن با دستور setlatintextfont یک فونت انگلیسی تعریف کنید. به عنوان مثال:
\documentclass{article}
\usepackage{xepersian}
\settextfont[Scale=1]{Nazanin}
\setlatintextfont[Scale=.9]{Times New Roman}
\begin{document}
این یک مثال \lr{Example} است.
\end{document}
در کل به نظر من راه حل دوم بهتر است. چرا که دقت کنید که اگر روش یک را انتخاب کنید در مواردی دچار مشکل خواهید شد. مثلا فرض کنید که میخواهید سه کلمه انگلیسی را پشت سرهم بنویسید. مثل:
این یک This is an مثال است.
خروجی به صورت زیر خواهد شد.
در ضمن دقت کنید که متن انگلیسی که در دستور \LTRfootnote
استفاده میکنید، با قلم پیشفرض انگلیسی چاپ خواهند شد.