آموزش نرم افزار لاتکس — مرور مفاهیم

 

آشنایی با LaTeX و ایجاد اولین پروژه با آن

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

 

یکی از نکات مهم بعد از فرایند پژوهشی و یا تحصیلی این است که نتایج تحقیقاتمان را در قالب مقاله، کتاب و یا نوشته منتشر کنیم. کم و بیش همه افراد با مایکروسافت ورد آشنایی دارند، ولی چیزی که در این مورد باید مدنظر قرار داد این است که ورد (Word) یک ابزار عمومی می باشد. به عبارت دیگر می توان با آن یک پیام تبریک نوشت، با ویژگی های آن ایمیلی را ارسال کرد، در زمینه تبلیغات از آن استفاده کرد و یا حتی وبلاگی را بروز نمود. همچنین می توان با استفاده از آن کتاب و یا مقاله نوشت. برای حفظ ویژگی کاربر پسند بودن ورد، یک سری چیزها به آن اضافه شده و بعضی موارد از آن حذف شده است که باعث می شود در بعضی مواقع برای نوشتن یک متن علمی دچار مشکل شویم.

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

LaTeX از دو بخش ‘La’ و ‘TeX’ تشکیل شده است. TeX از کلمه یونانی تکنیک گرفته شده و این نام را مبدع آن برای این نرم افزار برگزیده است. مبدع TeX فردی به نام Donald Knuth می باشد که از آن برای استفاده های شخصی بهره می برد و بعد ها در سال ۱۹۷۸ آن را به صورت یک بسته نرم افزاری پیاده سازی کرد. La مخفف نام مبدع آن Leslie Lamport هست که در واقع بسته ای از ماکرو ها می باشد.

LaTeX با تعریف کردن مجموعه ای از ماکرو ها بر روی زبان TeX، کار کردن با آن را راحت تر کرده است.

به دلایل زیر TeX یک زبان برنامه نویسی است:

  • از حلقه های انشعاب if_then می توان استفاده کرد. مثلاً برنامه ای که در روز های زوج هفته یک چیزی برای ما بنویسد و در روز های فرد هفته چیز دیگری را.
  • توانایی تعریف متغیر: می توان یک سری متغیر تعریف کرد و بر روی مقادیر آنها یک سری محاسبات انجام داد و بر اساس آنها متنی را در خروجی نمایش داد و یا تنظیماتی را اعمال کرد و یا تصمیم گرفت که کاری انجام گیرد یا نه. البته با TeX نمی توان یک برنامه محاسباتی پیچیده را نوشت. بلکه یک زبان برنامه نویسی تک منظوره می باشد که فقط برای تولید متن چاپی می تواند مورد استفاده قرار گیرد.

نقاط ضعف TeX:

  • طراحی و تولید نوشته به صورت WYSIWIG نیست. WYSIWIG به صورت آن چیزی که می بینید، آن چیزی است که تحویل خواهید گرفت معنی می شود.
  • حتماً باید با دستورات و ماکرو های TeX آشنا باشید.
  • رسیدن به یک ظاهر دلخواه و مورد نظر در بعضی مواقع واقعاً سخت است.

نقاط قوت TeX:

 فایل های منبع تماماً قابل خوانده شدن و فهم توسط انسان هستند و می توان توسط ویرایشگر های متن ساده آنها را تغییر داد.

  •  می توانید بر روی محتوای نوشته متمرکز شوید.
  •  اعمال تغییرات در اندازه ها و فواصل راحت تر است.
  •  قابل انتقال بودن ساختار نوشته و قالب بندی
  •  سازگاری و تناسب اجزای نوشته
  •  تقریباً هر نوع عبارت ریاضی (ولو اگر قبلاً استفاده نشده باشد) قابل پیاده سازی است.
  •  مدیریت فهرست ها، شماره گذاری ها، ارجاعات و فهرست مراجع راحت تر صورت می گیرد.
  •  فایل های منبع TeX به دلیل متنی بودن، توسط سایر زبان های برنامه نویسی قابل ایجاد هستند.
  •  ما مجبور به رعایت قالب استانداردی هستیم که در نهایت یک نوشته منظم را برای ما به ارمغان خواهد آورد.
  •  قابلیت استفاده از دستور های گرافیکی برای تولید شکل های برداری

