تبليغاتX
فارسی تک - فارسی تک از منظری دیگر

فارسی تک

آشنایی با نرم افزار حروفچینی علمی فارسی تک (تحت ویندوز)

سلام.

حتما برای خیلی از شما کاربران فارسی تک، این سوال پیش آمده که آینده ی فارسی تک چگونه خواهد بود؟ چه کارهایی باید کرد که فارسی تک ارتقا یابد؟

برای پاسخ دادن به پرسشهای بالا، بهتر است که فارسی تک را از لحاظ ساختاری مورد بررسی قرار دهیم:

فارسی تک به واقع چیست؟

فارسی تک تحت MiKTeX ، به دیدگاه دقیقتر، یک فرمت تحت LaTeX است. (در مورد فارسی تک روی توزیعهای دیگر TeX، اطلاعی ندارم.)  یعنی دستورهای فارسی تک، چیزی غیر از دستورات LaTeX نمی باشند. در واقع فارسی تک، تنها یک لایه روی LaTeX است.

می خواهیم با مفهوم "فرمت" در حیطه ی TeX آشنا شویم:

هر فرمت، دارای ۲ مشخصه ی اساسی است:

۱) Compiler(مترجم)

۲) فایل ورودی فرمت

 

Compiler

Compiler یا مترجم، موتوری است که فایلهای ورودی هر فرمت را به زبان قابل فهم برای ماشین ترجمه می کند و در صورت نبود مشکل، خروجی تولید می کند. چند نمونه کامپایلر در حیطه ی TeX عبارتند از: TeX, LaTeX, PDFLaTeX, Omega, XeTeX, MetaPost & MetaFont.

نکته ی جالب این جا است که خود این کامپایلرها هم  با یک فرمت شناسایی می شوند!

تفاوت این کامپایلرها به غیر از تفاوت در فایلهای سورس، می تواند در فایلهای ورودی فرمت، قالب فایلهای ورودی (Unicode,ASCII و ...)، نوع فایل خروجی و ... باشد.

 

فایل ورودی فرمت

فایل ورودی فرمت، یعنی فایلی که فرمت را به Compiler می شناساند. معمولا فایلهای فرمت بر اساس فایلهای فرمت مادر ( فایلهای فرمت Compiler ها) طراحی می شوند. به عنوان مثال فایل فرمت فارسی تک، دارای محتویات زیر است:

\ifx\pdfoutput\undefined\else\pdfoutput=1\fi
\input lplain.tex
\input farsitex.tex
\dump
\endinput

 خط اول می گوید که خروجی پیش فرض در فارسی تک، به فرمت PDF باشد.

خط دوم حاکی آن است که  فایلهای فرمت بر اساس فایلهای فرمت مادر ( فایلهای فرمت Compiler ها) طراحی می شوند.

خط سوم، تعریفات جدید که هنگام تولید هر فرمت، تولید می شود را فراخوانی می کند.

 

ساختار فارسی تک

فارسی تک همانند هر بسته ی حروفچینی تحت LaTeX، دارای بخش های زیر است:

۱) فایلهای تعاریف قلم 

۲) فایلهای باینری و اجرایی

۳)  فایلهای تعاریف LaTeX

 

فایلهای تعاریف قلم 

این دسته فایلها، فایلهایی هستند که قلمها را به LaTeX معرفی می کنند. این فایلها، خود به چند دسته تقسیم می شوند:

الف) فایلهای رمزینه (Encoding)

ب) فایلهای نقشه (Map)

پ) فایلهای سورس قلم (به زبان MetaFont)

ت) فایلهایی که اندازه و ابعاد هر نویسه (Glyph) را برای TeX معرفی می کنند. (TeX Font Metrics)

ث) فایلهای مربوط به برداری و مقیاس پذیر کردن قلم (PostScript Fonts Binary/ASCII)

ج) فایلهای معرفی قلم به لاتک (Font Definition)

 

فایلهای رمزینه (Encoding)

این دسته فایلها که دارای پسوند enc هستند، در واقع آدرس هر نویسه ی قلم را به ما نشان می دهند. مثلا می گویند که شماره ی فلان نویسه در جدول نویسه ها از ( ۰ تا ۲۵۵) چه عددی است.

 

فایلهای نقشه (Map)

این دسته فایلها که دارای پسوند map هستند، لیست قلمهای ثبت شده و شناخته شده ی LaTeX را ارایه می کنند. این فایلها، حاوی خطوطی مثل خط زیر هستند:

kamranbb kamranbn " +0.22 SlantFont "  

خط بالا، بخشی از فونت Kamran را به همراه حالت فونت و نام فایل فونت، در اختیار LaTeX قرار می دهد.

 

فایلهای سورس قلم (به زبان MetaFont)

این دسته فایلها که دارای پسوند mf هستند، سورس به زبان MetaFont قلم را در اختیار می گذارند. MetaFont زبانی است برای تولید فونت در TeX.

