انجمن ویکی قلم‌های فارسی
ورود / عضویت

حروفچینی فارسی در زیپرشین (XePersian) و بای‌دای (bidi)

بحث پیرامون مسائل مربوط به قلم‌سازی، حروف‌چینی و بومی‌سازی

انتشار نسخهٔ جدید، 35.0، بستهٔ bidi توسط مؤلف مربوطه

پستتوسط mingranina » 17 اکتبر 2018, 08:35

با سلام


نسخهٔ جدید، 35.0، بستهٔ bidi توسط مؤلف مربوطه منتشر و در تاریخ 2018/10/17 در سایت ‎CTAN‎ آپلود شده و در تاریخ 2018/10/16 تحت عنوان ‎Revision 48921‎ در مخزن ‎TeXLive‎ قرار گرفته است.

کدهایی که اضافه و یا حذف گردیده و در سطح کاربری فنی و مهم هستند (با استفاده از دستور ‎diff -aU 0‎) در فایل پیوست ‎(diff-bidi-34.9-35.0.diff)‎ ذخیره گردیده و در صورت تمایل می‌توانید آن را دانلود و در یک ویرایشگر معمولی مشاهده کنید.

فایل‌های حذف شده: ‎ ‎
فایل‌های اضافه شده: ‎ ‎

راهنما و منابع بسته‌های ‎LaTeX2e (source2e)، ragged2e,‎ ممکن است در درک بهتر کدهای موجود در فایل diff-bidi-34.9-35.0.diff مؤثر باشد.

با تشکر

پ.ن.1- لطفاً توجه فرمایید که در بسیاری از بخش‌های بسته‌های bidi و xepersian، کدهای اصلی از روی بسته‌های دیگر کپی شده و فقط نام متغیرها و دستورات به‌گونه‌ای ناهمگون تغییر کرده است که نمونه‌هایی از آن در پیام‌های قبلی در همین تاپیک گزارش شده است. بنابراین اگر علاقمند به فراگیری کدهای مربوطه هستید توصیه می‌شود راهنمای بسته‌های اصلی را که در این اطلاع‌رسانی‌ها معرفی می‌شوند حتی‌المقدور مطالعه فرمایید.

پ.ن.2- زمان‌های اعلام شده در متن پیام به وقت محلی سایت مربوطه است.
پیوست‌ها
diff-bidi-34.9-35.0.zip
(950 بایت) دانلود 15 بار
mingranina
 
پست‌ها : 58
تاریخ عضویت: 17 سپتامبر 2016, 07:53

منابع اصلی دستورات bidi و xepersian در مورد فاصلهٔ بین خطوط

پستتوسط mingranina » 21 اکتبر 2018, 22:46

با سلام

برای تنظیم فاصلهٔ بین خطوط در بستهٔ bidi و xepersian دستورات و گزینه‌های موجود عبارتند از:

- دستور ‎\setbaselineskip‎ که در فایل biditools.sty به صورت زیر تعریف شده است:
کد: انتخاب همهٔ
\newcommand*{\setbaselineskip}[1]{%
    \linespread{\strip@pt\dimexpr\numexpr\dimexpr#1\relax*65536/\dimexpr\baselineskip\relax\relax sp\relax}
    \selectfont
}

این دستور اولین بار در نسخهٔ 30.1 ‎(Revision 43338, 2017/02/25)‎ بستهٔ bidi تعریف شده است و در حقیقت از اینجا کپی شده است.
دستور ‎\strip@pt‎ در راهنما و منابع بستهٔ ‎LaTeX2e (source2e)‎ و دستورهای ‎\dimexpr, \numexpr‎ در راهنما و منابع بستهٔ ‎e-TeX‎ توضیح داده شده است.
این دستور دارای محدودیت‌هایی است که علاقمندان می‌توانند در آدرس فوق مطالعه نمایند.

در بستهٔ leading نیز تعریف مشابهی وچود دارد که در راهنما و منابع آن بسته توضیح داده شده است.

اما در اینجا با استفاده از بستهٔ expl3 دستور فوق به‌صورت
کد: انتخاب همهٔ
\linespread{ \fp_eval:n { 14pt/\baselineskip } }

تعریف شده است.

- دستور ‎\setfontsize‎ که نسبتاً طولانی هم هست (حدود 260 خط) در فایل xepersian.sty تعریف شده است. این دستور نیز به‌طور کامل از بستهٔ koma-script کپی گردیده و تفاوت‌های مهم آن با متن اصلی در بستهٔ koma-script این است که نام دستور ‎\changefontsize‎ به ‎\setfontsize‎ و پیشوند scr به xepersian تغییر یافته و تست مربوط به نسخهٔ koma-script حذف شده است. برای توضیحات بیشتر راهنما و منابع koma-script را ببینید.

- گزینه‌های ‎baselineskipscale, latinbaselineskipscale, fontsize‎ و computeautoilg در بستهٔ xepersian نیز با استفاده از همان دستورات ‎\setbaselineskip‎ و ‎\setfontsize‎ تعریف شده است.

با تشکر
mingranina
 
پست‌ها : 58
تاریخ عضویت: 17 سپتامبر 2016, 07:53

بستهٔ bidi برای LuaTeX

پستتوسط mingranina » 29 اکتبر 2018, 16:54

با سلام

پروژهٔ تطبیق بستهٔ bidi با LuaTeX در اسفند‌ماه 1396 در سایت TeX Development Fund به‌صورت زیر تعریف شد:
"Bidi package for LuaTeX
Vafa Khalighi, Australia.
Amount: US$1000; date: 1 March 2018.
Porting the bidi package to LuaTeX. Description from the author: ..."

و در مجلهٔ TUGboat, Volume 39 (2018), No 1 در مطلبی تحت عنوان "From the president" جناب Boris Veystman تایید کردند که:
"Also, the TEX Development fund made its first award for 2018, for LuaTEX support for the bidi package, by Vafa Khalighi. Development fund applications are always welcome; see tug.org/tc/devfund."

در ارتباط با این پروژه نیز در سایت مربوطه (توسط مؤلف بستهٔ bidi) اعلام شد که:

«1000 دلار آمریکا تحت عنوان TeX Development Fund از طرف TUG براساس fund داده شده. من موظف هستم تا پایان سال 2018 بسته bidi را توسعه بدهم تا با موتور LuaTeX کار کند و همچنین باید unicode bidirectional algorithm را با استفاده از زبان برنامه‌نویسی Lua برای LuaTeX پیاده‌سازی کنم. همچنین باید در پایان انجام پروژه برای مجله TUGBOAT گزارشی در رابطه با پروژه بنویسم.»

اما این پروژه اخیراً بدون هیچ توضیحی از سایت TeX Development Fund حذف شده است.

لازم به توضیح است که از سال‌ها قبل کاربران و دست‌اندرکاران LuaTeX Unicode Bidirectional Algorithm (Unicode®Standard Annex #9 or UAX #9) را با استفاده از زبان برنامه‌نویسی Lua به‌کار بسته‌اند. به‌عنوان نمونه می‌توان از Lua implementation of the Unicode Bidirectional Algorithm - luabidi و Unicode BiDi Algorithm implementation for ConTeXt MkIV - context-bidi نام برد. حتی این امر با استفاده از دیگر زبان‌های برنامه‌نویسی از جمله C نیز انجام گردیده که نمونه‌ای از آن نیز تحت عنوان A sophisticated implementation of Unicode Bidirectional Algorithm - SheenBidi منتشر شده است.

از دیگر مشکلات بستهٔ bidi در این ارتباط آن است که بخش‌های اصلی bidi از روی بسته‌های دیگر کپی شده است که در پیام‌های قبلی به نمونه‌هایی از آن‌ها اشاره گردیده است.

با تشکر
mingranina
 
پست‌ها : 58
تاریخ عضویت: 17 سپتامبر 2016, 07:53

انتشار نسخهٔ جدید، 35.1، بستهٔ bidi توسط مؤلف مربوطه

پستتوسط mingranina » 11 نوامبر 2018, 12:06

با سلام

نسخهٔ جدید، 35.1، بستهٔ bidi توسط مؤلف مربوطه منتشر و در تاریخ 2018/11/11 در سایت ‎CTAN‎ آپلود شده و در تاریخ 2018/11/10 تحت عنوان ‎Revision 49123‎ در مخزن ‎TeXLive‎ قرار گرفته است.

کدهایی که اضافه و یا حذف گردیده و در سطح کاربری فنی و مهم هستند (با استفاده از دستور ‎diff -aU 0‎) در فایل پیوست ‎(diff-bidi-35.0-35.1.diff)‎ ذخیره گردیده و در صورت تمایل می‌توانید آن را دانلود و در یک ویرایشگر معمولی مشاهده کنید.

فایل‌های حذف شده: ‎ ‎
فایل‌های اضافه شده: ‎ ‎

راهنما و منابع بسته‌های ‎hyperref (hyperref.sty), tcolorbox (tcolorbox.sty), LaTeX2e (source2e)،‎ ممکن است در درک بهتر کدهای موجود در فایل diff-bidi-35.0-35.1.diff مؤثر باشد.

با تشکر

پ.ن.1- لطفاً توجه فرمایید که در بسیاری از بخش‌های بسته‌های bidi و xepersian، کدهای اصلی از روی بسته‌های دیگر کپی شده و فقط نام متغیرها و دستورات به‌گونه‌ای ناهمگون تغییر کرده است که نمونه‌هایی از آن در پیام‌های قبلی در همین تاپیک گزارش شده است. بنابراین اگر علاقمند به فراگیری کدهای مربوطه هستید توصیه می‌شود راهنمای بسته‌های اصلی را که در این اطلاع‌رسانی‌ها معرفی می‌شوند حتی‌المقدور مطالعه فرمایید.

پ.ن.2- زمان‌های اعلام شده در متن پیام به وقت محلی سایت مربوطه است.
پیوست‌ها
diff-bidi-35.0-35.1.zip
(709 بایت) دانلود 11 بار
mingranina
 
پست‌ها : 58
تاریخ عضویت: 17 سپتامبر 2016, 07:53

دستور ‎\addto@hook‎ و ‎\AppendToList‎ در XePersian

پستتوسط mingranina » 15 نوامبر 2018, 06:11

با سلام

در LaTeX و بسته‌های مربوطه استفاده از hook (کدی است که هرگاه شرایطی محقق شود اجرا می‌گردد.) بسیار متداول است و در LaTeX2e برای افزودن یک یا چند token به یک hook، دستور داخلی ‎\addto@hook‎ به‌صورت سادهٔ زیر تعریف شده است (لطفاً راهنمای ‎The LaTeX2e Sources (source2e)‎ را ببینید.):
کد: انتخاب همهٔ
\long\def\addto@hook#1#2{#1\expandafter{\the#1#2}}

دستورات مشابه دیگری مثل g@addto@macro نیز وجود دارد. در بسته‌هایی مثل etoolbox که قبلاً در همین تاپیک در مورد آن صحبت شد از hook نیز بسیار استفاده شده است.

به‌عنوان مثال در کد زیر برای حروفچینی روابط ریاضی در متن یا سبک متنی (textstyle) به‌صورت ضمنی از دستور ‎\everymath‎ استفاده می‌شود که یک hook است، به این معنی که هر بار TeX به ابتدای یک رابطهٔ ریاضی در متن می‌رسد کدی (لیستی از tokenها) را که با دستور ‎\everymath‎ تعریف شده است قبل از آن قرار می‌دهد. (لطفاً توجه فرمایید که در سبک نمایشی (displaystyle) به‌صورت ضمنی از دستور ‎\everydisplay‎ استفاده می‌شود.)
کد: انتخاب همهٔ
% 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.png

اگر در همان کد بالا با استفاده از دستور داخلی ‎\addto@hook‎، دستور ‎\displaymath‎ (به عنوان یک token) به ‎\everymath‎ (به‌عنوان یک hook) افزوده شود:
کد: انتخاب همهٔ
% 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-latex.png

اما در این ویدیوی آموزشی برای افزودن ‎\displaymath‎ به ‎\everymath‎، استفاده از دستور ‎\AppendToList‎ (توسط مؤلف XePersian) توصیه می‌شود. این دستور به‌همراه چند دستور دیگر در اصل توسط جناب ‎Victor Eijkhout‎ در سال 1993 در نسخهٔ 0.96 بستهٔ lollipop (خط 120 تا 404 از فایل tools.tex) تعریف شده و توسط مؤلف XePersian کپی و به فایل biditools.sty اضافه شده است (خط 832 تا 1017)، البته طبق معمول توضیحات بسیار مفید و ارزندهٔ آن حذف شده و نام متغیرها و دستورات به‌گونه‌ای ناهمگون تغییر کرده است.

لازم به تدکر است که حتی جناب ‎Victor Eijkhout‎ که ابتدا در سال 1991 کتاب خود را، تحت عنوان «TeX By Topic»، با استفاده از lollipop حروفچینی کرده بودند، در سال 2001 آن را با استفاده از LaTeX2e بازنویسی و منتشر کردند.

در کد زیر برای افزودن ‎\displaymath‎ به ‎\everymath‎ از دستور ‎\AppendToList‎ استفاده شده:
کد: انتخاب همهٔ
% 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}

که خروجی آن به‌صورت زیر است:
add-to-hook-lollipop.png

و همانگونه که ملاحظه می‌شود دقیقاً مشابه خروجی پیشین است و بنابراین حداقل در مورد مثالی که برای این ویدیوی آموزشی انتخاب شده و موارد مشابه نیازی به دستور ‎\AppendToList‎ و به تبع آن بارگذاری کدهای طولانی مربوطه و اتلاف منابع و امکانات سیستم نیست.

نرم‌افزارهای مورد استفاده:
bidi: v35.1, 2018/11/11
xepersian: v21.7, 2018/10/18

با تشکر
mingranina
 
پست‌ها : 58
تاریخ عضویت: 17 سپتامبر 2016, 07:53

موتور جدید TeX و Lollipop

پستتوسط mingranina » 19 نوامبر 2018, 18:01

با سلام

در مورد نرم‌افزار Lollipop و کتاب TeX By Topic و مؤلف آن‌ها جناب Victor Eijkhout بیشتر در این پیام توضیح داده شد. ایشان در مصاحبه با TUG Interview Corner در تاریخ ‎2005/03/11‎ در فرازهایی از پاسخ‌های خود از عبارت‌هایی مانند:
That is partly my diminishing involvement with TeX, ...
و
I'm too far out of the TeX world these days to say anything sensible about ...
استفاده می‌کنند که نشان از کاهش شدید فعالیت‌های ایشان در زمینهٔ TeX دارد. بنابراین تعجب‌آور بود وقتی که مطلب زیر از طرف مؤلف XePersian (زیپرشین) در تاریخ ‎2018/11/09‎ در این پرسش و پاسخ زنده (از ‎00:09:18‎ تا ‎00:10:55‎) مطرح شد که:

«پرسش دیگه پرسش آقای ... بودن که در مورد پروژهٔ Lollipop پرسش داشتند. پروژهٔ Lollipop [را من و آقای] البته نویسندهٔ اصلیش آقای Victor Eijkhout هست، بعد من به پروژهٔ ایشون پیوستم. ما به‌صورت دو نفره داریم باهم روش کار می‌کنیم و [به] نتیجه‌ای که بهش رسیدیم این هستش که برای چیزهایی که ما می‌خواهیم توی پروژهٔ Lollipop انجام بدیم هیچکدوم از موتورهای حروفچینی که در واقع هستند نیازهای ما را برطرف نمی‌کنند. برای همین ما برای اینکه بتونیم پروژهٔ Lollipop را به اون هدف‌هایی که داریم برسونیم باید یک موتور حروفچین هم، یک موتورحروفچینی TeX هم، ابداع کنیم که با آقای Victor Eijkhout الان داریم در مورد این صحبت می‌کنیم که روی پروژهٔ Lollipop چجوری بیایم و یک موتور حروفچینی TeX رو تغییر بدیم. البته من استرالیا هستم، ایشون توی تگزاس توی آمریکاست و بیشتر همکاری‌هامون از طریق Email و از طریق Skype هستش. بنابراین برای اینکه پاسخ پرسش شمارو بدم پروژهٔ Lollipop به‌صورت فعال در حال توسعه هست اما این توسعه فقط بین من و ایشون هستش و به‌صورت عمومی نشده»

و البته طبیعی بود که جناب Victor Eijkhout در ارتباط با ادعای فوق اظهار بی‌اطلاعی مطلق نمایند. بنابراین ارتباط از طریق Email و Skype هم کاملاً منتفی است.

لازم به توضیح است که آخرین نسخهٔ Lollipop که توسط جناب Victor Eijkhout منتشر شد تحت عنوان نسخهٔ 0.96 و در ‎July 1993‎ انجام گرفت تا آنکه در سال 2014 نگهداری از این نرم‌افزار به مؤلف زیپرشین واگذار گردید و در April همان سال نسخهٔ 0.97 توسط نگهدارندهٔ جدید منتشر شد و تا نسخهٔ 1.07 در ‎June 2016‎ ادامه یافت.

با تشکر
mingranina
 
پست‌ها : 58
تاریخ عضویت: 17 سپتامبر 2016, 07:53

انتشار نسخهٔ جدید، 21.8، بستهٔ xepersian توسط مؤلف مربوطه

پستتوسط mingranina » 23 نوامبر 2018, 11:43

با سلام

نسخهٔ جدید، 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‎ را به یک نام دیگر مثلاً ‎fontspec-xepersian-hm.def‎ تغییر دهید تا به مشکلات حقوقی و کپی‌رایت برخورد نکنید. عبارت hm می‌تواند معرف آن باشد که این فایل برای رفع فیلترینگ فونت‌های سری HM تهیه شده است و به جای آن می‌توانید از هر عبارت دلخواه دیگری نیز استفاده کنید.

- کدهای مربوط به خط 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-hm.def‎ فقط یک کلمهٔ true به false تبدیل می‌شود.

- فایل را ذخیره کنید.

- اگر نام فایل را تغییر نداده‌اید این قسمت را نادیده بگیرید اما اگر برای رعایت مسائل حقوقی و کپی‌رایت نام فایل را از ‎fontspec-xepersian.def‎ به ‎fontspec-xepersian-hm.def‎ تغییر داده‌اید تغییرات دیگری را نیز باید انجام دهید که برای توضیحات مربوطه می‌توانید به پیام‌های زیر مراجعه کنید.
توضیح مجوز LPPL 1
توضیح مجوز LPPL 2
توضیح مجوز LPPL 3
توضیح مجوز LPPL 4
توضیح مجوز LPPL 5
توضیح مجوز LPPL 6
توضیح مجوز LPPL 7
توضیح مجوز LPPL 8
توضیح مجوز LPPL 9
توضیح مجوز LPPL 10
توضیح مجوز LPPL 11
توضیح مجوز LPPL 12

- دستورات مربوطه را دوباره اجرا کنید.

با تشکر

پ.ن.1- لطفاً توجه فرمایید که در بسیاری از بخش‌های بسته‌های bidi و xepersian، کدهای اصلی از روی بسته‌های دیگر کپی شده و فقط نام متغیرها و دستورات به‌گونه‌ای ناهمگون تغییر کرده است که نمونه‌هایی از آن در پیام‌های قبلی در همین تاپیک گزارش شده است. بنابراین اگر علاقمند به فراگیری کدهای مربوطه هستید توصیه می‌شود راهنمای بسته‌های اصلی را که در این اطلاع‌رسانی‌ها معرفی می‌شوند حتی‌المقدور مطالعه فرمایید.

پ.ن.2- زمان‌های اعلام شده در متن پیام به وقت محلی سایت مربوطه است.
پیوست‌ها
diff-xepersian-21.7-21.8.zip
(675 بایت) دانلود 12 بار
آخرین ویرایش توسط mingranina on 01 دسامبر 2018, 13:43, ویرایش شده در 6.
mingranina
 
پست‌ها : 58
تاریخ عضویت: 17 سپتامبر 2016, 07:53

پاسخ: انتشار نسخهٔ جدید، 21.8، بستهٔ xepersian توسط مؤلف مرب

پستتوسط هادی صفی اقدم » 27 نوامبر 2018, 00:37

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
و ...
بیزحمت به این پاسخ‌تون اضافه بفرمایین تا باعث نقض حق نویسنده و کپی رایت نشین و دوستانی که انجام میدن، بدون آگاهی و سهوی باعثش نشن.
ممنونم.
هادی صفی اقدم
 
پست‌ها : 24
تاریخ عضویت: 08 اکتبر 2012, 02:10
محل سکونت: کامپیوتر! تهران - تبریز

انتشار نسخهٔ جدید، 21.9، بستهٔ xepersian توسط مؤلف مربوطه

پستتوسط mingranina » 27 نوامبر 2018, 08:43

با سلام

نسخهٔ جدید، 21.9، بستهٔ xepersian توسط مؤلف مربوطه منتشر و در تاریخ 2018/11/26 در سایت ‎CTAN‎ آپلود شده و در تاریخ 2018/11/26 تحت عنوان ‎Revision 49258‎ در مخزن ‎TeXLive‎ قرار گرفته است.

کدهایی که اضافه و یا حذف گردیده و در سطح کاربری فنی و مهم هستند (با استفاده از دستور ‎diff -aU 0‎) در فایل پیوست ‎(diff-xepersian-21.8-21.9.diff)‎ ذخیره گردیده و در صورت تمایل می‌توانید آن را دانلود و در یک ویرایشگر معمولی مشاهده کنید.

فایل‌های حذف شده: ‎ ‎
فایل‌های اضافه شده: ‎ ‎

راهنما و منابع بسته‌های ‎The LaTeX3 Sources, The LaTeX3 Interfaces‎ ممکن است در درک بهتر کدهای موجود در فایل diff-xepersian-21.8-21.9.diff مؤثر باشد.

تذکر بسیار مهم:

در این نسخه از XePersian همچنان فونت‌های سری HM فیلتر می‌شوند و برای رفع فیلترینگ این فونت‌ها ساده‌ترین راه برای یک کاربر نهایی همان است که در این پیام توضیح داده شد.

با تشکر

پ.ن.1- لطفاً توجه فرمایید که در بسیاری از بخش‌های بسته‌های bidi و xepersian، کدهای اصلی از روی بسته‌های دیگر کپی شده و فقط نام متغیرها و دستورات به‌گونه‌ای ناهمگون تغییر کرده است که نمونه‌هایی از آن در پیام‌های قبلی در همین تاپیک گزارش شده است. بنابراین اگر علاقمند به فراگیری کدهای مربوطه هستید توصیه می‌شود راهنمای بسته‌های اصلی را که در این اطلاع‌رسانی‌ها معرفی می‌شوند حتی‌المقدور مطالعه فرمایید.

پ.ن.2- زمان‌های اعلام شده در متن پیام به وقت محلی سایت مربوطه است.
پیوست‌ها
diff-xepersian-21.8-21.9.zip
(619 بایت) دانلود 10 بار
mingranina
 
پست‌ها : 58
تاریخ عضویت: 17 سپتامبر 2016, 07:53

پاسخ: انتشار نسخهٔ جدید، 21.8، بستهٔ xepersian توسط مؤلف مرب

پستتوسط mingranina » 27 نوامبر 2018, 08:46

هادی صفی اقدم نوشته است:[نمایش]
با سلام

سلام. وقت بخیر
در این پست نوشتین که فلان خط کد را تغییر بدیم.
و چند پیام قبلتر هم از مجوز LPPL بسته‌ها در لاتک صحبت کردین.
در صورت تغییر در کد بسته‌ای باید طبق مجوزی که ازش صحبت کردین، آن بسته باید با نام دیگری ذخیره شود.
مثلا
mingraninapersian.sty
mingraninabidi.sty
و ...
بیزحمت به این پاسخ‌تون اضافه بفرمایین تا باعث نقض حق نویسنده و کپی رایت نشین و دوستانی که انجام میدن، بدون آگاهی و سهوی باعثش نشن.
ممنونم.

با سلام

با تشکر از تذکر شما، پیام مورد نظر اصلاح شد.

با احترام
mingranina
 
پست‌ها : 58
تاریخ عضویت: 17 سپتامبر 2016, 07:53

پاسخ: انتشار نسخهٔ جدید، 21.8، بستهٔ xepersian توسط مؤلف مرب

پستتوسط هادی صفی اقدم » 30 نوامبر 2018, 01:13

mingranina نوشته است:[نمایش]
هادی صفی اقدم نوشته است:[نمایش]
با سلام

سلام. وقت بخیر
در این پست نوشتین که فلان خط کد را تغییر بدیم.
و چند پیام قبلتر هم از مجوز LPPL بسته‌ها در لاتک صحبت کردین.
در صورت تغییر در کد بسته‌ای باید طبق مجوزی که ازش صحبت کردین، آن بسته باید با نام دیگری ذخیره شود.
مثلا
mingraninapersian.sty
mingraninabidi.sty
و ...
بیزحمت به این پاسخ‌تون اضافه بفرمایین تا باعث نقض حق نویسنده و کپی رایت نشین و دوستانی که انجام میدن، بدون آگاهی و سهوی باعثش نشن.
ممنونم.

با سلام

با تشکر از تذکر شما، پیام مورد نظر اصلاح شد.

با احترام


سلام مجدد. ممنونم وقت گذاشتین
ولی باز این طبق مجوز LPPL نیست.
چون فایل اصلی رو رفتن ادیت کردن. و یکی کپی از ادیت نشده گرفتن که برای روز مبادا.
باید فایل اصلی ادیت شد،
نامش عوض بشه.
و در داخل بسته زی‌پرشین هم بره اون فایل با نام جدید رو فراخوانی کنه.
ضمنا خود فایل بسته xepersian.sty و ... همه باید تغییر نام پیدا کنن احتمال.
ممنون میشم انجام بدین برای احترام به حق کپی رایت
موفقتر باشین
هادی صفی اقدم
 
پست‌ها : 24
تاریخ عضویت: 08 اکتبر 2012, 02:10
محل سکونت: کامپیوتر! تهران - تبریز

پاسخ: حروفچینی فارسی در زیپرشین (XePersian) و بای‌دای (bidi)

پستتوسط mingranina » 30 نوامبر 2018, 06:45

هادی صفی اقدم نوشته است:[نمایش]
سلام مجدد. ممنونم وقت گذاشتین
ولی باز این طبق مجوز LPPL نیست.
چون فایل اصلی رو رفتن ادیت کردن. و یکی کپی از ادیت نشده گرفتن که برای روز مبادا.
باید فایل اصلی ادیت شد،
نامش عوض بشه.
و در داخل بسته زی‌پرشین هم بره اون فایل با نام جدید رو فراخوانی کنه.
ضمنا خود فایل بسته xepersian.sty و ... همه باید تغییر نام پیدا کنن احتمال.
ممنون میشم انجام بدین برای احترام به حق کپی رایت
موفقتر باشین

با سلام

ضمن تشکر از تذکر مجدد شما، به نظر می‌رسد که اطلاعات حقوقی شما بسیار بیشتر از بنده است. بنابراین با توجه به حساسیت مدیران محترم سایت IRMUG به رعایت مسائل حقوقی، بسیار سپاسگزار خواهم بود چنانچه «بایدها» و »نبایدها»ی مجوز LPPL را همراه با بندهای مربوطه که به پیام مورد نظر مربوط می‌شود ذکر نموده و موارد نقض شده در پیام را نیز مشخص فرمایید تا پس از بررسی مدیران محترم سایت، پیام مربوطه به نحو مقتضی اصلاح و یا در صورت لزوم حذف شود.
مجدداً از تذکرات ارزشمند حضرت‌عالی تشکر می‌کنم.

با احترام
mingranina
 
پست‌ها : 58
تاریخ عضویت: 17 سپتامبر 2016, 07:53

پاسخ: حروفچینی فارسی در زیپرشین (XePersian) و بای‌دای (bidi)

پستتوسط هادی صفی اقدم » 30 نوامبر 2018, 11:27

mingranina نوشته است:[نمایش]
هادی صفی اقدم نوشته است:[نمایش]
سلام مجدد. ممنونم وقت گذاشتین
ولی باز این طبق مجوز LPPL نیست.
چون فایل اصلی رو رفتن ادیت کردن. و یکی کپی از ادیت نشده گرفتن که برای روز مبادا.
باید فایل اصلی ادیت شد،
نامش عوض بشه.
و در داخل بسته زی‌پرشین هم بره اون فایل با نام جدید رو فراخوانی کنه.
ضمنا خود فایل بسته xepersian.sty و ... همه باید تغییر نام پیدا کنن احتمال.
ممنون میشم انجام بدین برای احترام به حق کپی رایت
موفقتر باشین

با سلام

ضمن تشکر از تذکر مجدد شما، به نظر می‌رسد که اطلاعات حقوقی شما بسیار بیشتر از بنده است. بنابراین با توجه به حساسیت مدیران محترم سایت IRMUG به رعایت مسائل حقوقی، بسیار سپاسگزار خواهم بود چنانچه «بایدها» و »نبایدها»ی مجوز LPPL را همراه با بندهای مربوطه که به پیام مورد نظر مربوط می‌شود ذکر نموده و موارد نقض شده در پیام را نیز مشخص فرمایید تا پس از بررسی مدیران محترم سایت، پیام مربوطه به نحو مقتضی اصلاح و یا در صورت لزوم حذف شود.
مجدداً از تذکرات ارزشمند حضرت‌عالی تشکر می‌کنم.

با احترام

سلام. خواهش می‌کنم.
اتفاقا اصلا اطلاعات زیادی ندارم.
فقط می‌دانم بسته‌ای تغییری توش ایجاد بشه، باید نامش عوض بشه.
و چون فایل def را ع.ض کردین باید نامش عوض بشه.
و چون نام اونو عوض کنین، باید داخل بسته زی‌پرشین هم (چون داخل اون فراخوانی شده) اون هم تغییر کنه،
اون هم پس نامش عوض بشه و باقی قضایا
اگه اشتباه می‌کنم، بفرمایین
با تشکر قبلی
هادی صفی اقدم
 
پست‌ها : 24
تاریخ عضویت: 08 اکتبر 2012, 02:10
محل سکونت: کامپیوتر! تهران - تبریز

پاسخ: حروفچینی فارسی در زیپرشین (XePersian) و بای‌دای (bidi)

پستتوسط mingranina » 30 نوامبر 2018, 12:18

هادی صفی اقدم نوشته است:[نمایش]
سلام. خواهش می‌کنم.
اتفاقا اصلا اطلاعات زیادی ندارم.
فقط می‌دانم بسته‌ای تغییری توش ایجاد بشه، باید نامش عوض بشه.
و چون فایل def را ع.ض کردین باید نامش عوض بشه.
و چون نام اونو عوض کنین، باید داخل بسته زی‌پرشین هم (چون داخل اون فراخوانی شده) اون هم تغییر کنه،
اون هم پس نامش عوض بشه و باقی قضایا
اگه اشتباه می‌کنم، بفرمایین
با تشکر قبلی

با سلام

همین مطالبی که می‌فرمایید از کدامیک از بندهای مجوز LPPL مستفاد می‌شود؟
توجه بفرمایید که در این سایت هیچ بسته‌ای نه منتشر و نه برای آن تبلیغ شده است.
همچنین کدامیک از پیام‌های فوق باید تغییرکنند؟ و چگونه تغییر کنند تا نظر شما تأمین شود؟
اگر بر مبنای همان بندهای مجوز LPPL که مؤید موارد مورد نظر شما هست و اعلام خواهید فرمود، یک متن نمونه برای جایگزینی متنی که مشکل حقوقی دارد پیشنهاد بفرمایید بسیار بسیار ممنون خواهم شد و پیام مورد نظر در اسرع وقت در چارچوب پیشنهاد حضرت‌عالی اصلاح و در صورتی که اصلاح امکان‌پذیر نباشد پیام حذف خواهد شد.

با احترام
mingranina
 
پست‌ها : 58
تاریخ عضویت: 17 سپتامبر 2016, 07:53

پاسخ: حروفچینی فارسی در زیپرشین (XePersian) و بای‌دای (bidi)

پستتوسط هادی صفی اقدم » 30 نوامبر 2018, 12:55

در حدی که گفتم اطلاع دارم. و متاسفانه وقت شو ندارم دقیق دریارم با کدام صفحه و خطش....
شما لطف کنین زحمت شو بکشین مثل مطالب مفیدی که اینجا همیشه گذاشتین، من ممنون شما خواهم شد.
فایلی قرار داده نشده درسته.
ولی اولین پیام هم منظورم این بود که وقتی نوشتین کاربران فلان فایل tex رو ویرایش کن،
کنارش دقیقا بنویسین که اسم فایل رو هم عوض کنن.
و چون اون فایل def‌ رو ویرایش کنن، دیگه زی‌پرشین کار نمی‌کنه (چون اون فایل def توسط فایل‌های دیگر زی‌پرشین فراخوانی می‌شود. و چون تغییر نام پیدا کرده، دیگه نیست که فراخوانی بشه و اجرا اصلا نمیشه و باقی مسایل...) و
باید بقیه فایل‌هایی که این فایل رو فراخوانی کردن به مشکل میخورن و باید ادیت بشن،
پس اونا هم باید تغییر نام پیدا کنن که با مجوز LPPL و کپی رایتش در تناقض نباشه.
حذف نفرمایین بهتر هست. وقت گذاشتین و زحمت کشیدین.
همین یک خط بنویسین که اسم فایل ها عوض بشه و اسم فایل‌هایی که بخاطر استفاده از اون فایل def ، محتواشون و بالطبع اسم شون، به نظرم کافی است و حذف نشه.
با تشکر قبلی
هادی صفی اقدم
 
پست‌ها : 24
تاریخ عضویت: 08 اکتبر 2012, 02:10
محل سکونت: کامپیوتر! تهران - تبریز

قبلیبعدی


بازگشت به خط، زبان و قلم‌سازی


کاربران حاضر در این انجمن: بدون کاربران آنلاین و 2 مهمان