توزیع های مختلفی برای TeX وجود دارد.

معروف ترین توزیع TeX Live است که Cross_Platform می باشد، بدین معنی که محدودیتی روی نوع سیستم عامل وجود ندارد و می تواند بر روی Linux، تمام نسخه های Windows و Mac OSX مورد استفاده قرار گیرد. این توزیع دارای حجم زیادی در حدود ۴GB می باشد و در آن بسته های بیشتر زبان های دنیا وجود دارد. برای کاربرانی که می خواهند متن فارسی بنویسند نیز بسته XePersian موجود است.

Mik TeX بسته ای سبک تر است که برای ویندوز در نظر گرفته شده است. البته برای نوشته های لاتین مورد استفاده قرار می گیرد و برای ایجاد متن فارسی نیاز است تا بعضی بسته های مربوطه را نیز نصب نماییم. Mac TeX نیز برای Mac OSX ایجاد شده است.

موارد بالا عموماً خاصیت عملیاتی ندارند و فقط کامپایلر زبان TeX را برای ما نصب می کنند. نرم افزاری که به ما کمک می کند تا فایل هایمان از قبیل مقالات و گزارشات را بنویسیم و با استفاده از موارد بالا یک فایل pdf تحویل بگیریم، اصطلاحاً editor نامیده می شوند.

Editor (ویراستار):

اگر editor هایی بخواهیم که در همه محیط ها جواب بدهند، می توان به موارد زیر اشاره کرد:

TeX Works که همراه Mik TeX و TeX Live نصب می شود. دارای این قابلیت است که اگر فایل TeX را بنویسیم، طرف دیگر فایل dvi یا pdf را به صورت آنلاین می بینیم. البته به معنای این نیست که بقیه editor ها این قابلیت را ندارند.

یکی از معروف ترین editor ها که قابلیت bidirectional را دارد، یعنی می توان با آن فارسی نویسی انجام داد، TeXmaker می باشد.

LyX نیز editor دیگری می باشد که دارای محیط فانتزی است.

برای محیط ویندوز دو ویراستار زیر پیشنهاد می شود:

WinEdt: سبک است و کار کردن با آن راحت می باشد و امکانات جالبی دارد. همچنین مدیریت فهرست و مراجع را می توان به راحتی با آن انجام داد.

LEd: ویراستار دیگری می باشد که در محیط ویندوز استفاده می شود.

برای Mac، ویراستار معروفی که وجود دارد TeX Shop می باشد.

برای Linux نیز دو ویراستار Kile و LaTexila وجود دارد که Kile معروف تر است.

بخش های مهمی که از بسته های TeX باید نصب شود تا ما یک محیط کامل TeX داشته باشیم و بتوانیم کاری را انجام دهیم به صورت زیر هستند:

بخش Core (هسته)، پایه ای ترین قسمت TeX می باشد که در درجه اول اهمیت است. Graphics و tools بخش های دیگری هستند که در درجه دوم اهمیت قرار می گیرند. با داشتن سه مورد قبل در واقع یک سیستم عملیاتی داریم که برای اکثر رشته ها کافیست. برای افرادی که کارشان با ریاضیات است و با فرمول ها سر و کار دارند، بسته ای به نام AMS_LaTeX وجود دارد که قابلیت پیاده سازی تمامی فرمول ها را دارد. البته LaTeX پایه یک سری قابلیت های پایه ی ریاضی را دارد ولی همه نشانه ها و نماد ها را ندارد و این موارد در AMS_LaTeX وجود دارد.

عملکرد:

ما یک بسته نرم افزاری TeX داریم. ورودی ها فایل های tex. و bib. و غیره هستند که به عنوان Source Files شناخته می شوند. با دادن ورودی ها به TeX، خروجی هایی از قبیل فایل های pdf. و dvi. و ps. و eps. تحویل گرفته می شود. وجه مشترک خروجی ها این است که device dependent و system dependent نیستند. مثلاً فایل pdf گرفته شده را می توان در سیستم عامل های مختلف اجرا کرد و در صورت نصب بودن فونت های مربوطه نتیجه یکسانی را مشاهده نمود.

