اگر دانشجوی تحصیلات تکمیلی هستید یا کسی که بهدنبال نوشتن مقالات علمی است، به احتمال قوی نام لتکس را شنیده باشید. لتکس چیزی نیست جز ابزاری که به کمک آن میتوانید اسناد گوناگون خود همچون مقالات، پایاننامهها، کتابها، گزارشها و مواردی از این دست را تهیه کنید. در این مطلب آموزش لتکس از مجله فرادرس، سعی کردهایم تا این ابزار را به زبانی ساده و از مباحث ابتدایی آن آموزش دهیم و فرض را نیز بر این گذاشتهایم که شما پیشزمینهای در رابطه با ندارید. با اینحال، انتظار میرود تا پس از مطالعه این نوشتار، توانایی کار با لتکس را پیدا کرده و اسناد خود را با راه و روشی ایجاد کنید که این برنامه در اختیار شما قرار میدهد.
«لتکس» (Latex) با تلفظ صحیحتر «لاتِک» یا «لَتِک»، ابزاری است که برای حروفچینی اسناد مورد استفاده قرار میگیرد. لتکس که شاید با لوگو و شکل نوشتاری نیز برایتان آشنا باشد، امکانات زیادی را برای تولید و تنظیم جزئیات نوشته برایتان فراهم میکند و گزینه خوبی برای تولید اسناد علمی و دانشگاهی بهشمار میرود. در این نوشتار، از یک ادیتور آنلاین برای شروع کار با استفاده کردهایم و نحوه تولید سند را نیز از ابتدا توضیح دادهایم. مواردی مانند ایجاد ساختار یک نوشته ساده، فرمتبندی متن، درج توضیحات، تصاویر، انواع فهرستها، فرمولهای ریاضی و بسیاری موارد دیگر نیز بههمراه مثالهای فراوان توضیح داده شد. همچنین، برای فارسینویسی در لتکس نیز بسته «XePersian» (زیپرشین) و موتور XeTEX مورد استفاده قرار گرفته است.
لتکس چیست؟
به زبان ساده، لتکس، ابزاری است که بهوسیله آن میتوانید اسنادی نظیر کتاب، مقاله و غیره را حروفچینی و برای چاپ آماده کنید. این اسناد افزون بر متن میتوانند دارای فرمولها، جدول، رفرنسها، عکس و غیره باشند که بهصورت داخلی یا از طریق افزونهها میتوان آنها را به نوشتار خود اضافه کرد. لتکس برای این منظور از دستورات خاصی استفاده میکند که در ترکیب با محتوا، اسناد شما را شکل میدهند.
با اینکه ممکن است پیش از این، آشنایی و تجربه کار با نرمافزارهایی نظیر مایکروسافت Word یا معادل لینوکسی آن یعنی LibreOffice Writer را داشته باشید اما باید بدانید که لتکس بهشکل متفاوتی کار میکند. در برنامهای مانند ورد، متن مورد نظر خود را مینویسید، مؤلفههای گوناگونی نظیر عکس و جدول را به آن خود اضافه کرده و سپس، با ابزارها و امکانات موجود، استایل سند را طبق سلیقه و هدف خود تنظیم میکنید. اما در لتکس این فرایند به شکل دیگری انجام میشود. یعنی هنگام تدوین اسناد با لتکس، جدای از متن، از کدها یا دستورات مخصوصی نیز استفاده میشود که نحوه نمایش متن را تعیین کرده و آیتمهای گوناگونی را با آن به سند خود اضافه میکنید. در نهایت، فایل لتکس خود را با ابزار مخصوصی کامپایل کرده و سندی آماده با فرمتی مانند PDF تحویل میگیرید که دارای ساختاری استاندارد و مطابق میل شما است.
به بیان دیگر، هنگامیکه از لاتک استفاده میکنید، سند متنی شما که دارای دستوراتی برای درج انواع مؤلفهها مانند جدول و غیره و نحوه نمایش متن است، با استفاده از موتور پردازشی به سندی حروفچینی شده با ظاهر و ساختاری مشخص و قابل خروجی گرفتن تبدیل خواهد شد.
مزیت بسیار مفیدی که در لتکس دیده میشود این است که محتوای سند را جدای از استایل آن نگه میدارد. بدینترتیب، شما میتوانید فایلی شامل استایل یا طرحبندی هماهنگ با استانداردهای خود ایجاد کرده و از آن بهعنوان الگویی برای سایر اسناد خود استفاده کنید. یکی از کاربردهای این خصوصیت را هنگامی میتوان دید که ناشران علمی، تمپلیتهایی را منطبق با استاندارد نوشتههای خود تهیه کرده و در اختیار نویسندگانی میگذارند که قصد ارسال مقالات خود به ژورنالها را دارند.
یادگیری لتکس با فرادرس چگونه است؟
انتخاب منبع آموزشی به هنگام کسب مهارتی جدید عامل بسیار مهمی بهشمار میرود. در حال حاضر روشهای متعددی برای انتخاب این نوع منابع برای یادگیری لاتِک یا لَتِکس وجود دارد که شرکت در کلاسهای حضوری یا دورههای آنلاین، مشاهده ویدیوهای آموزشی از پلتفرمهای شناختهشدهای مانند یوتیوب، دنبال کردن مقالات و آموزشهای متنی از سایتهای گوناگون، مطالعه کتاب و غیره جز این روشها محسوب میشوند. در این میان، مشاهده فیلمهای آموزش یکی از شیوههای مؤثر و مدرن در کسب جدید بهشمار میروند که با رفع محدودیتهایی مانند موقعیت مکانی شما و زمانی که از آموزشها استفاده میکنید و همچنین با صرفهجویی در زمان و هزینههای رفت و آمد به کلاس و سایر موارد اینچنینی، دانش مورد نظر را به شما منتقل میکنند.
فرادرس، بهعنوان یکی از پلتفرمهای آموزشی کشور، تاکنون آموزشهای ارزشمند و مقرون به صرفهای را در موضوعات گوناگون و با کیفیتی بینظیر منتشر کرده است که شما را از ابتدای مسیر تا مرحله متخصص شدن همراهی کنند. یکی از این موارد، مجموعه فیلمهای آموزش جامع و کاربردی لاتک LaTeX از فرادرس است که در ادامه مشاهده میکنید.
در ادامه، عناوین برخی از فیلمهای آموزشی موجود در این مجموعه را فهرست کردهایم.
آموزش لتکس و نوشتن نخستین مطلب
در این قسمت از آموزش لتکس، نحوه نوشتن نخستین مطلب با را بیان میکنیم. برای این منظور لازم است تا اولین پروژه لتکس خود را به یکی از ۲ روش گفته شده در زیر، ایجاد کنید.
- روی کامپیوتر خود و در مسیر دلخواه ، فایلی با فرمت .tex
بسازید.
- از پلتفرمهای آنلاین مانند Overleaf استفاده کنید.
- آدرس وبسایت Overleaf: «+»
در این آموزش لتکس، از روش دوم استفاده میکنیم.
لتکس آنلاین با وب سایت Overleaf
پلتفرم Overleaf، ابزاری آنلاین است که در آن علاوه بر آموزش لتکس، میتوانید اسناد و «متون دارای فرمت» (Rich Text) را بهصورت مشارکتی نوشته و ویرایش کنید. این ابزار، ضمن اینکه امکان کار روی پروژهها را بهصورت بیدرنگ برای کاربران فراهم میکند، فرایند نوشتن، ویراستاری و انتشار اسناد علمی را نیز سادهتر میکند.
پس از ورود به وبسایت Overleaf، میتوانید با کلیک روی دکمه Sign up مراحل ثبتنام را انجام دهید یا اینکه با انتخاب گزینه Sign up with Google، به راحتی و با اکانت گوگل خود وارد شوید. پس از ورود، با صفحه خوشآمد گویی رو به رو میشوید.
این صفحه، دارای گزینههایی است که در ادامه فهرست کردهایم.
- «ساخت پروژه جدید» (Create a new project)
- Blank Project: پروژه خام و بدون محتوای قبلی ایجاد میکند.
- Example Project: پروژه نمونه، که شامل برخی مؤلفههای پیشفرض است میسازد.
- Upload Project: آپلود کردن پروژه خود از روی کامپیوتر
- Import from GitHub: وارد کردن پروژهای که روی گیتهاب قرار دارد.
- «ورود به صفحه آموزش لتکس» (Learn LaTeX with a tutorial)
- «انتخاب تمپلیتها» (Browse templates)
مثال لتکس
در این مطلب آموزش لتکس، با انتخاب Blank Project، یک پروژه خالی میسازیم. با این کار، صفحهای مشابه تصور زیر به شما نشان داده میشود.
در این ابزار آنلاین میتوانید محتوای خود و دستورات لتکس را در ادیتور مربوطه نوشته و پس از کلیک روی گزینه Recompile، خروجی کامپایل شده آن را در ناحیه پیشنمایش، مشاهده کنید. در ابتدای این آموزش لتکس، کافی است تا محتوایی که در ادامه آورده شده را جایگزین محتوای موجود در ناحیه ادیتور کرده و روی دکمه سبزرنگ Recompile کلیک کنید.
1documentclass{article}
2begin{document}
3First document. This is a simple example, with no extra parameters or packages included.
4end{document}
این محتوا را میتوان یکی از سادهترین مثالهای لتکس در نظر گرفت که پس از اجرا، نتیجهای مشابه در تصویر زیر خواهد داشت.
مشاهده میکنید که نخستین خط از پاراگراف با تورفتگی همراه است و این خصوصیتی است که لتکس در نوشتار ما رعایت میکند.
توضیح مثال
در این قسمت از آموزش لتکس، میخواهیم دستورات موجود در مثال بیان شده را بررسی کنیم.
- خط شماره ۱: دستور documentclass{article}
نوع سندی که قرار است روی آن کار کنیم را مشخص میکند. در اینجا، کلاس یا دستهبندی سند ما از نوع «مقاله» ( article
) تعریف شده است که در واقع، ساختاری برای مقالات علمی و غیره ارائه میدهد. در لتکس میتوانید انواع دیگری از کلاسها نظیر slides
، book
، letter
، report
و غیره را برای سند خود داشته باشید که هر یک برای ساخت اسناد خاصی همچون نامهها، اسلایدها، گزارشها، کتابها و غیره بهکار ساخته شدهاند.
- برای اطلاع از سایر دستهبندیها میتوانید صفحه «+» را مشاهده کنید.
- خطوط شماره ۲ و ۴: اکنون که نوع سند خود را انتخاب کردید میتوانید محتوای سند را مابین دستورات begin{document}
و end{document}
درج کنید. این تگها در واقع، بدنه سند و نوشتار شما را مشخص میکنند. در نهایت میتوانید با کلیک روی دکمه سبزرنگ Recompile، سند خود را کامپایل کرده و در قالب PDF مشاهده کنید.
همچنین، این امکان نیز برای شما وجود دارد تا با کلیک روی فلش کنار دکمه Recompile و انتخاب گزینه On از منوی باز شده، سند شما حین اِعمال تغییرات بهطور خودکار کامپایل شود.
همانطور که در پلن کناری پلتفرم Overleaf مشاهده میشود و پیشتر نیز اشاره کردیم، فایلهای لتکس با پسوند .tex
ذخیره میشوند. main.text
در اینجا نام سند لتکس شما است.
تنظیمات سند در لتکس
کمی پیشتر در این آموزش لتکس، گفتیم که محتوای سند لتکس از دستور begin{document}
شروع میشود. اکنون باید بدانید مواردی که قبل از این تگ میآیند را به اصطلاح، Preamble سند یا «ناحیه تنظیمات سند» میگویند. این بخش از فایل، جایی است که میتوانید دستورات مربوط به تنظیمات کلی سند را بنویسید. در نخستین مثال دیدیم که دستور تعیین نوع سند یا همان documentclass{article}
در این ناحیه قرار دارد. دستورات دیگری نظیر وارد کردن بستههای لکتس و غیره نیز در همین قسمت تعریف میشوند. در زیر نمونهای از دستورات Preamble را آوردهایم.
1documentclass[12pt, letterpaper]{article}
2usepackage{graphicx}
در خط اول، نوع سند را تعیین کردهایم و پارامترهایی را مابین علامتهای []
آوردهایم که خصوصیات بیشتری را برای این نوع سند تعیین میکنند. بهطور مثال، گفتهایم که اندازه فونت 12pt
و اندازه صفحه برابر با letterpaper
باشد. دقت کنید که پارامترها با ویرگول از هم جدا شدهاند.
برخی نکات را در زیر آوردهایم که دانستن آنها میتواند مفید باشد.
- مقدار پیشفرض اندازه فونت در لتکس برابر با 10pt است که میتوانید آن را به مقادیری مانند 12pt ،11pt ،9pt تغییر دهید.
- اندازه صفحه نیز میتواند شامل مقادیر دیگری مانند a4paper
، legalpaper
و غیره باشد.
دستور دیگری که که در ناحیه تنظمات سند مشاهده میشود، usepackage{graphicx}
است که بستهای بهنام graphicx
را وارد میکند. این بسته برای افزودن فایلهای گرافیکی، عکس و غیره به سند بهکار میرود.
افزودن عنوان و نویسنده و تاریخ
در این قسمت از آموزش لتکس، نحوه اضافه کردن اطلاعاتی همچون عنوان سند، نام نویسنده و همچنین تاریخ به سند لتکس را توضیح میدهیم. برای اینکار لازم است تا ۲ عملی که در ادامه گفته شده را انجام دهید.
در گام نخست لازم است تا در ناحیه Preamble، دستوراتی که در ادامه آورده شده را وارد کنید.
1documentclass[12pt, letterpaper]{article}
2title{My first LaTeX document}
3author{Pouria Navidthanks{<em>Faradars</em>}}
4date{June 2024}
این دستورات را در ادامه توضیح دادهایم. ضمن اینکه مقادیر گفته شده، برای سند شما متفاوت هستند.
- My first LaTeX document
: بیانگر عنوان سند یا مقاله شما است.
- Pouria Navid
: نام نویسنده یا نویسندگان مقاله است.
- در صورت تمایل میتوانید از موسسه حامی خود تشکر کنید که .Faradars
بیانگر همین مورد است و یک پاورقی را در این رابطه ایجاد میکند.
- در صورت تمایل میتوانید از موسسه حامی خود تشکر کنید که .Faradars
- June 2024
: تاریخ مورد نظر برای درج در سند در این قسمت نوشته شده است. شما همچنین میتوانید با دستور today
تاریخ فعلی – به هنگام کامپایل سند – را نیز درج کنید.
اکنون در گام دوم، برای چاپ اطلاعات «عنوان، نویسنده و تاریخ» لازم است تا دستور maketitle
را به صورت زیر به بدنه سند – و در ادامه کدهای قبلی – اضافه کنید.
1begin{document}
2maketitle
3We have now added info to LaTeX{} document!
4end{document}
خروجی این دستورات نیز پس از کامپایل بهشکل زیر خواهد بود.
دقت کنید که در جلوی نام نویسنده یک علامت ستاره آمده است که نتیجه همان دستور thanks{Faradars}
است و به پاورقی اشاره دارد.
متن فارسی در لتکس
برای فارسینویسی در لتکس میتوانید از بسته «زیپرشین» ( xepersian
) استفاده کنید.
مثال زیر را در نظر بگیرید.
1documentclass[12pt]{article}
2usepackage{xepersian}
3settextfont{B NAZANIN.ttf}
4begin{document}
5begin{abstract}
6این پاراگراف در ابتدای مقاله آمده است و شامل چکیدهای (lr{Abstract}) از مباحث گفته شده است.
7end{abstract}
8end{document}
در این مثال از آموزش لتکس، پس از تعیین نوع سند و اندازه فونت آن، بسته xepersian
را وارد کردهایم. سپس با دستور settextfont
فونت مناسب و دلخواه برای سند را تعیین کردهایم.
کار دیگری که لازم است انجام دهید تغییر کامپایلر لتکس است. برای انجام این کار، از منوی اصلی Overleaf گزینه Menu را انتخاب کنید. سپس از منوی باز شده لیست کشویی Compiler را پیدا کرده و گزینه XeLaTeX را انتخاب کنید. اکنون میتوانید با کلیک روی دکمه Recompile، سند خود را کامپایل کنید. خروجی این سند پس از اجرا بهصورت زیر خواهد بود.
درج کامنت یا توضیح
افرادی که با برنامهنویسی آشنا هستند میدانند که کامنت چیست و چه اهمیتی در کدنویسی دارد. نوشتن دستورات لتکس را نیز میتوانید نوعی کدنویسی در نظر بگیرید که با هدف تولید اسناد و حروفچینی انجام میشود. کامنتها در لتکس، توضیحات و یادداشتهایی هستند که برای یادآوری برخی موارد یا راهنمایی دیگران در مورد کد، در فایل لتکس درج میشوند. این نوشتهها به عنوان متن سند شما در نظر گرفته نشده و در فایل خروجی نیز نمایش داده نمیشوند. هدف از کامنتگذاری میتواند موارد زیر باشد.
- درج توضیح برای برخی بخشهای پیچیده سند و دستورات.
- یادداشت گذاشتن برای مواردی که قرار است بعداً اضافه شوند.
- راهنماییهای اضافی برای سایر افرادی که کدها را میخوانند.
- و بسیاری موارد دیگر.
درج کامنت در لتکس بسیار آسان است و تنها میبایست در ابتدای خط مورد نظر، علامت %
را قرار دهید. بهطور مثال میتوانید خط زیر را به مثالهای قبلی اضافه کرده و کامنت دلخواه را بنویسید.
1% This line here is a comment.
به یاد داشته باشید که کامنتهای اضافه شده در این خط، تأثیری روی خروجی سند نخواهد داشت.
فرمت بندی متن
در این قسمت از آموزش لتکس به شما میگوییم که چگونه میتوانید متن خود را Italics ،Bold یا زیرخطدار کنید. برای این منظور کافی است تا دستورات آورده شده در زیر را بهکار ببرید.
- Bold: برای برجستهسازی یا بولد کردن یک عبارت، از دستور textbf{…}
استفاده میشود.
- Italics: از دستور textit{…}
میتوان برای کَج یا ایتالیک کردن عبارت استفاده کرد.
- زیرخطدار: اگر میخواهید که زیر عبارت مورد نظرتان خط کشیده شود، دستور underline{…}
را بهکار ببرید.
مثال فرمت بندی متن در لتکس
کدهای زیر را به بدنه سند خود اضافه میکنیم.
1Some of the textbf{greatest} discoveries in underline{science} were made by textbf{textit{accident}}.
خروجی سند نیز بهشکل زیر خواهد بود.
در این مثال، ۳ کلمه science، greatest و accident بهترتیب Bold، زیرخطدار و Italic شدهاند.
دستور emph در لتکس
دستور دیگری که برای فرمتبندی متن مورد استفاده قرار میگیرد، emph{argument}
است که میتواند شامل حالاتی باشد که در ادامه فهرست کردهایم.
- در صورتی که در متن معمولی، عبارتی را emph
کنیم، آن عبارت Italics میشود.
- هنگامیکه در یک متن Italics شده، عبارتی را emph
کنیم، آن عبارت به شکل معمولی و غیر ایتالیک نشان داده میشود.
توجه داشته باشید که پارامتر argument
همان عبارتی است که میخواهیم تا این دستور روی آن اِعمال شود. برای درک بهتر به مثال زیر توجه کنید.
مثال دستور emph در لتکس
دستورات زیر را در نظر بگیرید.
1this is normal emph{text}.
2textit{this is italic emph{text}.}
3textbf{this is normal and Bold emph{text}.}
خروجی این دستورات و تأثیر دستور emph
روی کلمه text در تصویر زیر قابل مشاهده است.
همانطور که مشاهده میشود عملکرد این دستور را با توجه به وضعیت متن میتواند متفاوت باشد.
افزودن عکس
در این قسمت از آموزش لتکس میخواهیم نحوه درج عکس در اسناد لتکس را به شما توضیح دهیم. برای این منظور در پلتفرم Overleaf میتوانید به یکی از روشهای زیر عمل کنید.
- دستور لتکس مربوط به درج عکس را در ویرایشگر بنویسید.
- یا از آیکن Insert Figure موجود در نوار ابزار بالایی رابط Overleaf استفاده کنید.
- همچنین میتوانید عکس مورد نظر خود را کپی کرده و در ویرایشگر Paste کنید.
۲ مورد آخر را میتوانید درون ویرایشگر کد و همچنین ویرایشگر بصری Overleaf امنتحان کنید. در این صورت، کدهای لتکس مربوطه بهصورت اتوماتیک تولید خواهند شد.
در ادامه این آموزش لتکس، مثالی برای روش نخست یعنی درج عکس با دستور لتکس آوردهایم.
دستور لتکس برای درج عکس
سند لتکس زیر را در نظر بگیرید.
1documentclass{article}
2usepackage{graphicx}
3graphicspath{{images/}}
4begin{document}
5Ali is a programmer.
6
7includegraphics{developer.jpg}
8
9He is programming an application on his laptop.
10end{document}
دستورات بهکار رفته را در ادامه، توضیح دادهایم.
- خط شماره ۲: بسته graphicx
را با دستور usepackage
برای دسترسی به قابلیتهای مربوط به عکس در لتکس، فراخوانی میکنیم. این دستور در ناحیه تنظیمات سند وارد میشود و با ایجاد امکان دسترسی به دستورات دیگر نظیر graphicspath
و includegraphics
به شما امکان میدهد تا عکسهای خود را به سند لتکس اضافه کنید.
- خط شماره ۳: دستور graphicspath
برای تنظیم و تعیین مسیر فایلها مورد استفاده قرار میگیرد. با آرگومان images/
در واقع تعیین میکنید که عکسهایتان در فولدر images
موجود در کنار فایل لتکس شما قرار گرفتهاند.
- خط شماره ۷: در این خط به کمک دستور includegraphics
عکس مورد خود را در سند قرار میدهید. developer.jpg
در اینجا نام عکسی است که انتخاب کردهایم. توجه داشته باشید که اگر از نوشتن فرمت عکس خودداری کنید، تمامی فرمتفایلهایی با این نام، جست و جو میشوند.
خروجی سند شما پس از کامپایل بهشکل زیر خواهد بود.
یادتان باشد که در این روش میبایست عکسهایتان روی Overleaf آپلود شده باشند. برای این منظور کافی است که فایل تصویر خود را در پنل کناری Overleaf بکشید و رها کنید.
سپس در صفحه باز شده روی دکمه سبزرنگ Upload کلیک کنید تا عکس مورد نظرتان آپلود شود. البته برای نظم بیشتر، توصیه میشود یک فولدر جدید ایجاد کرده و عکسهایتان را در آنجا قرار دهید.
عنوان و برچسب و منابع
برای درج عنوان، برچسب و رفرنس برای عکسهای خود در سند لتکس میتوانید از begin{figure}
استفاده کنید. سند لتکس زیر را در نظر بگیرید.
1documentclass{article}
2usepackage{graphicx}
3graphicspath{{images/}}
4 begin{document}
5
6begin{figure}[h]
7 centering
8 includegraphics[width=0.75textwidth]{happy_developer}
9 caption{Young programmer.}
10 label{fig:happy_developer1}
11end{figure}
12
13As you can see in figure ref{fig:happy_developer1}, The programmer is satisfied with his job pageref{fig:happy_developer1}.
14
15end{document}
دستورات بهکار رفته را در ادامه توضیح دادهایم.
- خطوط شماره ۱ تا ۴: این خطوط دارای دستورات تعیین نوع سند، وارد کردن بسته گرافیکی، تعیین فولدر حاوی عکسها و شروع محتوای سند هستند.
- خطوط شماره ۶ تا ۱۱: بدنه Figure در این خطوط قابل مشاهده است. در لتکس تصاویر را درون ناحیه یا به اصطلاح محیطهایی همچون Figure-ها قرار میدهیم تا موقعیت آنها بهطور خودکار و بهینه تنظیم شود.
- خط شماره ۷: در اینجا تعیین میکنیم که تصویر، وسطچین باشد.
- خط شماره ۸ با نوشتن دستور includegraphics[width=0.75textwidth]{happy_developer} عکسی با نام happy_developer
در صفحه قرار گیرد، در حالیکه عرضی برابر با ۷۵٪ عرض متن موجود در صفحه دارد. textwidth
در اینجا به عرض متن موجود در صفحه اشاره میکند. همچنین لازم به یادآوری است که پارامترها بین علامت براکت قرار میگیرند.
- خط شماره ۹: در این خط، به کمک دستور caption{Young programmer.}
، یک عنوان یا به اصطلاح کپشن برای عکس یا شکل مورد نظر ایجاد میکنیم. هنگامیکه فهرست اشکال یا تصاویر را در مقاله خود ایجاد میکنیم، این عنوانها در آنجا نشان داده خواهند شد.
- خط شماره ۱۰: با توجه به اینکه قصد داریم تا در سند خود به این عکس ارجاع دهیم بنابراین با دستور label{fig:happy_developer1}
برچسب happy_developer1
را به آن نسبت میدهیم. با اینکار یک شماره نیز برای تصویر در نظر گرفته میشود.
- خط شماره ۱۳: در این خط متنی را در قالب یک پاراگراف نوشتهایم و از دستور ref {fig:happy_developer1} برای ارجاع به عکس استفاده کردهایم که در واقع بیانگر شماره آن عکس است. برچسب تصویر را به عنوان آرگومان به این دستور پاس دادهایم. دستوری دیگری که در این خط نوشتهایم pageref{fig:happy_developer1}
است که شماره صفحه شامل عکس را چاپ میکند.
در نهایت، عکس وارد شده در سند، به صورت زیر نشان داده میشود.
لیست در لتکس
در لتکس با مفهومی بهنام «محیط» (Environment) رو به رو هستیم که امکان ایجاد برخی قابلیتها مانند فهرستها یا همان «لیستها» را برایمان فراهم میکنند. یک محیط با دستور begin{environment-name}
شروع شده و با end{environment-name}
تمام میشود. در زیر، برخی آرگومانهایی که این دستور میتواند داشته باشد را بیان کردهایم.
- «لیست مرتب» ( enumerate
)
- «لیست نامرتب» ( itemize
)
- «جدول» ( tabular
)
- «شکل» ( figure
)
لیست نامرتب
برای ایجاد این گونه لیستها که بیانگر ترتیب خاصی نیستند میتوانید از محیط itemize
استفاده کنید. سپس برای تعریف هر یک از عناصر لیست کافی است تا دستور item
را در ابتدای آن قرار دهید. برای درک بهتر، مثال میزنیم.
مثال لیست نامرتب
سند زیر را در نظر بگیرید.
1documentclass{article}
2begin{document}
3begin{itemize}
4 item Apple
5 item Orange
6 item Banana
7end{itemize}
8end{document}
هر آیتم از لیست با یک دایره سیاهرنگ یا به اصطلاح بولت نشان داده میشود. نتیجه این دستورات بهصورت زیر خواهد بود.
لیست مرتب
برای ایجاد لیستهای مرتب در لتکس نیز روش مشابهی دارید با این تفاوت که از محیط enumerate
استفاده میشود و همچنان از دستور item
در ابتدای هر یک ازعناصر لیست استفاده میکنیم.
مثال لیست مرتب
سند زیر نحوه ایجاد لیست مرتب در لتکس را نشان میدهند.
1documentclass{article}
2begin{document}
3begin{enumerate}
4 item Apple
5 item Orange
6 item Banana
7end{itemize}
8end{document}
در حالت عادی هر آیتم در این لیست با یک عدد نشان داده میشود. در ادامه، خروجی این کدها را آوردهایم.
- برای اطلاع از انواع دیگر لیستها نظیر لیستهای تو در تو و همچنین استایلهای متفاوت لیستها میتوانید این مثال «+» از Overleaf را بررسی کنید.
فرمول ریاضی در لتکس
در شما میتوانید بهسادگی فرمولهای ریاضی مورد نظر را با همان شکل و شمایل استاندارد بنویسید و برای این منظور ۲ شیوه را پیشِ روی شما قرار میدهد.
- inline: این روش هنگامی مورد استفاده قرار میگیرد که قصد افزودن فرمول بهصورت درونمتنی یا در میان نوشتار خود داشته باشید.
- display: این نوع فرمولها جزو پاراگراف محسوب نشده و در خطی جدید نمایش داده میشوند.
حالت فرمول نویسی Inline
سند زیر را در نظر بگیرید.
1documentclass{article}
2begin{document}
3In physics, the mass-energy equivalence is stated
4by the equation $E=mc^2$, discovered in 1905 by Albert Einstein.
5end{document}
در این مثال، فرمول جرم-انرژی را بهصورت درونمتنی درج کردهایم. خروجی این کدها پس از کامپایل بهصورت زیر خواهد بود.
در این کدها برا درج فرمول درون خطی، آن را درون ۲ علامت دلار یا $ … $
محصور کردهایم. شما همچنین میتوانید از دستورات آورده شده در زیر استفاده کنید.
begin{math} ... end{math} ( ... )
حالت فرمول نویسی Display
در این حالت نیر ۲ شیوه برای نوشتن فرمول پیش رو دارید که در ادامه فهرست کردهایم.
- حالت شمارهدار
- حالت بدون شماره
برای درک بهتر، سند زیر را در نظر بگیرید.
1documentclass{article}
2begin{document}
3The mass-energy equivalence is described by the famous equation [ E=mc^2 ] discovered in 1905 by Albert Einstein.
4
5In natural units ($c = 1$), the formula expresses the identity begin{equation} E=m end{equation}
6end{document}
در ادامه خروجی این دستورات را آوردهایم.
بهطور کلی برای درج فرمولهای ریاضی به روش display، میتوانید از ۳ شیوه زیر استفاده کنید.
[ ... ] begin{displaymath} ... end{displaymath} begin{equation} ... end{equation}
که در حالت سوم شمارهای نیز برای فرمول درج میشود.
روش قدیمی فرمول نویسی
پیش از این، برای نمایش فرمول در حالت Display، قبل و بعد از عبارت مورد نظر، ۲ علامت $
درج میشد، همانطور که در مثال زیر نمایش داده میشود.
documentclass{article}
begin{document}
end{document}
اما اکنون بهجای این روش توصیه میشود از مواردی که پیشتر گفته شد استفاده کنید.
مثال پیچیده تر فرمول نویسی
سندی که در زیر آوردهایم، دارای فرمولهای پیچیدهتری است که بررسی آن میتواند برای شما در این مورد مفید باشد.
1documentclass{article}
2begin{document}
3Subscripts: $a_b$
4
5Superscripts: $a^b$
6
7These can be combined and nested to write expressions such as:
8
9[ T^{i_1 i_2 dots i_p}_{j_1 j_2 dots j_q} = T(x^{i_1},dots,x^{i_p},e_{j_1},dots,e_{j_q}) ]
10
11Integrals: $int$
12
13Fractions: $frac{a}{b}$
14
15Limits are placed on integrals using superscripts and subscripts:
16
17[ int_0^1 frac{dx}{e^x} = frac{e-1}{e} ]
18
19Lower case Greek letters: $omega$ $delta$ ...
20
21Upper case Greek letters: $Omega$ $Delta$ ....
22
23Mathematical operators are prefixed with a backslash as $sin(beta)$, $cos(alpha)$, $log(x)$ ...
24end{document}
خروجی این فرمولها پس از کامپایل بهشکل زیر خواهد بود.
در این مثال، با نحوه درج موارد زیر آشنا میشوید.
- «توان» یا بالانویس (Subscripts)
- «اندیس» زیرنویس (Subscripts)
- انتگرال
- کسر
- حروف یونانی کوچک و بزرگ مانند اُمگا، دلتا، بتا، آلفا و غیره.
- عملگرهای ریاضی همچون سینوس، کسینوس، لگاریتم و غیره.
بسته amsmath
راه دیگری که برای افزودن عبارات ریاضی و فرمولها به سند لتکس وجود دارد استفاده از بسته amsmath
است. این افزونه محیط equation*
را در اختیار شما قرار میدهد.
سند زیر را در نظر بگیرید.
1documentclass{article}
2usepackage{amsmath}% For the equation* environment
3begin{document}
4begin{equation*}
5sqrt{x^2+1}
6end{equation*}
7end{document}
خروجی فرمول بیان شده، بهصورت زیر خواهد بود.
بخش فرمولها در لتکس را خاتمه میدهیم. اما باید بدانید که امکانات در امر فرمولنویسی و نمایش عبارات ریاضی بسیار فراتر از مواردی است که گفته شد و شما میتوانید مثالهای زیادی را در این باره روی اینترنت پیدا کنید.
ساختار پایه سند در لتکس
در این قسمت از آموزش لتکس میخواهیم به بررسی و توضیح ساختار یک سند در بپردازیم که به قسمتهای مختلفی همچون پاراگرافها، بخشها و فصلهای متعددی تقسیم میشود. پس با خلاصه یا «چکیده» (Abstracts) سند شروع میکنیم.
چکیده
انواع نوشتار، کتب و مقالات علمی بهطور معمول با بخشی بهنام چکیده یا «Abstracts» شروع میشوند. نویسنده در این بخش مروری بر مباحث اصلی خواهد داشت. مثالی که در ادامه آوردهایم نحوه ایجاد چکیده با محیط abstract
را نشان میدهد.
1documentclass{article}
2begin{document}
3begin{abstract}
4This is a simple paragraph at the beginning of the
5document. A brief introduction about the main subject.
6end{abstract}
7end{document}
خروجی این کدها پس از کامپایل بهصورت زیر خواهد بود.
پاراگراف و خطوط جدید
حالا نوبت آن رسیده تا نوشتن مطلب را با ایجاد پاراگرافها در لتکس شروع کنیم. به مثال زیر توجه کنید.
1documentclass{article}
2begin{document}
3
4After our abstract we can begin the first paragraph, then press ``enter'' twice to start the second one.
5
6This line will start a second paragraph.
7
8I will start the third paragraph and then add \ a manual line break which causes this text to start on a new line but remains part of the same paragraph. Alternatively, I can use the verb|newline|newline command to start a new line, which is also part of the same paragraph.
9end{document}
خروجی این مثال شبیه به آنچه است که در تصور زیر آوردهایم.
در ادامه، به نکات موجود در این مثال اشاره کردهایم.
- در صورتیکه هنگام نوشتن، کلید Enter را برای ۲ مرتبه از روی کیبرد فشار دهید، پاراگراف جدیدی ساخته میشود.
- خط ابتدایی پاراگرافها در لتکس بهطور خودکار کمی تورفتگی دارند. البته این قضیه در مواردی ماننند شروع فصلها یا بخشها ممکن است انجام نشود.
- اگر بخواهید بدون ایجاد پاراگراف جدید، به خط بعد بروید میتوانید از دستور newline
یا \
استفاده کنید. به این نکته نیز دقت کنید که در صورت نیاز به فواصل بیشتر بین پاراگرافها توصیه میشود تا از روشهای جایگزین مانند بسته parskip
بهجای ایجاد خط جدید استفاده کنید.
در یکی از مطالب پیشین مجله فرادرس، توضیحاتی در مورد توزیع های نرمافزاری LaTeX و دانلود نرم افزار تایپ نوشتاری لاتِک دادهایم که مطالعه آن میتواند برای شما سودمند باشد.
فصل ها و بخش ها
سندی که قصد تولید آن را داریم نظیر پایاننامه، کتاب، گزارش و غیره میتواند حجم زیادی داشته باشد. بهطور معمول در اینگونه مواقع محتوا در قالب فصلها، بخشها و عناوین فرعی سازماندهی میشود. در این زمینه دارای دستوراتی است که محتوا را به شکل منظم سازماندهی میکند اما این کار برای انواع گوناگون اسناد فرق میکند.
برای درک بهتر مثال میزنیم. اگر سند ما از نوع book
یا همان کتاب باشد، در اینصورت با لتکس میتوانیم آن را به فصلها، بخشها، زیربخشها و غیره تقسیم کنیم. اما در صورتیکه نوع سند، نامه یا letter
باشد، چنین تقسیمبندی برای آن وجود ندارد. به مثالی که در ادامه آوردهایم توجه کنید.
1documentclass{book}
2usepackage{xepersian}
3settextfont{B NAZANIN.ttf}
4begin{document}
5
6chapter{برنامهنویسی}
7برنامهنویسی روشی است که با آن به کامپیوترها میگوییم که چه کاری را انجام دهند و برای این منظور از زبانهای برنامهنویسی استفاده ميکنیم.
8section{آشنایی با برنامهنویسی}
9زبانهای برنامهنویسی دستوراتی هستند که بهوسیله آنها با کامپیوترها صحبت کرده و آنها را برای اهداف مورد نظر برنامهریزی ميکنیم.
10section{زبانهای برنامهنویسی}
11subsection{زبان پایتون}
12پایتون یکی از محبوبترین زبانهای برنامهنویسی کنونی است که میتواند در حوزههای گوناگونی مفید باشد. ماشین لرنینگ، هوش مصنوعی و اتوماسیون وظایف برخی از رایجترین کاربردهای زبان برنامهنویسی پایتون محسوب میشوند.
13subsection{زبان lr{HTML}}
14در صورتی که بخواهید قدم در مسیر یادگیری طراحی سایت بگذارید اولین زبانی که با آن رو به رو بخواهید شد، lr{HTML} است. این زبان ساختار صفحه وب را مشخص میکند.
15section*{حوزههای برنامه نویسی}
16در این قسمت به کاربردهای برنامهنویسی در زمینههای گوناگون پرداختهایم. برنامهنویسی به طور معمول در طراحی سایت، هوش مصنوعی، رباتیک و غیره کاربرد دارد.
17end{document}
پس از کامپایل این دستورات، سندی مشابه تصویر زیر خواهیم داشت.
دستورات مورد استفاده در این سند را در ادامه توضیح دادهایم.
- دستور chapter{}
همانطور که از نام آن مشخص است برای ایجاد یک فصل جدید مورد استفاده قرار میگیرد. تنها کافی است تا عنوان فصل را بهعنوان آرگومان مابین علامتهای {}
درج کنیم. در این مثال مرتبه اول که از این دستور استفاده کردیم – یا همان فصل ۱ – مقدار «برنامهنویسی» را به آن اختصاص دادیم. متنی که پس از آن آمده در واقع مقدمه این فصل محسوب میشود.
- دستور مورد استفاده بعدی، section
است که بیانگر بخشهای فرعی هر فصل است و شما میتوانید همانند مثال، چندین مورد از این بخشها را برای هر یک از فصول سند خود داشته باشید در این مثال ما ۲ بخش را برای فصل دوم در نظر گرفتهایم.
- اگر به مثال دقت کنید، میبینید که فصلها و بخشها بهصورت خودکار شمارهگذاری شدهاند. اما فصل آخر شماره ندارد. در صورتیکه قصد غیرفعالکردن قابلیت شمارهگذاری خودکار را داشته باشید کافی است تا در آخر دستوراتی مانند section*
و subsection*{…}
یک ستاره قرار دهید.
فصل بندی های موجود در لتکس
بهطورکلی میتوانیم فصلبندیهای موجود در لتکس را بهشکل زیر بیان کنیم. هر نوع سند نیز میتواند زیرمجموعهای از این موارد را پشتیبانی کند.
- part{part}
- chapter{chapter}
- section{section}
- subsection{subsection}
- subsubsection{subsubsection}
- paragraph{paragraph}
- subparagraph{subparagraph}
همچنین،خوب است بدانید که فصلبندیهایی مانند part{part}
و chapter{chapter}
تنها در سندهایی از نوع report
یا book
قابل استفاده هستند.
نحوه ساخت جدول در لتکس
جدولها، مؤلفههای مهمی محسوب میشوند که کاربرد زیادی در انواع اسناد دارند و بهوسیله آنهای میتوانیم اطلاعاتی را بهطور خلاصه و منظم به مخاطب منتقل کنیم. در ادامه این مطلب آموزش لتکس، مثالی آوردهایم که نحوه ایجاد یک جدول در را بهخوبی نشان میدهد.
1documentclass[12pt]{book}
2usepackage{xepersian}
3settextfont{B NAZANIN.ttf}
4begin{document}
5
6begin{center}
7begin{tabular}{c c c}
8 سلول ۱ & سلول ۲ & سلول ۳ \
9 سلول ۴ & سلول ۵ & سلول ۶ \
10 سلول ۷ & سلول ۸ & سلول ۹
11end{tabular}
12end{center}
13
14
15end{document}
16
با کامپایل این سند لتکس، خروجی به شکل زیر خواهد بود.
همانطور که مشخص است از دستور و محیط tabular
برای ساخت جدول در لتکس استفاده کردهایم. پارامترهایی که به این محیط دادهایم یعنی {c c c}
تعداد ستونهای جدول ما را مشخص میکنند. c
در اینجا به معنای وسطچین بودن محتوای ستون است و شما میتوانید از مقادیر استاندارد دیگر نظیر r
یا l
هم استفاده کنید که بهترتیب برای راستچین و چپچین کردن محتوا بهکار میروند.
اکنون کافی است تا محتوای سلولهای یک سطر از جدول را بنویسید و بین هر یک، علامت &
را قرار دهید. سپس با \
میتوانید به خط بعد رفته و دیگر سطرها را نیز تکمیل کنید. دستور دیگری که در این کدها دیده میشود، محیط begin{center}
است که کل جدول ما فراگرفته و آن وسطچین میکند.
افزودن حاشیه به جدول
همانطور که مشاهده کردید جدول ساخته شده در قسمت قبل علیرغم داشتن ساختاری صحیح اما فاقد حاشیه و خطکشی برای جداسازی سطرها و ستونها بود. برای اینکه بتوانید خطوط افقی و جداکننده سطر را به جدول خود اضاف کنید تنها کافی است تا از hline
استفاده کنید. برای خطوط عمودی که سلولها را از هم تفکیک میکنند نیز از علامت پایپ یا |
استفاده میشود. به کدهای جدول در مثال زیر دقت کنید.
1begin{center}
2begin{tabular}{|c|c|c|}
3hline
4 سلول ۱ & سلول ۲ & سلول ۳ \
5 سلول ۴ & سلول ۵ & سلول ۶ \
6 سلول ۷ & سلول ۸ & سلول ۹ \
7hline
8end{tabular}
9end{center}
10end{document}
11
خروجی این مثال پس از کامپایل بهصورت زیر است.
پارامترهای محیط جدول را بهصورت {|c|c|c|}
تغییر دادیم. با انجام این کار، خطوط افقی بین ستونها قرار میگیرند. بالا و پایین جدول نیز با دستور hline
دارای خطوط حاشیه مخصوص به خود هستند. حالا با کمی دستکاری میتوانیم ظاهر جذابتری را به این جدول بدهیم. به خروجی زیر توجه کنید.
دستورات این جدول را در زیر آوردهایم.
1begin{tabular}{||c|c|c||}
2hline
3ستون ۱ & ستون ۲ & ستون ۳ \
4hlinehline
5 سلول ۱ & سلول ۲ & سلول ۳ \
6 hline
7 سلول ۴ & سلول ۵ & سلول ۶ \
8 hline
9 سلول ۷ & سلول ۸ & سلول ۹ \
10hline
11end{tabular}
با توجه به اینکه ساخت جدول در لتکس به شکلی که بیان شد زمانبر است، شما میتوانید از ابزار مولد جدولی که لینک آن را در ادامه آوردهایم استفاده کنید.
- لینک وبسایت tablesgenerator: «+»
با استفاده از این برنامه میتوانید بهسادگی و با صرف کمترین زمان جدولهایی جذاب و کاربردی ایجاد کنید. در واقع در محیطی بصری، تنظیمات خود را انجام میدهید و در همان لحظه کدهای قابل استفاده در لتکس برایتان تولید میشود.
عنوان و برچسب و ارجاع به جدول
در بخش مربوط به تصاویر در این آموزش لتکس دیدیم که میتوان برای عکسها توضیح نوشت یا به آنها ارجاع داد. این قابلیت برای جداول نیز وجود دارد. به سندی که در ادامه آورده شده توجه کنید.
1جدول ref{table:data} یک نمونه جدول ساخته شده در لتکس است.
2begin{table}[h!]
3centering
4begin{tabular}{||c|c|c||}
5hline
6ستون ۱ & ستون ۲ & ستون ۳ \
7hlinehline
8 سلول ۱ & سلول ۲ & سلول ۳ \
9 hline
10 سلول ۴ & سلول ۵ & سلول ۶ \
11 hline
12 سلول ۷ & سلول ۸ & سلول ۹ \ [1ex]
13hline
14end{tabular}
15caption{عنوان و توضیح جدول آزمایشی در لتکس.}
16label{table:data}
17end{table}
این جدول پس از کامپایل شبیه به تصویر زیر خواهد بود.
توضیحات این کد را در ادامه آوردهایم.
- در خط نخست، متنی وجود دارد که در آن با دستور ref{table:data}
به جدول مورد نظر ارجاع داده شده است.
- محیط begin{table}
به این کدها اضافه شده است.
- با دستور caption
، توضیح مورد نظر برای جدول را نوشتهایم.
- برچسب table:data
را با دستور label{table:data}
برای این جدول تعیین کردیم. تا بتوانیم به آن ارجاع دهیم.
افزودن فهرست مطالب
همانطور که در بیشتر اسناد دیده میشود، «فهرست مطالب» (Table of Contents) یکی از قسمتهای مهم هر سندی مانند کتاب، مقاله و غیره محسوب میشود و کاربر را در مورد بخشی که به دنبال آن است، راهنمایی میکند. فرایند ساخت فهرست مطالب در لتکس بسیار آسان است و تنها کافی است تا از قابلیتهای فراهم شده توسط دستور tableofcontents
استفاده کنید.
مثال فصلبندی بهخاطر بیاورید. در این مثال دستور tableofcontents
را پس از شروع سند درج کردهایم.با انجام این کار، فهرست مطالب شامل بخشها، فصلها و عناوین فرعی بهطور خودکار تولید میشوند. نتیجه سند پس از کامپایل بهصورت زیر است.
مشکلی که در این فهرست وجود داد این است که فصل شمارهگذاری نشده را نادیده گرفته است. برای حل این مشکل لازم است تا دستور دیگری را وارد کنیم. دستور زیر را در نظر بگیرید.
1section*{Unnumbered Section}
2addcontentsline{toc}{section}{Unnumbered Section}
کافی است تا پس از فصل شمارهگذاری نشده، دستور آورده شده را درج کنیم. در واقع شما با این روش میتوانید بهصورت دستی مواردی را به فهرست مطالب اضافه کنید.
لزوم یادگیری لتکس چیست؟
همانطور که گفتیم، شما میتوانید از نرمافزارهای دیگری هم استفاده کنید که همان کار لتکس را انجام میدهند و میتوانند قالبهای گوناگون سند را برای شما تولید کنند. اما در کل، این انتخاب بر مبنای نیازها، شرایط و نظر شما بستگی دارد که یا مورد دیگری را برای ادامه کار خود انتخاب کنید.
در ادامه، مواردی را بیان کردهایم که میتوانند شما را به استفاده از لتکس ترغیب کنند.
- با لتکس میتوانید اسنادی را ایجاد کنید که شامل فرمولهای پیچیده ریاضی، جدولها و محتوای تخصصی و علمی هستند.
- امکان درج آسانتر پاورقیها برای ارائه توضیحات بیشتر، ارجاعات داخلی به منظور دسترسی آسان به بخشهای مدنظر نویسنده و همچنین فهرست منابع با هدف اضافه کردن و مدیریت مراجع مورد استفاده در تدوین سند را فراهم میکند.
- لتکس با ساخت آسان فهرست مطالب، فهرست اَشکال، واژهنامهها و غیره شما را از انجام اینگونه کارهای حاشیهای رها میکنند تا تمرکز خود را بیشتر روی محتوا معطوف کنید.
- ابزار لتکس بسته یا افزونههای رایگان و بسیار زیادی دارد که قابلیتهای آن را گسترش میدهند. این مورد به شما کمک میکند تا اسنادی بسیار سفارشی و آنگونه که در ذهن دارید تولید کنید.
ادامه یادگیری لتکس با فرادرس
در صورتیکه قصد ادامه یادگیری این موضوع با فرادرس را دارید میتوانید از فیلمهای آموزش زیر استفاده کنید.
جمعبندی
در این مطلب آموزش لتکس از مجله فرادرس، به شما توضیح دادیم که چیست و چگونه میتوانیم از قابلیتهای آن برای نگارش متون علمی خود استفاده کنیم. لتکس امکانات گوناگونی همچون فرمولنویسی پیشرفته، درج جدول، اَشکال، تصاویر، فهرست مطالب، واژهنامه و غیره را برای ساخت اسنادی استاندارد از قبیل کتاب، مقاله، گزارش، پایاننامه و غیره در اختیار کاربر قرار میدهد.
در این نوشتار آموزش لتکس، از پلتفرم آنلاین Overleaf به عنوان ویرایشگر لتکس خود استفاده کردیم که امکانات خوبی مانند ادیتور بصری را بهصورت رایگان ارائه میدهد و قابلیتهایی مانند کار روی سند بدون کدنویسی و در محیطی دیداری را فراهم میکند. فرض را بر این گذاشتیم که پیشزمینهای در مورد لتکس ندارید و از سادهترین مثال، آموزش لتکس را پیش بردیم. تنظیمات سند در لتکس، افزودن اطلاعات نویسنده، عنوان و تاریخ سند، درج کامنتها، فرمتبندی متون، ایجاد جدول و درج تصاویر، افزودن توضیح و ارجاع به عکسها و جداول، درج فرمولها، بخشبندی و افزودن فهرست منابع جزو مواردی بودند که در این آموزش لتکس به آن پرداختیم.
source