این کتاب شامل ۵۲۵ صفحه، ۱۶۵ شکل، ۱۲۸ شبه کد، فرهنگ فارسی به انگلیسی و فهرست کامل الفبایی است. تصوير جلد كتاب ، فهرست مطالب ، مقدمه ، درباره كتاب/مولف ، فصل اول و مراجع را ببينيد.
نحوه ی نصب فارسی تک روی MiKTeX 2.8
مراحل زیر رو بپیمایید:
۱) ابتدا MiKTeX 2.8 رو از اینجا دانلود و بعدش اون رو نصب کنید. برای دانلودش از Internet Download Manager استفاده کنید. در هنگام نصب پیش فرضها را تغییر ندهید. بعد از نصب، سیستم رو Restart کنید.
۲) فایل FarsiTeX.zip رو از اینجا دانلود و بعد از دانلود به یه جای دلخواه unzip کنید. این فایل FarsiTeX.zip نسبت به فایل FarsiTeX.zip که برای نصب FarsiTeX بر روی MiKTeX 2.7 داده بودم تغییراتی کرده که اونا رو می گم:
- قلمهای پارسی در فارسی تک نسبت به قلم علمی و قلمهای انگلیسی، درشت تر بودند. آقای مرتضی خدادادیان یک اندازه ی کوچکتری برای قلمهای پارسی پیشنهاد کردند و راه کار هم دادند که بنده اون راه کار رو اعمال کردم.
- در farsitex1.0pre1 آقای اسفهبد و در ادیتور فارسی تک، هنگام زدن یک ] یا } خود به خود ۲ تا باز می شد. این خاصیت گاهی آزار دهنده می شد. حذفش کردم. یعنی یکی بزنی، یکی میاد.
- در farsitex1.0pre1 هنگام استفاده از دستور بخش (\part) علایم عجیب و غریبی به جای کلمه ی بخش نمایش داده می شد که اصلاحش کردم.
۳) تو فایلی که unzip کردید، فایلها به شیوه ی شاخه بندی MiKTeX، شاخه بندی شدن. پس باید طبق ساختاری که می بینید، فایلهای unzip شده رو به دایرکتورهای مناسب MiKTeX کپی کنید. مثلا:
|
دایرکتوری مبداء فایلهای unzip شده |
دایرکتوری مقصد در MiKTeX |
|
FarsiTeX\MiKTeX 2.8\miktex\bin |
MiKTeX 2.8\miktex\bin |
|
FarsiTeX\MiKTeX 2.8\fonts\enc\dvips\farsitex |
MiKTeX 2.8\fonts\enc\dvips\farsitex |
۴) بعد از اتمام این کارا، در منوی Run دستور mo_admin (نه دستور mo) رو اجرا کنین. به منوی General رفته و روی دکمه ی Refresh FNDB کلیک کنید و چند لحظه صبر کنید تا MiKTeX به روز شه.
۵) بعد از اتمام این کار، به منوی Formats رفته و رو دکمه ی New کلیک کنید. تو پنجره ای که باز میشه، طبق جدول زیر جاهای خالی رو پر کنین:
|
FarsiTeX |
Format key: |
|
FarsiTeX |
Format name: |
|
pdftex |
Compiler: |
|
farsitex.ini |
Input file name: |
|
farsitex.efmt |
Output file name: |
|
<این قسمت را خالی بگذارید> |
Preloaded format: |
|
FarsiTeX |
Description: |
۶) بعد از زدن OK تو این قسمت، تو لیست فرمتها رو FarsiTeX، تک کلیک کنین و دکمه ی Build رو فشار بدین.
۷) تو منوی Run، دستور cmd رو اجرا کنین و تو پنجره ی داسی که باز میشه دستور زیر رو اجرا کنین:
initexmf --edit-config-file updmap
بعد از اجرای این دستور می بینید که فایل متنی updmap.cfg باز می شود. خطوط زیر را به این فایل اضافه کرده و تغییرات را ذخیره کنید:
# farsitex
Map farsitex.map
حالا دستور initexmf --mkmaps را در پنجره ی DOS اجرا کنید.
۸) فایل FarsiTeX.fon رو که تو فایلهای دانلود شده موجوده به دایرکتوری Windows\Fonts کپی کنید.
فارسی تک رو MiKTeX 2.8 نصب شده.
نکاتی درباره ی فارسی تک
۱) تو نام برخی از ماکروهای تغییراتی داده شده تا با اسم های نسخه های LaTeX2e هم اسمشون قاطی نشن. تو جدول زیر لیستشون کردم. این تغییرات رو باید لحاظ کنین(مثلا هنگام استفاده از دستور documentstyle\ )
|
نام قدیمی ماکرو |
نام جدید ماکرو |
|
article.sty |
oldarticle.sty |
|
report.sty |
oldreport.sty |
|
book.sty |
oldbook.sty |
|
slides.sty |
oldslides.sty |
|
epsf.tex |
oldepsf.tex |
و طبق یک قاعده ی کلی، هر گاه خواستید از یک فایل سبک LaTeX 2.09 جدید استفاده کنید، نام آن را تغییر دهید و آن را در دایرکتوری مناسب MiKTeX قرار دهید و این تغییر نام را هنگام استفاده از دستور documentstyle\ و دستورات مشابه لحاظ کنید.
۲) از این به بعد، بعد اجرای فارسی تک، فایل pdf خواهید داشت نه فایل dvi. بنابراین اگه رو شکلک View تو ویرایشگر فارسی تک کلیک کنین با پیغام خطا روبرو میشین.
اگر میخواهید خروجی شما به جای فایل PDF فایل DVI باشد، دستور زیر را در سرآغاز سند خود (بین دستور documentstyle\ و دستور {begin{document\) وارد کنید:
\pdfoutput=0
۳) هر بار که تو فایل فارسی تک تون تغییری ایجاد می کنین، قبلش فایل خروجی تون رو ببندین، بعد کامپایل کنین.
۴) از این به بعد برای گذاشتن عکس، بعد از فراخوانی ماکروی fgraphix.sty (در دستور documentstyle\ و در درون []) طبق جدول زیر عمل کنین:
|
عکسهای به فرمت jpeg |
عکسهای به فرمت pdf |
|
{filename.jpg}includegraphics\ |
{filename}includeepspdf\ |
دقت کنین که در \includeepspdf، عبارت filename، بدون پسوند pdf است.
۵) در واقع همان طور که می بینید، تنها لم و تفاوت نصب FarsiTeX روی MiKTeX 2.8 نسبت به MiKTeX 2.7 ، تفاوت برنامه ی واسط نصب است. یعنی تا به حال از واسط mo استفاده می شد، ولی در MiKTeX 2.8 از واسط mo_admin استفاده می شود.
موفق باشید...![]()
در لینکهایی که در انتهای این پست قرار دادهام، مبدل فایل متنی یونیکد (UTF8) به فارسیتک، سورس آن، و راهنمای آن در قالب یک نمونه قرار داده شده است. توضیحات اضافه را آنجا دادهام. هدف من از قرار دادن سورس مبدل، فقط ادای دین به جنبش متن باز است... و الا من هیچ ادعایی ندارم!
نسخهی ۰٫۵ دریافت
نسخهی ۰٫۶۳ دریافت
سلام.
جواب این سوالها رو خود من هم نمیدونم. اما بستهی color رو دوباره دستکاری کردم تا ۱) قابلیت انطباق بیشتری در fcolor وجود داشته باشد، و ۲) با خروجی PDF (منظورم موتور PDFe-TeXه) سازگار باشد؛ و ۳) برای کسی که میخواهد روش کار را ببیند قابل لمس باشد.
اگر قبلاً fcolor رو نصب کردید، با این یکی جایگزینش کنید (و قبلی رو فراموش کنید). این نسخه، به هنگام استفاده از موتور e-TeX، و یا با خروجی DVI از درایور DVIPS، و هنگام استفاده از موتور PDFe-TeX، از امکانات داخلی PDFTeX استفاده میکند. برای نصب هم کافیست fcolor.zip رو به دایرکتوری نصب فارسیتک، unzip کرده و Refresh کنید. بعد اون رو مثل سایر استایلها در پیشدرآمد سند بین []ها بیارید.
فقط (به علتی که خودم نمیدانم چیست)، هنگام استفاده از PDFe-TeX، دستور pagecolor\ خطا میگیرد.
خوب این تا اینجا. اما برای استفاده از دستورات رنگ هم یک نمونه در اینجا قرار دادهام.
http://www.parsupload.ir/uploads/9edf0fd6e5.zip
و دیگری در اینجا
http://www.parsupload.ir/uploads/db9a3a4d77.zip
برای محیط فارسی باید دستورات رنگ را بین عبارتهای \beginL و \endL محدود کنید و متن فارسی را بین \InF{} و \EnF{} قرار بدهید.
در ضمن دستوری مشابه textcolor\ تعریف کردم که در محیط فارسی کار کند و نیازی به کارهای بالا برای آن نباشد. این دستور بهصورت \Ftextcolor هست.
fcolor را میتوانید از اینجا دریافت کنید:
http://www.parsupload.ir/uploads/ee69d2bf91.zip
an other link (DVIPS compatible): http://persiandrive.net/883144
اگر شما هم این را با خودتان میگفتید (؟) کارهای زیر را انجام بدهید:
۱. به شاخهی زیر بروید (منظور از $$، پوشهی نصب فارسیتک است).
۲. تغییرات را ذخیره کنید (البته همیشه یک نسخه از فایل مبدا را نگهداری کنید).
۳. در قسمت start، به Run بروید و MO را اجرا کنید. بعد به قسمت TeX Formats رفته و روی فرمت FarsiTeX کلیک کنید و کلید Build را فشار دهید.
با این کار تغییرات دلخواه در فرمت فارسیتک اعمال میشود.
شاید این مطلب برای بعضیها که فارسی را روی miktex 2.5 و بالاتر نصب کردهاند، بهدرد بخور نباشد؛ اما شاید
برای آنها که miktex 2.4 را دارند، باشد!
وقتی که برای اولین بار farsitex 1.0 روی miktex 2.4 ارایه شد، خیلیها (منجمله خودم) فکر کردیم که فارسیتک، در ویندوز نقص دارد. اما مشکل آن بهخاطر کامپایلرش (etex) بود. در نشانی زیر، فایل زیپی را قرار دادهام که حاوی کامپایلر etex مربوط به miktex 2.0 است. این فایل را در دایرکتوریای که فارسیتک را در آن نصب کردهاید، unzip کنید. اگر هم دایرکتوری نصب فارسیتک، با miktex یکی است، در موقع unzip باید فایلها replace بشوند.
با این کار، مشکل فارسیتک در miktex 2.4 حل میشود (هر چند فکر میکنم هیچ کس حالا از 2.4 استفاده نکند!).
به همبن خاطر، وبلاگی جدید را به بلاگفا معرفی کردم تا مکانی باشد برای جمعآوری و انتقال این مطالب.
حیطهی کاری این وبلاگ، بیشتر حول ترجمهی مستندات استاندارد توزیعهای تک است و همچنین هر چیز دیگری که به نوعی مربوط به آنها است.
شمارهی کاربری برای آقا وحید و جناب SuB بهعنوان یک کاربر مدیر فرستاده شده و هر کس دیگری هم که علاقه دارد در وبلاگ مطلب بنویسد به من (Simorgh43@Gmail.com) اطلاع بدهد تا برایش حساب باز کنم.
نشانی این وبلاگ:
اول از همه فكر ميكنم خوب باشد كه وبلاگي را براي ابزارهاي جانبي حروفچيني مثل ابزارهاي گرافيكي اختصاص بدهيم. در اينصورت جناب SuB هم ميتوانند يك دورهي آموزش متاپست را هم بگذارند (خود من خيلي ضعيف هستم در اين مورد). اين وبلاگ ميتواند بهعنوان زيرمجموعهي وبلاگ فارسيتك باشد.
دوم، يك راهنماي برچسبگذاري در متاپست را به اين پست ضميمه كردهام. اين راهنما يك ترجمهي جزيي است
از Introduction to MetaPost كه نوشتهي خود John Hobby است.
با سلام به آقا وحيد و SuB و بقيهي بچهها.
من تازه به جمع بروبچههاي وبلاگ اضافه شدم و اميدوارم مزاحمتم بيشتر از منفعتم نباشد.
حيطهي كار حقير هم اصلا ماكرو نويسي و كارهايي كه جناب SuB و آقا وحيد بلدند نيست.
اما آيا تا بهحال برايتان اتفاق افتاده است كه خواسته باشيد برنامهاي را كه در يك ويرايشگر برنامه نوشتهايد،
به همان شكل در يك سند لاتك وارد كنيد؟
CCoder اين كار را در مورد برنامههاي C برايتان انجام ميدهد (يك كم تبليغي شد!).
توضيحات اضافه را در اينجا دادهام:
دستور \fancypage :
این دستور برای تعیین پسزمینه تمام صفحات یک سند به کار میرود. و شکل کلی آن به صورت زیر است:
>\fancypage{TEXT1}{TEXT2}
TEXT1 همان عبارت مورد نظر است. این عبارت میتواند عکس، متن یا ترکیبی از این دو باشد.
توجه: این دستور در فایل fancybox.sty تعریف شده است پس برای استفاده از این دستور ابتدا باید فایل یاد شده را فراخوانی کنید.
با توجه به اینکه دستور \fancypage از دستورات پیشفرض LaTeX 2.09 نیست و همچنین در فایل fancybox.sty هیچ توضیحی در مورد نحوه استفاده از این دستور داده نشده است، کاربرد آرگومان دوم این دستور را بنده حقیر نمیدانم و فکر نمیکنم نیازی به دانستن آن باشد.
دستور \thisfancypage :
این دستور نیز مشابه دستور \fancypage است و تنها تفاوت آنها در این است که \fancypage پسزمینه تمام صفحات سند را تعیین میکند ولی \thisfancypage پسزمینه صفحه فعلی سند را تعیین میکند.
مثال 1:
در این مثال نحوه استفاده از دستور \fancypage را میآموزید. کدهای زیر را در ویرایشگر فارسیتک تایپ نمایید:
>\documentstyle[persian,fancybox]{oldreport}
>\fancypage{\Huge\IE{SuB}}{}
>\begin{document}
>\english
>The first page
>\newpage
>The second page
>\newpage
>The third page
>\end{document}
خروجی آنرا مشاهده کنید. در خروجی 3 صفحه داریم که در هر صفحه در گوشه سمت چپ و پایین محدوده تایپ صفحه عبارت مورد نظر یعنی SuB چاپ شده است.
با مشاهده این مثال میفهمید که مبدا قرار گیری عبارت مورد نظر گوشه سمت چپ و پایین محدوده تایپ است. (محدوده تایپ کوچکتر از اندازه برگه است و به متغیرهای بُعد مختلفی از جمله \textwidth و \textheight و ... بستگی دارد.)
معمولاً این قرارگیری پیشفرض دستور \fancypage برای ما خوشآیند نیست و جای دیگری برای آن در نظر داریم. تنها کافی است با قرار دادن متن مورد نظر در عبارت دستور \put و تعیین مکان آن، مکان پسزمینه را تعیین کنید. برای آشنایی با نحوه این کار مثال زیر را مشاهده کنید.
مثال 2:
>\documentstyle[persian,fancybox]{oldreport}
>\fancypage{\put(200,200){\Huge\IE{SuB}}}{}
>\begin{document}
>\english
>The first page
>\newpage
>The second page
>\newpage
>The third page
>\end{document}
مشاهده میکنیم که مکان قرارگیری پسزمینه تغییر کرد.
ممکن است بخواهید که پسزمینه دقیقاً در وسط محدوده تایپ قرار گیرد در این صورت نیاز به تعریف دستور دیگری داریم که این دستور به صورت زیر تعریف میشود:
>\makeatletter
>\newsavebox\pagebackgroundbox
>\newdimen\backgroundwd
>\newdimen\backgroundht
>\def\preparebackground#1{
> \long\def\put(##1,##2)##3{\@killglue\raise##2\hbox to\z@{\kern##1 ##3\hss}\ignorespaces}
> \savebox{\pagebackgroundbox}{#1}
> \backgroundwd=.5\textwidth
> \addtolength{\backgroundwd}{-.5\wd\pagebackgroundbox}
> \backgroundht=.5\textheight
> \addtolength{\backgroundht}{-.5\ht\pagebackgroundbox}
> \put(\backgroundwd,\backgroundht){#1}
>}
>\makeatother
دستور تعریف شده دستور \preparebackground است با یک آرگومان که عبارت مورد نظر را گرفته و با محاسبه وسط محدوده تایپ، عبارت مورد نظر را در وسط محدوده تایپ قرار میدهد. نحوه استفاده از این دستور در مثال زیر آورده شده است:
مثال 3:
کدهای زیر را تایپ و خروجی آنرا مشاهده نمایید:
>\documentstyle[persian,fancybox]{oldreport}
>\makeatletter
>\newsavebox\pagebackgroundbox
>\newdimen\backgroundwd
>\newdimen\backgroundht
>\def\preparebackground#1{
> \long\def\put(##1,##2)##3{\@killglue\raise##2\hbox to\z@{\kern##1 ##3\hss}\ignorespaces}
> \savebox{\pagebackgroundbox}{#1}
> \backgroundwd=.5\textwidth
> \addtolength{\backgroundwd}{-.5\wd\pagebackgroundbox}
> \backgroundht=.5\textheight
> \addtolength{\backgroundht}{-.5\ht\pagebackgroundbox}
> \put(\backgroundwd,\backgroundht){#1}
>}
>\makeatother
>\fancypage{\preparebackground{\Huge\IE{SuB}}}{}
>\begin{document}
>\english
>The first page
>\newpage
>The second page
>\newpage
>The third page
>\end{document}