\newcommand*{\setbaselineskip}[1]{%
\linespread{\strip@pt\dimexpr\numexpr\dimexpr#1\relax*65536/\dimexpr\baselineskip\relax\relax sp\relax}
\selectfont
}
\linespread{ \fp_eval:n { 14pt/\baselineskip } }
\long\def\addto@hook#1#2{#1\expandafter{\the#1#2}}
% add-to-hook.tex
\PassOptionsToPackage{pdfinfo=off}{bidi}
\documentclass[a4paper,12pt]{article}
\usepackage{amsmath}
\usepackage[logo=off]{xepersian}
\renewcommand{\baselinestretch}{1.5}
\settextfont[Scale=1.2]{HM XNiloofar}
\setmathdigitfont[Scale=1.2]{HM XNiloofar}
\setlatintextfont[Scale=1.2]{HM XNiloofar}
\pagestyle{empty}
\begin{document}
برای روابط ریاضی در متن و در محیط آرایه، دستور پیشفرض \verb|\textstyle| است.
برای نمونه تصاعد هندسی در این سبک بهصورت
$S_n=\sum_{k=0}^{n-1}aq^k = \frac{a(1-q^n)}{1-q}$
حروفچینی میشود. در سبک نمایشی، دستور پیشفرض \verb|\displaystyle| است و
تصاعد هندسی در این سبک بهصورت
\begin{align*}
S_n & = \sum_{k=0}^{n-1}aq^k \\
& = \frac{a(1-q^n)}{1-q}
\end{align*}
حروفچینی میشود.
\end{document}
% add-to-hook-latex.tex
\PassOptionsToPackage{pdfinfo=off}{bidi}
\documentclass[a4paper,12pt]{article}
\usepackage{amsmath}
\usepackage[logo=off]{xepersian}
\renewcommand{\baselinestretch}{1.5}
\settextfont[Scale=1.2]{HM XNiloofar}
\setmathdigitfont[Scale=1.2]{HM XNiloofar}
\setlatintextfont[Scale=1.2]{HM XNiloofar}
\pagestyle{empty}
\makeatletter
\addto@hook\everymath\displaystyle
\makeatother
\begin{document}
برای روابط ریاضی در متن و در محیط آرایه، دستور پیشفرض \verb|\textstyle| است.
اما اگر از دستور \verb|\addto@hook| استفاده کنیم و \verb|\displaystyle| را
به \verb|\everymath| اضافه کنیم، تصاعد هندسی در متن بهصورت نمایشی یعنی به شکل
$S_n=\sum_{k=0}^{n-1}aq^k = \frac{a(1-q^n)}{1-q}$
ولی در سبک نمایشی بازهم به همانصورت
\begin{align*}
S_n & = \sum_{k=0}^{n-1}aq^k \\
& = \frac{a(1-q^n)}{1-q}
\end{align*}
حروفچینی میشود.
\end{document}
% add-to-hook-lollipop.tex
\PassOptionsToPackage{pdfinfo=off}{bidi}
\documentclass[a4paper,12pt]{article}
\usepackage{amsmath}
\usepackage[logo=off]{xepersian}
\renewcommand{\baselinestretch}{1.5}
\settextfont[Scale=1.2]{HM XNiloofar}
\setmathdigitfont[Scale=1.2]{HM XNiloofar}
\setlatintextfont[Scale=1.2]{HM XNiloofar}
\pagestyle{empty}
\AppendToList:everymath={\displaystyle}
\begin{document}
برای روابط ریاضی در متن و در محیط آرایه، دستور پیشفرض \verb|\textstyle| است.
اما اگر از دستور \verb|\AppendToList| استفاده کنیم و \verb|\displaystyle| را
به \verb|\everymath| اضافه کنیم، تصاعد هندسی در متن بهصورت نمایشی یعنی به شکل
$S_n=\sum_{k=0}^{n-1}aq^k = \frac{a(1-q^n)}{1-q}$
ولی در سبک نمایشی به همانصورت
\begin{align*}
S_n & = \sum_{k=0}^{n-1}aq^k \\
& = \frac{a(1-q^n)}{1-q}
\end{align*}
حروفچینی میشود.
\end{document}
(/usr/local/TeXLive/2018/texmf-dist/tex/xelatex/xepersian/loadingorder-xepersian.def)
(/usr/local/TeXLive/2018/texmf-dist/tex/xelatex/xepersian/footnote-xepersian.def)
(/usr/local/TeXLive/2018/texmf-dist/tex/xelatex/xepersian/article-xepersian.def)
(/usr/local/TeXLive/2018/texmf-dist/tex/xelatex/xepersian/fontspec-xepersian.def))
! Package xepersian Error: The font "HM XNiloofar" cannot be loaded by the
(xepersian) xepersian package.
For immediate help type H <return>.
...
l.8 \setmathdigitfont
[Scale=1.2]{HM XNiloofar}
? H
Select another font and rerun "xelatex".
?
51 \prg_set_conditional:Nnn \__xepersian_font_if_cannot_be_loaded:N {p,TF,T,F}
52 {
53 \str_if_in:NnTF { #1 } { HM }
54 {
55 \prg_return_true:
56 }
57 {
58 \prg_return_false:
59 }
60 }
mingranina نوشته است:با سلام
نسخهٔ جدید، 21.8، بستهٔ xepersian توسط مؤلف مربوطه منتشر و در تاریخ 2018/11/23 در سایت CTAN آپلود شده و در تاریخ 2018/11/22 تحت عنوان Revision 49225 در مخزن TeXLive قرار گرفته است.
کدهایی که اضافه و یا حذف گردیده و در سطح کاربری فنی و مهم هستند (با استفاده از دستور diff -aU 0) در فایل پیوست (diff-xepersian-21.7-21.8.diff) ذخیره گردیده و در صورت تمایل میتوانید آن را دانلود و در یک ویرایشگر معمولی مشاهده کنید.
فایلهای حذف شده:
فایلهای اضافه شده: fontspec-xepersian.def
راهنما و منابع بستههای fontspec, expl3 و مراجع The LaTeX3 Sources, The LaTeX3 Interfaces ممکن است در درک بهتر کدهای موجود در فایل diff-xepersian-21.7-21.8.diff مؤثر باشد.
تذکر بسیار مهم:
در این نسخه از XePersian فایل fontspec-xepersian.def حاوی کلیهٔ تغییرات اصلی است و همانگونه که گفته شد این فایل در همین نسخه 21.8 به زیپرشین اضافه گردیده و بخشهای عمدهٔ آن از روی فایل fontspec-luatex.sty کپی شده است. هدف اصلی از این تغییرات هم صرفاً جلوگیری از استفاده از فونتهای سری HM است. البته به علت آنکه از شرایط محدود کننده یکتا استفاده نشده است، هر فونت دیگری هم که مانند فونتهای سری HM در نام آن عبارت «HM» وجود داشته باشد نیز همین مشکل را خواهد داشت.
در حقیقت پس از بروزرسانی XePersian به نسخهٔ 21.8، اگر بهعنوان مثال از فونت HM XNiloofar استفاده کنید با خطای زیر مواجه میشوید:
- کد: انتخاب همهٔ
(/usr/local/TeXLive/2018/texmf-dist/tex/xelatex/xepersian/loadingorder-xepersian.def)
(/usr/local/TeXLive/2018/texmf-dist/tex/xelatex/xepersian/footnote-xepersian.def)
(/usr/local/TeXLive/2018/texmf-dist/tex/xelatex/xepersian/article-xepersian.def)
(/usr/local/TeXLive/2018/texmf-dist/tex/xelatex/xepersian/fontspec-xepersian.def))
! Package xepersian Error: The font "HM XNiloofar" cannot be loaded by the
(xepersian) xepersian package.
For immediate help type H <return>.
...
l.8 \setmathdigitfont
[Scale=1.2]{HM XNiloofar}
? H
Select another font and rerun "xelatex".
?
برای رفع این مشکل، سادهترین راه برای یک کاربر نهایی این است که:
- یک کپی مطمئن از فایل fontspec-xepersian.def تهیه کنید.
- کدهای مربوط به خط 51 تا 60 از فایل فوق عبارت است از:
- کد: انتخاب همهٔ
51 \prg_set_conditional:Nnn \__xepersian_font_if_cannot_be_loaded:N {p,TF,T,F}
52 {
53 \str_if_in:NnTF { #1 } { HM }
54 {
55 \prg_return_true:
56 }
57 {
58 \prg_return_false:
59 }
60 }
فقط در خط 55 عبارت \prg_return_true: را به \prg_return_false: تبدیل کنید.
توجه فرمایید که سایر خطوط فوقالذکر نباید حذف شوند. در حقیقت در فایل fontspec-xepersian.def فقط یک کلمهٔ true به false تبدیل میشود.
- فایل را ذخیره کنید و دستورات مربوطه را دوباره اجرا کنید.
با تشکر
پ.ن.1- لطفاً توجه فرمایید که در بسیاری از بخشهای بستههای bidi و xepersian، کدهای اصلی از روی بستههای دیگر کپی شده و فقط نام متغیرها و دستورات بهگونهای ناهمگون تغییر کرده است که نمونههایی از آن در پیامهای قبلی در همین تاپیک گزارش شده است. بنابراین اگر علاقمند به فراگیری کدهای مربوطه هستید توصیه میشود راهنمای بستههای اصلی را که در این اطلاعرسانیها معرفی میشوند حتیالمقدور مطالعه فرمایید.
پ.ن.2- زمانهای اعلام شده در متن پیام به وقت محلی سایت مربوطه است.
هادی صفی اقدم نوشته است:با سلام
سلام. وقت بخیر
در این پست نوشتین که فلان خط کد را تغییر بدیم.
و چند پیام قبلتر هم از مجوز LPPL بستهها در لاتک صحبت کردین.
در صورت تغییر در کد بستهای باید طبق مجوزی که ازش صحبت کردین، آن بسته باید با نام دیگری ذخیره شود.
مثلا
mingraninapersian.sty
mingraninabidi.sty
و ...
بیزحمت به این پاسختون اضافه بفرمایین تا باعث نقض حق نویسنده و کپی رایت نشین و دوستانی که انجام میدن، بدون آگاهی و سهوی باعثش نشن.
ممنونم.
mingranina نوشته است:هادی صفی اقدم نوشته است:با سلام
سلام. وقت بخیر
در این پست نوشتین که فلان خط کد را تغییر بدیم.
و چند پیام قبلتر هم از مجوز LPPL بستهها در لاتک صحبت کردین.
در صورت تغییر در کد بستهای باید طبق مجوزی که ازش صحبت کردین، آن بسته باید با نام دیگری ذخیره شود.
مثلا
mingraninapersian.sty
mingraninabidi.sty
و ...
بیزحمت به این پاسختون اضافه بفرمایین تا باعث نقض حق نویسنده و کپی رایت نشین و دوستانی که انجام میدن، بدون آگاهی و سهوی باعثش نشن.
ممنونم.
با سلام
با تشکر از تذکر شما، پیام مورد نظر اصلاح شد.
با احترام
هادی صفی اقدم نوشته است:سلام مجدد. ممنونم وقت گذاشتین
ولی باز این طبق مجوز LPPL نیست.
چون فایل اصلی رو رفتن ادیت کردن. و یکی کپی از ادیت نشده گرفتن که برای روز مبادا.
باید فایل اصلی ادیت شد،
نامش عوض بشه.
و در داخل بسته زیپرشین هم بره اون فایل با نام جدید رو فراخوانی کنه.
ضمنا خود فایل بسته xepersian.sty و ... همه باید تغییر نام پیدا کنن احتمال.
ممنون میشم انجام بدین برای احترام به حق کپی رایت
موفقتر باشین
mingranina نوشته است:هادی صفی اقدم نوشته است:سلام مجدد. ممنونم وقت گذاشتین
ولی باز این طبق مجوز LPPL نیست.
چون فایل اصلی رو رفتن ادیت کردن. و یکی کپی از ادیت نشده گرفتن که برای روز مبادا.
باید فایل اصلی ادیت شد،
نامش عوض بشه.
و در داخل بسته زیپرشین هم بره اون فایل با نام جدید رو فراخوانی کنه.
ضمنا خود فایل بسته xepersian.sty و ... همه باید تغییر نام پیدا کنن احتمال.
ممنون میشم انجام بدین برای احترام به حق کپی رایت
موفقتر باشین
با سلام
ضمن تشکر از تذکر مجدد شما، به نظر میرسد که اطلاعات حقوقی شما بسیار بیشتر از بنده است. بنابراین با توجه به حساسیت مدیران محترم سایت IRMUG به رعایت مسائل حقوقی، بسیار سپاسگزار خواهم بود چنانچه «بایدها» و »نبایدها»ی مجوز LPPL را همراه با بندهای مربوطه که به پیام مورد نظر مربوط میشود ذکر نموده و موارد نقض شده در پیام را نیز مشخص فرمایید تا پس از بررسی مدیران محترم سایت، پیام مربوطه به نحو مقتضی اصلاح و یا در صورت لزوم حذف شود.
مجدداً از تذکرات ارزشمند حضرتعالی تشکر میکنم.
با احترام
هادی صفی اقدم نوشته است:سلام. خواهش میکنم.
اتفاقا اصلا اطلاعات زیادی ندارم.
فقط میدانم بستهای تغییری توش ایجاد بشه، باید نامش عوض بشه.
و چون فایل def را ع.ض کردین باید نامش عوض بشه.
و چون نام اونو عوض کنین، باید داخل بسته زیپرشین هم (چون داخل اون فراخوانی شده) اون هم تغییر کنه،
اون هم پس نامش عوض بشه و باقی قضایا
اگه اشتباه میکنم، بفرمایین
با تشکر قبلی
کاربران حاضر در این انجمن: بدون کاربران آنلاین و 1 مهمان