حداقل ورودی به بسته نرم افزاری Tex، یک فایل tex. می باشد. البته می توان چندین فایل tex. نیز داشت. به عنوان مثال بخش های مختلف یک کتاب که هر کدام در یک فایل مجزا قرار می گیرد و یک فایل مادر که همه آنها را در بر می گیرد. فایل مادر شامل تنظیمات کلی است ولی فایل های داخلی فقط شامل محتوای هر فصل هستند.

در bib. فهرست مراجع آورده می شود و مورد استفاده قرار می گیرد.

ساختار کلی یک فایل tex در محیط LaTeX:

\documentclass[options]{class}

اولین چیزی که باید مطرح گردد این است که نوع document ما چیست. در قسمت class می توان book ،article و غیره را مطرح نمود. در options، نوع صفحه مثلاً A4 و دو ستونه بودن و غیره را می توان تعیین کرد. مواردی که داخل {} قرار می گیرند الزامی هستند و روند کلی کار را تغییر می دهند و مواردی که داخل [] هستند، تغییرات جزئی در کار ایجاد می کنند و وجودشان ضروری نیست. بعد از خط بالا بخش Global Command نوشته می شود که حوزه تأثیرشان سراسری است. بعد از آن وارد فاز محتوایی می شویم. در واقع محتوایی را می نویسیم که قرار است آن را ببینیم.

begin{document}\

Local Command

end{document}\

هر محیط با یک begin شروع می شود و به یک end ختم می گردد. پایه ای ترین محیط در یک فایل tex، محیط document می باشد. علاوه بر این محیط، محیط های مختلف دیگری نیز وجود دارند.

در بین دو دستور بالا Local Command نوشته می شود و فقط در همین محیط تأثیر دارد. در نهایت چیزی که می بینیم نتیجه ترجمه این قسمت می باشد که به صورت مستقیم در خروجی مشاهده می گردد. هرچند قسمت اول مربوط به documetclass در خروجی مشاهده نمی شود ولی بدون آن ترجمه صورت نمی گیرد.

در نهایت این ساختار کلی به صورت tex. ذخیره می شود.

حال به عنوان مثال می خواهیم در زیر!Hello World را با این ساختار کلی بنویسیم. برای این منظور تنظیماتی در نظر نگرفتیم و نوع را article انتخاب کردیم. برای یک برنامه ساده بخش Global Command را نیز اضافه نکردیم.

documentclass{article}\

begin{document}\

!Hellow World

end{document}\

بعد از ذخیره کردن برنامه در محل مورد نظر، جهت کامپایل کردن برنامه بر روی گزینه زیر از نوار ابزار بالا کلیک می کنیم.

نتیجه به صورت یک pdf همراه با شماره صفحه مشاهده می گردد. اگر بخواهید جملات را زیر هم چاپ کنید باید بین خطوط یک فاصله قرار دهید مانند زیر:

!Hellow World

!Hellow World

!Hellow World

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

اکنون به بررسی انواع کلاس هایی که می توانیم داشته باشیم می پردازیم.

  •  article: عمومی ترین نوع نوشته ای است که با TeX می توانیم بنویسیم و غالباً در نوشتن مقالات برای کنفرانس ها و مجلات مورد استفاده قرار می گیرد.
  •  proc: این کلاس برای proceeding ها که در کنفرانس ها و همایش های علمی چاپ می شود مناسب می باشد.
  •  minimal: یک حالت خلاصه شده ای از کلاس article می باشد و حداقل ترین تنظیمات ممکن را دارد و بیشتر به منظور دیباگ استفاده می شود.
  •  report: برای کتاب های کوچک، پایانامه ها، گزارشات تحقیقاتی و سمینارها فرمت مناسبی می باشد.
  •  book: برای کتاب های بزرگ مناسب است و از لحاظ تعداد فصل و صفحه محدودیتی مانند report ندارد.
  •  slides/presentation: فرمت هایی هستند که می توانند برای ارائه های کلاسی استفاده شوند.
  •  letter: برای نگارش نامه که فاقد بخش بندی هست می تواند مورد استفاده قرار بگیرد.