این دسته فایلها برای نمایش خروجی DVI لازم هستند. زیرا فایلهای DVI برای نمایش قلمها، از فرمت PK استفاده می کنند و بدون وجود فایلهای سورس، امکان تولید فایل PK وجود ندارد.

 

فایلهایی که اندازه و ابعاد هر نویسه (Glyph) را برای TeX معرفی می کنند. (TeX Font Metrics)

این دسته فایلها که دارای پسوند tfm هستند، ابعاد و اندازه های هر نویسه ی قلمها را در TeX مشخص می کنند.

 

فایلهای مربوط به برداری و مقیاس پذیر کردن قلم (PostScript Fonts Binary/ASCII)

این دسته فایلها که دارای پسوند pfa و pfb هستند، باعث افزایش کیفیت خروجی PDF در حد عالی می شوند. با وجود این دسته فایلها، فایلهای PDF تا حد بی نهایت، قابل Zoom شدن هستند (بدون افت کیفیت).

 

فایلهای معرفی قلم به لاتک (Font Definition)

این دسته فایلها که معمولا دارای پسوند fd هستند (ولی در فارسی تک با پسوند fd9 مشخص شده اند)، شکل قلم و تمامی اندازه های مورد نیاز آن را برای استفاده در مستندات، به LaTeX معرفی می کنند.

فایلهای باینری و اجرایی

فایلهای مربوط به ویرایشگر، فایل چسباننده ی نویسه های فارسی، فایل نمایه ساز و ... را شامل می شود.

ویرایشگر

فارسی تک، ویرایشگری دارد که از آن برای تولید پرونده های ورودی بهره می گیرد.

 

فایل چسباننده ی نویسه های فارسی

منظور، همان فایل ftx2tex.exe می باشد.

 وظیفه ی این فایل، تبدیل کردن ورودی فارسی تک به فرمت tex است. که LaTeX این فایل tex را کامپایل می کند.

 ولی این تنها وظیفه ی آن نیست. این فایل، نویسه های فارسی را به هم می چسباند. در واقع بدون وجود این فایل، شاید خروجی فارسی تک برای کلمه ی "فارسی تک" به صورت "ف ا ر س ی ت ک " می بود!

 

فایل نمایه ساز

این فایل که fmakeidx.exe نام دارد، در واقع ابزاری است برای ساختن نمایه به زبان فارسی.

 

 

فایلهای تعاریف LaTeX

این دسته فایلها، فارسی تک را به عنوان یک بسته ی جدید، به LaTeX معرفی می کنند.

 

 

معایب فارسی تک

فارسی تک دارای معایبی است که در زیر به آن می پردازیم:

۱) فارسی تک فعلی، بر مبنای LaTeX 2.09 است که ۱۴ سال است از انقضای آن می گذرد.

امروزه تمامی بسته های مفید برای LaTeX 2e نوشته می شوند که با توجه به مطلب بالا، امکان استفاده از آنها تقریبا در فارسی تک غیر ممکن است.

۲) فارسی تک، دارای پرونده های ورودی با قالب خاصی است.

این قالب خاص، باعث می شود که فایلهای فارسی تک به سادگی و در همه ی محیط ها مثل ویرایشگرهای یونیکد، قابل رویت نباشند.با توجه به رویکرد جامعه ی کاربران غیر انگلیسی LaTeX به یونیکد، این مهم باعث طرد شدن فارسی تک خواهد شد.

۳) به گفته ی بعضی از نویسندگان فارسی تک، فارسی تک، اصولی نوشته نشده است.

شاید منظورشان(به زعم بنده) همان طراحی یک ویرایشگر با قالب خاص + باگهای ftx2tex به عنوان میانجی باشد که باگهای موجود در دو ابزار بالا (و همچنین خود باگهای LaTeX 2.09 که در LaTeX 2e رفع شده اند) باعث کمبودهای فارسی تک شده اند.

 

 فارسی تک جدید باید چه ویژگیهایی داشته باشد؟

با توجه به کمبودهای فعلی بیان شده ی فارسی تک، باید راهکارهای زیر را دنبال کرد:

۱) فارسی تک را به LaTeX 2e حمل کرد.

در این راستا، باید ماکروهای فارسی تک، بر اساس تعاریف LaTeX 2e باز نویسی شوند.

۲) قالب ورودی فارسی تک را یونیکد در نظر گرفت.

مزیت این کار، رهایی از محدودیت های ویرایشگر فارسی تک است.

 شاید بسیاری از مشکلات عجیب و غریب فارسی تک، به دلیل وجود همین ویرایشگر باشد که گاها باعث خطاهای ftx2tex به عنوان سازنده ی فایل tex آماده ی کامپایل برای LaTeX می شود و LaTeX هم آن فایل نه چندان سازگار با روحیاتش(!) را در بعضی اوقات به طرز نامناسبی ترجمه می کند.

برای کارهای بالا، بهترین کار، استفاده از تجربیات بسته ی Arabi است که تمامی مزیتهای بالا را دارد.