من هر روز تعدادی کد به بسته bidi اضافه میکنم و هر زمان تمام شد تغییرات لازم را هم در زیپرشین انجام میدهم. زیپرشین احتیاج زیادی به تغییر ندارد و کار اصلی برای بسته bidi است که کمی وقتگیر است. در حال حاضر اگر از بسته bidi روی github استفاده کنید، امکانات زیر کار میکند:
۱) دستورات \setRTL و \setLTR و سایر دستورات مشابه مانند \setRL و ...
۲) دستورات \LR و \RL و سایر دستورات مشابه
۳) دستور \setRTLmaths برای حروفچینی راست به چپ ریاضی
۴) دستور \RTLcases
۵) دستورات شرطی مربوط به حروفچینی دوجهته
۶) محیطهای LTR و RTL
۷) گزینههای RTLdocument و rldocument
۸) گزینه جدید RTLmaths برای حروفچینی ریاضی راست به چپ
۹) امکانات زیرنویس استاندارد، انواع خطهای زیرنویس و سایر موارد مشابه
سعی میکنم از هفته دیگر، آخر هر هفته کارهایی را که انجام میدهم و دستوراتی را که کار میکنند بنویسم. فکر میکنم تا یک ماه دیگر کار بسته bidi تمام شود و زیپرشین هم فقط چندانی نخواهد گرفت شاید یک یا دو هفته.
به تمام افرادی که به برنامهنویسی برای تک علاقه دارند پیشنهاد میکنم حتماً زبان برنامهنویسی Lua را یاد بگیرند چون با دانستن این زبان برنامهنویسی احتیاج زیادی به دانستن ماکرونویسی تک نخواهید داشت.
قسمت سخت کدنویسی یعنی تمام تغییراتی که در فرمت لاتک برای حروفچینی دوجهته لازم بود انجام شده است. قسمت باقیمانده تغییرات لازم در بستهها و کلاسها برای حروفچینی دوجهته میباشد که کار آسانی است (البته بسیاری از بستهها و کلاسها احتیاجی به تغییر ندارند که حجم کار را کمی سبک میکند). اگر مشتاق به آزمایش آن هستید میتوانید سیمرغ را از لینک پائین دریافت کرده و آزمایش کنید:
https://github.com/persian-tex/simurgh
چند نکته:
۱) تجربه زیپرشین و bidi نشان داد که این دو بسته محتاج هم هستند و بنابراین ایجاد دو بسته مجزا منطقی نبود. تمام کارها در سیمرغ انجام میشود (چه آنهایی که مربوط به حروفچینی دوجهته باشد و چه آنهایی که مربوط به ساختار زبان پارسی باشد).
۲) فایل سورس dtx دیگر وجود نخواهد داشت.
۳) سیمرغ بسیار تمیزتر از bidi و xepersian است، کدهای اضافی به خاطر باگ موتور وجود ندارد و از طرفی دیگر دستورات اضافه که هیچ کاربردی ندارند، وجود ندارند.
۴) در سیمرغ دیگر فایلهای def وجود ندارند، به جای آن همه تغییرات در بستههای مربوطه با پسوند sty انجام میشود. برای نمونه تغییرات مربوط به فرمت لاتک و فایل latex.ltx در سیمرغ در فایل simurgh-latex.sty انجام میشود.
۵) نام فایل loadingorder-bidi.def به بسته یا فایل simurgh-loader.sty تغییر پیدا کرده است.
۶) در فرمانهای داخلی یا فرمانهای کاربر بستههای bidi یا xepersian که از نام bidi یا xepersian برای نام فرمان استفاده شده بود، این به simurgh تغییر پیدا کرده است. برای نمونه اگر دستوری به نام \bidi@mpfootnoterule وجود داشت، این دستور به \simurgh@mpfootnoterule تغییر پیدا کرده است.
با سلام . عرض احترام و خسته نباشید و تشکر از زحمات حضرتعالی.
برای امتحان سیمرغ بسته را با چه نامی فراخوانی کنیم. من دستور
\usepackage{simurgh-bidi}
را وارد نمودم اما خروجی نداشتم.
در حال حاضر روی قسمت حروفچینی دوجهته کار میکنم که تقریباً حدود یک ماه دیگر تمام میشود بعد از آن روی قسمت حروفچینی پارسی کار خواهم کرد. در حال حاضر تنها میتوانید برای حروفچینی دوجهته و با استفاده از متن لاتین امکانات حروفچینی دوجهته آن را آژمایش کنید.
من امروز راهنمایی ابتدایی نوشتم که چیز زیادی درش نیست (تنها نحوه نصب، مجوز و کمی توضیحات دیگر). این راهنما در آینده راهنمای اصلی سیمرغ خواهد بود. در روزهای آینده سعی میکنم هر چیزی که تا به حال کد نوشتهام را در راهنما بیارم و هر امکان جدیدی را که اضافه میکنم در راهنما توضیخاتش را بنویسم. این راهنما با نام simurgh.pdf در پوشه doc وجود دارد:
https://github.com/persian-tex/simurgh
با تغییرات امروز میتوانید پارسی حروفچینی کنید.
نکته: همانطور که در پرونده لاتک پیوست میبینید، نام تعدادی از فرمانها نسبت به آنچه در زیپرشین وجود داشت، عوض شده است. در حقیقت نام بسیاری از فرمانها نسبت به آنچه در زیپرشین وجود داشت تغییر کرده است. سعی بر این است تا سیمرغ interface راحتتر و تمیزتری داشته باشد. همچنین syntax گزینههای بسته و نحوه فراخوانی آنها بسیار تغییر کرده است. برای مثال اگر بخواهید سیمرغ را با گزینه خط زیرنویس به اندازه پهنای متن و گزینه دیگر شما الگوریتم یونیکد محلی باشد، سیمرغ را بصورت زیر فراخوانی میکنید:
\usepackage[footnote rule=textwidth,%
unicode bidi=local]{simurgh}
من نمیدونم چرا با سیمرغ نمیتونم جواب بگیرم. لطفا فایل log مرا چک کنید!
نقل قول از: فرشاد ترابی در سپتامبر 10, 2013, 08:57:26 بعد از ظهر
من نمیدونم چرا با سیمرغ نمیتونم جواب بگیرم. لطفا فایل log مرا چک کنید!
فایل logت کامل نیست و این فایل ناقص هم خطایی نشون نمیده. مشکلت چیه؟
همچین خطایی صادر میشه
error: ./simurgh-unibidi-core.lua:172: attempt to call upvalue 'insert_node_before' (a nil value)
.
<recently read> \endtemplate
l.9 \maketitle
?
نقل قول از: فرشاد ترابی در سپتامبر 10, 2013, 09:37:22 بعد از ظهر
همچین خطایی صادر میشه
error: ./simurgh-unibidi-core.lua:172: attempt to call upvalue 'insert_node_before' (a nil value)
.
<recently read> \endtemplate
l.9 \maketitle
?
تکلایوت بروز نیست. اینجور مواقع اگر وقتی گیر میکنه یک r بنویسی و بعد اینتر رو بزنی فایل log کامل درست میشه.
برای منم خطا میده
من از تکلایو 2013 نسخهی نهایی استفاده میکنم. یعنی بعد از اون بازهم باید بروز کنم؟
نقل قول از: حسن قربانزاد در سپتامبر 10, 2013, 09:42:19 بعد از ظهر
برای منم خطا میده
خطای شما به خاطر اینه که رفتین داخل پوشهی tex و تک تک فایلها را روشون کلیک کردید و دانلود کردین.
به جای این کارها، در آدرس
https://github.com/persian-tex/simurgh
رفته و آن پایین یک دکمه به نام Download Zip هست آنرا بزنید تا کل پوشه به صورت یک فایل زیپ دانلود شود.
نقل قول از: فرشاد ترابی در سپتامبر 10, 2013, 09:47:44 بعد از ظهر
خطای شما به خاطر اینه که رفتین داخل پوشهی tex و تک تک فایلها را روشون کلیک کردید و دانلود کردین.
دانلود کردم، البته قبلاً کل فایلها را از طریق Download zip دانلود کرده بودم ولی اجرا نمیشه.
نقل قول از: حسن قربانزاد در سپتامبر 10, 2013, 10:00:10 بعد از ظهر
دانلود کردم، البته قبلاً کل فایلها را از طریق Download zip دانلود کرده بودم ولی اجرا نمیشه.
شما xelatex رو روی فایل اجرا کردی در حالیکه باید با lualatex اجراش کنی
با lualatex هم نتیجه نمیدهد قبلتر دکتر کارنپهلو فرموده بودند اگر گیر کرد r باید زده شود، همان کار را هم کردم ولی متأسفانه نشد.
در منوی user قسمت user-command (برای تکمیکر) روی edit user commands یک گزینه جدید اضافه کن و در قسمت command دستور زیر را وارد کن:
lualatex -interaction=nonstopmode -synctex=-1 %.tex
اگه سند رو با این فرمان جدید اجرا کنی سندت با lualatex اجرا میشه و حتما نتیجه میگیری
با تشكر از همه دوستان
فكر ميكنم مشكل من با lualatex هست كه فونتها را نميشناسد چون در پست زير هم نتونستم اجرا بگيرم
http://www.parsilatex.com/forum/SMF/index.php?topic=5352.15 (http://www.parsilatex.com/forum/SMF/index.php?topic=5352.15)
البته دوستان لطف كردن توضيح دادن ولی نتونستم فونتها را به دیتابیس اضافه کنم!!
! LuaTeX fatal error not enough memory.
<to be read again>
relax
l.100 \fontencoding\encodingdefault\selectfont
Here is how much of LuaTeX's memory you used:
7130 strings out of 494714
100000,221844 words of node,token memory allocated 269 words of node memory still in use:
2 hlist, 1 rule, 1 kern, 1 attribute, 41 glue_spec, 1 attribute_list, 2 if_st
ack, 1 write, 1 dir nodes
avail lists: 2:8,3:1,4:1,6:2,9:2
10539 multiletter control sequences out of 65536+600000
16 fonts using 432071 bytes
55i,0n,41p,918b,85s stack positions out of 5000i,500n,10000p,200000b,100000s
! ==> Fatal error occurred, no output PDF file produced!
نقل قول از: حسن قربانزاد در سپتامبر 12, 2013, 02:58:43 بعد از ظهر
با تشكر از همه دوستان
فكر ميكنم مشكل من با lualatex هست كه فونتها را نميشناسد چون در پست زير هم نتونستم اجرا بگيرم
http://www.parsilatex.com/forum/SMF/index.php?topic=5352.15 (http://www.parsilatex.com/forum/SMF/index.php?topic=5352.15)
البته دوستان لطف كردن توضيح دادن ولی نتونستم فونتها را به دیتابیس اضافه کنم!!
در پنجره فرمان ویندوز دستور زیر را اجرا کن ببین دیتا بیس تشکیل میشه یا هنگ می کنه ؟
luaotfload-tool -u -f -vvv
لطفا شکل خروجی آنرا اینجا قرار بده
شکل lua1 شروع دستور و شکل lua2 اتمام کار را برای سیستم من نشان می دهد البته بدون هنگ کردن،
روی بعضی سیستمها هنگ می کنه
برای من هفت فونت به صورت خودکار با اجرای این دستور به بلک لیست اضافه شد چون هنگ نکرد
در صورت هنگ کردن باید اسم فونت را از پنجره فرمان ویندوز کپی و به انتهای بلک لیست اضافه کنی (ظاهرا نیاز به ذکر مسیر کامل فونت هم نداره فقط اسم فونت مثل آنچه که در خروجی پنجره فرمان باشه کافی است)
برای باز کردن فایل luaotfload-blacklist.cnf به جای notepad از ادیتورهای تک مثل تکمیکر استفاده کنی بهتر است
خروجی بلک لیست برای من به صورت شکل blacklist.jpg است مسیر فایل بلک لیست هم بر روی سیستم من در شکل مشاهده می شود
واقعاً متشكرم و ممنونم، هر دو مورد حل شد و بدون خطا اجرا ميگيرد.