بخش option بر خلاف class، تغییرات جزئی در کار ایجاد می کند. مانند:

  • ۱۰pt، ۱۱pt :size و ۱۲pt؛ که ۱۰pt در نشریات خیلی استفاده می شود. ۱۱pt در بعضی نشریات استفاده می شود و ۱۲pt به ندرت استفاده می شود، زیرا سایز خیلی بزرگی است. ولی در مرحله داوری، معمولاً باید با این سایز نوشته ها را ارسال کرد.
  • twoside یا oneside: با دستور اولی پرینت به صورت دو طرفه و با اولی به صورت یک طرفه گرفته می شود.
  • a4paper یا letterpaper: اندازه صفحه را مشخص می کند.
  • draft: فاصله خطوط را بیشتر می کند و فونت را بزرگتر می نماید.
  • landscape 90: درجه کاغذ را بچرخاند و به صورت عرضی یا طولی بنویسد.
  • onecolumn و twocolumn: دستور اولی برای یک ستونه نویسی و دومی برای دو ستونه نویسی استفاده می شود.
  • notitlepage و titlepage: دستور اولی که به صورت پیش فرض هم می باشد باعث می شود تا در مقالات پس از نوشتن عنوان، نام نویسندگان و غیره، در ادامه همان صفحه اول بدنه مقاله نوشته شود ولی در دستور دوم بدنه اصلی از صفحه دوم شروع می شود.

 

در مثال بالا، در خط ۱ در قسمت options، سایز را برابر ۱۱، صفحه را A4 و نوع نوشتن را دو ستونه انتخاب کردیم. در خط ۵ فرمان title نوشته شده است. هر فرمان با یک علامت \ شروع می شود. با اجرای این خط برنامه در ذهنش این را نگه می دارد که یک متغیر به نام title دارد که مقدارش را برابر عبارت داخل {} قرار می دهد. این خط هیچ خروجی ندارد و فقط در حد تنظیم مقدار title کار می کند. در خط ۷ با دستور author، مؤلف را تعریف کرده ایم. در خط ۱۵ با دستور data، تاریخ را تعریف می کنیم. عبارت today\ تاریخ روز را بر می گرداند. برای گرفتن خروجی از دستورات بالا دستور maketitle\ باید نوشته شود.

{}TeX{}،\LaTeX\ و {}LaTeXe\ توابعی هستند که وظیفه آنها باز تولید لوگوی مربوط به خودشان به نحو از پیش تعیین شده است.

به وسیله \\ به سطر بعدی می رویم.

\begin{abstract}

\end{abstract}

محیط بالا برای نوشتن abstract استفاده می شود.

تقسیم بندی متن:

part\: دارای درجه الویت -۱ است. part در کتاب هایی دیده می شود که هر چند فصل آن یک بخش از کتاب را تشکیل می دهند.

chapter\: دارای درجه الویت ۰ است و در مورد فصل های کتاب استفاده می شود.

معمولاً part و chapter در کتاب ها و گزارشات (فرمت های report و book) وجود دارد.

section\: دارای درجه الویت ۱ است.

subsection\: دارای درجه الویت ۲ است.

subsubsection\: دارای درجه الویت ۳ است.

paragraph\: دارای درجه الویت ۴ است.

subparagraph\: دارای درجه الویت ۵ است.

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

\section{Introduction}
.
.
\section{Conclusion}

می توان هر چند بخش دیگری نیز در نظر گرفت. شماره گذاری بخش ها به صورت خودکار در فایل خروجی انجام می گیرد.

با دستورات زیر در section مربوط به Editors دو زیر بخش دیگر نیز مربوط به این section قرار می گیرد.

\section{Editors}

\subsection{Cross-Platform Editors}

\subsection{Windows-based Editors}

در نهایت جهت ارجاع دهی ساده تر از دستور زیر استفاده می کنیم.

\section{Introduction} \label{section.intro}

حال به عنوان مثال هر جا که دستور ref{section. intro}\ نوشته شود به شماره section{Introduction} ارجاع داده می شود.

 

 

آنچه مطالعه کردید، توسط جناب آقای سید همام حسینی به عنوان پیاده سازی و برداشت متنی بخش هایی از آموزش «مجموعه آموزش های نگارش متون علمی در LaTeX» تهیه شده و جهت استفاده مخاطبین گرامی در متلب سایت منتشر می شود.

 

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *