عنوان میتونه این سوال رو ایجاد کنه که مگه پکیج غیرکاربردی هم داریم؟ جوابش احتمالا «نه» هست، ولی منظور من هم، پکیج کاربردی لاتک برای منه، همهی پکیجهای لاتک که به درد من نمیخورن، هوم؟
۱- زیپرشین: شاید کاربردیترین پکیج لاتک که برای یک فارسینویس در حال حاضر موجوده، زیپرشین (XePersian) باشه. لاتک بصورت پیشفرض از زبانهای غیر اسکی پشتیبانی نمیکنه و این زبانها، برای استفاده از امکانات لاتک، مجبورن اون رو با وصله پینه استفاده کنن. با این توضیح، زیپرشین مجموعهای از ماکروهای آمادهست که امکانات خوب لاتک رو به خدمت فارسینویسی در میاره. این بسته رو آقای دکتر وفا کارنپهلو در سال ؟ تحت مجوز LPPL منتشر کردند. توضیحات بیشتر، طریقهی استفاده از این بسته و یک جامعهی کاربری خوب از لاتک کاران فارسیزبان رو میشه در سایت پارسیلاتک دید.
۲- listings: این بسته برای وارد کردن کد به فایل لاتک و هایلایت کردن اون در متن استفاده میشه. برای استفاده از اون پکیج رو لود کنید:
\usepackage{listings}
و بعد با استفاده از دستور lstset تنظیمات اون رو انجام بدین. یک نمونه این تنظیمات که من برای خودم استفاده میکنم اینه:
\lstset{ tabsize=4, rulecolor=, language=matlab, basicstyle=\scriptsize, upquote=true, aboveskip={1.5\baselineskip}, columns=fixed, showstringspaces=false, extendedchars=true, breaklines=true, prebreak = \raisebox{0ex}[0ex][0ex]{\ensuremath{\hookleftarrow}}, showtabs=false, showspaces=false, showstringspaces=false, identifierstyle=\ttfamily, keywordstyle=\color[rgb]{0,0,1}, commentstyle=\color[rgb]{0.133,0.545,0.133}, stringstyle=\color[rgb]{0.627,0.126,0.941}, numbers=left, numberstyle=\tiny, frame=l }
که نتیجهش میشه اینطوری:
البته برای استفاده از این کانفیگ که من گذاشتم، نیاز هست قبلش بستههای color و textcomp رو فراخوانی کنید. نمونه فایل تصویر بالا رو از اینجا میشه گرفت. در صورتیکه از این بسته به همراه بستهی زیپرشین استفاده کنید، متن کد درست نشون داده نمیشه، من برای حلش از این روش استفاده میکنم:
\begin{latin} \begin{lstlisting} // Some codes goes here! \end{lstlisting} \end{latin}
اگه هم بخواین از فایل یه کد رو بخونین، میشه از دستور lstinputlisting استفاده کرد.
۳- algorithm2e: از این بسته برای وارد کردن الگوریتم به متن استفاده میشه. دقیقا مثل اون چیزایی که تو کتابای برنامهنویسی هست، یا مثلا این تیکه از پایاننامهی خودم:
این بسته مستندات به شدت واضح و آسونی داره و میشه بهش رجوع کرد و مثالهاش رو دید. فقط نکتهای که هست اینه که من تا حالا برای فارسینویسی ازش استفاده نکردم! فکر کنم یه خرده مشکل رو داشته باشه که میشه هم حلش کرد یحتمل. حتی راههای دورزدنی هم هست که نیاز به این بسته نباشه (مثلا استفاده از محیط enumerate). طبق حالت قبل که گفته شد، این بسته و زیپرشین با هم مشکل دارن و برای استفاده ازش باید از محیط latin استفاده کرد.
۴- hyperref: این بسته برای لینک دادن محتوا به رفرنسش استفاده میشه. مثلا فرض کنید دارید فرمولی مینویسید که لاتک بهش شمارهی ۲ رو میده و بعدا یه جای دیگه با دستور eqref بهش ارجاع میدید، با این بسته، لاتک میاد این ارجاعی که شما دادی رو به فرمول اصلی مرتبط میکنه و اگه کسی روش کلیک کرد، میره به فرمول اصلی. این بسته آپشنای متنوعی داره که در مستنداتش توضیح داده شده، مثلا در حین فراخوانی بسته، من اینطور نوشتم:
\usepackage[colorlinks=true]{hyperref}
این باعث میشه شمارهها رنگی بشن و مشخص باشن که لینک میخوره به جای دیگه. مثلا اینجوری میشن:
که رنگ قرمز نشون میده این یه فرموله و رنگ سبز نشون میده این یه رفرنسه که آخر کار اومده.
۵- amsthm: این بسته برای تعریف محیطهای ادبی ریاضی (ترکیب از خودم میباشد! :دی) استفاده میشه. مثلا شما میخواین یه محیط تعریف کنید که به صورت «قضیه ۱. فلان اینطور است.» دربیاد و یا یه محیط برای لم، تعریف، نکته، هشدار و الخ. برای مثال من چندتا محیط به صورت زیر برای خودم تعریف کردم:
\newtheorem{thm}{قضیه} \newtheorem{lem}{لم} \newtheorem{example}{مثال} \newtheorem{corollary}{نتیجه} \newtheorem{definition}{تعریف}
\begin{lem} شب عاشقان بیدل، چه شبی دراز باشد. \end{lem} \begin{proof} هر کی هم قبول ندارد، شبیه گراز باشد. \end{proof}
۶- amsmath: این بسته برای تعریفهای محیطهای دستوری ریاضی به کار میره. مثلا لاتک خودش دستور equation رو داره، اما این محیط برای هر فرمول یه شماره میذاره، حالا شما اگه بخواین از چیزی شبیه همین محیط استفاده کنید، اما فرمول نداشته باشه، باید چیکار کرد؟ بالاخره حق شماست و بنده هم مدافع حق شما :دی با فراخوانی این بسته و در این مثال، میشه از دستور equation* استفاده کرد.
۷- fancyhdr: آخرین بستهی کاربردیای که به ذهنم رسید، این بستهس: «فنسیهدر». این بسته میاد سربرگ و پابرگ صفحه رو مطابق با سلیقهی شما میچینه. مثلا صفحات زوج اسم فصل رو میذاره سمت راست و شماره صفحه رو میذاره سمت چپ و صفحات فرد، شماره صفحه رو میذاره سمت راست و اسم بخش رو میذاره سمت چپ. مستندات این بسته به اندازهی کافی مثال و نمونههای آماده داره و میشه بهش رجوع کرد.
ــــــــــــــــــــــــــــــ..::توضیحات::..ـــــــــــــــــــــــــــــــــ
۱) برای دیدن مستندات هر بستهی لاتک، از دستور texdoc PACKAGENAME در خط فرمان استفاده میشه. مثلا وقتی میخوام مستندات زیپرشین رو بخونم که چه دستورهایی داره و اینا، از دستور texdoc xepersian استفاده میکنم. نمیدونم این تو ویندوز یا مک هم میشه یا نه، ولی مطمئنم که تو لینوکس میشه.
۲) در صورتی که از زیپرشین استفاده میکنید، پکیجش باید آخرین پکیجی باشه که بارگذاری میشه.
۳) ممکنه این لیست بروز شه! شاید چیزی به دردم خورد بعدها :).