لاتک/وارد کردن کد در متن با بسته listings: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
حذف زمان‌دار
جز ویرایش 5.160.235.155 (بحث) به آخرین تغییری که Doostdar انجام داده بود واگردانده شد
خط ۱:
{{جا:حذف زمان‌دار|معیار}}
{{حق تکثیر مشکوک}}
در این نوشتار قصد داریم تا در مورد نحوه وارد کردن کد در متن توسط بسته listings صحبت کنیم.
== اهداف و مزایا ==
فرض کنید که شما یک برنامه به زبانی مانند C، JAVA، MATLAB و ... نوشته آیداید که می‌خواهید به هر علتی کد آن را در داخل متن وارد کنید. احتمالاًاحتمالا قبل از آشنایی با بسته listings شما کد خود را در متن کپی و pastepaste‌ می کردید و زمان زیادی را صرف این می کردید که شکل و شمایل آن به مانند حالتی گردد که در محیط های برنامه نویسی مشاهده می کنید. اما توسط بسته listingslistings‌ براحتی و به سادگی هر چه تمام تر می توانید فایل کد خود را در متن با همان فرمتی که شما در نرم‌افزارنرم افزار های برنامه نویسی مشاهده می‌کنید وارد کنید. در این نوشتار قصد داریم تا شما را با نحوه کارکرد این بسته آشنا سازیم.
== خوش آمدید ==
[[File:Carl Spitzweg 021-detail.jpg|thumb|left|180px|خوش‌آمدید!]]
<br/>
 
سلام {{PAGENAME}}، به ویکی‌کتاب خوش آمدید. از مشارکت شما سپاسگزارم. امیدوارم که از اینجا خوشتان بیاید و تصمیم به ماندن بگیرید. راهنماهای ویکی‌کتاب در [[راهنما:فهرست|اینجا]] است اما پیوندهای زیر برای کاربرهای جدید مفیدند:
 
{|
|-
|[[پرونده:Noia 64 apps help index.png|30px|right|link=ویکی‌کتاب:ویکی‌کتاب چیست؟|ویکی‌نسک (ویکی‌کتاب) چیست؟]] || [[ویکی‌کتاب:ویکی‌کتاب چیست؟|ویکی‌نسک (ویکی‌کتاب) چیست؟]]
|-
| [[پرونده:Nuvola apps ksig.png|30px|right|link=ویکی‌کتاب:آموزش سریع|آموزش سریع]] || [[ویکی‌کتاب:آموزش سریع|آموزش سریع]] آموزش کار با زبان مدیاویکی (محیط ویکی‌نسک)
|-
|[[پرونده:Farsi.svg|30px|right|link=ویکی‌کتاب:فارسی‌نویسی|فارسی‌نویسی]]||[[ویکی‌کتاب:فارسی‌نویسی|فارسی‌نویسی]] چگونه با حروف فارسی بنویسیم؟
|-
| [[پرونده:Nuvola apps chat.png|30px|right|link=ویکی‌کتاب:میز تحریر|میز تحریر]]||[[ویکی‌کتاب:میز تحریر]] برای گفتگو دربارهٔ مسائل فنی و سیاست‌ها.
|-
| ||[[راهنما:ویرایش|ویرایش]] مقدمه‌ای بر ویرایش در ویکی‌نسک
|-
|[[File:Bucket in the sand.svg|right|50px|link=ویکی‌کتاب:صفحه تمرین|صفحه تمرین]]||[[ویکی‌کتاب:صفحه تمرین|صفحه تمرین]] برای تمرین ویرایش
|-
|[[پرونده:Nuvola apps agent.svg|30px|right|link=w:ویکی‌کتاب:خودآموز|آموزش پیشرفته]]||[[w:ویکی‌پدیا:خودآموز|آموزش پیشرفته]]
|-
|'''پروژه‌های دیگر بنیاد'''||[[پرونده:Wikipedia-logo.png|25px|link=w:صفحه_اصلی|ویکی‌پدیا]][[پرونده:HSWikimedia.svg|30px|link=m:Special:Recentchanges|فراویکی]] [[پرونده:HSCommons.svg|30px|link=commons:Special:Recentchanges|ویکی‌انبار]][[پرونده:HSWNews.svg|30px|link=n:ویژه:تغییرات اخیر|ویکی‌خبر]] [[پرونده:HSWtionary.svg|30px|link=wikt:صفحه_اصلی|ویکی‌واژه]] [[پرونده:HSWQuote.svg|30px|link=q:صفحه_اصلی|ویکی‌گفتاورد]][[پرونده:HSWSource.svg|30px|link=s:صفحه_اصلی|ویکی‌نبشته]]
[[پرونده:Wikidata-logo.svg|30px|link=wikidata:صفحه_اصلی|ویکی‌داده]]
|}
امیدوارم از ''[[ویکی‌نسک:ویکی‌نسک‌نویسان|ویکی‌نسک‌نویس]]'' بودن لذت ببرید! لطفاً برای آزمایش از [[ویکی‌کتاب:گودال ماسه‌بازی]] استفاده کنید. باز هم خوش آمد می‌گویم.[[ویژه:مشارکت‌ها/5.160.235.155|5.160.235.155]] ‏۲۸ مارس ۲۰۱۵، ساعت ۱۵:۱۳ (UTC)
 
 
 
== وارد کردن بسته listings ==
در شروع کار بسته listings را با دستور usepackage فراخوانی کنید. دقت کنید که این بسته را با بسته listing اشتباه نکنید. البته در این مورد حتماًحتما به نکات زیر دقت کنید.
# اگر در حال نوشتن یک متن فارسی با استفاده از بسته xepersian هستید، دقت کنید که بسته xepersian حتماًحتما حتما باید آخرین بسته ای باشد که فراخوانی می شود. این قانون کاملاًکاملا کلی است و در هر متنی که شما قصد نوشتن آن را با استفاده از xepersian دارید باید رعایت شود.
# بسته hyperref جزو آخرین بسته هایی باید باشد که فراخوانی می شود. این قانون هم کلی است.
# بسته listings قبل از دو بسته یاد شده باید وارد شود.
# به صورت پیش فرض کدهای وارد شده توسط بسته listings به صورت سیاه و سفید وارد متن می شوند. اگر می‌خواهید کدهای شما در متن به صورت رنگی باشد، مثلاًمثلا کامنت ها به رنگ سبز باشند، باید بسته colorcolor‌ و xcolor را وارد کنید. البته وارد کردن این دو بسته کافی نیست بلکه باید یکسری تنظیماتی که در قسمت های بعدی بیان خواهد شد را نیز انجام دهید.
پس خواهیم داشت.
<source lang="latex">
سطر ۴۸ ⟵ ۱۸:
 
== وارد کردن کد در متن ==
فرض کنید که یک کد MATLAB در فایلی به نام myFun.m نوشته آیداید که می خواهید آن را در متن وارد کنید. با استفاده از بسته listings کد خود را به دو شیوه می‌توانید در متن وارد کنید.
# وارد کردن فایل کد
# وارد کردن کد به صورت خام
سطر ۶۶ ⟵ ۳۶:
\end{latin}
</source>
* تنظیمات بسته listings را می‌توانید در زمان فراخوانی lstinputlisting وارد کنید. برای مثال در این جا من فقط از تنظیم تعیین زبان (language) استفاده کردم، و آن را بر روی زبان Matlab قرار دادم. این option به listingslistings‌ کمک می‌کند تا کد شما را در قالب زبان MATLAB وارد کند.
* اگر می خواهید کد در داخل یک متن فارسی وارد کنید، حتماًحتما آن را درون محیط latin قرار دهید. یعنی آن را در بین \begin{latin} و \end{latin} قرار دهید.
* در صورتی که می خواهید کد را در یک متن انگلیسی وارد کنید باید خطوط \begin{latin} و \end{latin} را حذف کنید.
* دقت کنید که به همراه اسم فایل، پسوند فایل را نیز وارد کنید.
سطر ۱۰۳ ⟵ ۷۳:
 
* کد خالص در محیطی به نام lstlisting وارد می‌شود. یعنی کد شما باید بین \begin{lstlisting} و \end{lstlisting} قرار گیرد.
* به مانند حالت قبل، اگر می‌خواهید کد را در متن فارسی وارد کنید حتماًحتما آن بین یک محیط latin قرار دهید.
* تنظیمات بسته listings در این روش به دو صورت انجام م شود
# توسط دستور lstset. این دستور را باید قبل از محیط lstlisting وارد کنید. برای مثال ذکر شده خواهیم داشت.
سطر ۱۱۷ ⟵ ۸۷:
</source>
 
: شما می توانید دستور lstsetlstset‌ را قبل از \begin{document} نیز قرار دهید. تنظیمات lstsetlstset‌ تا زمانی که شما دوباره lstsetlstset‌ را بکار نبرید، پابرجا باقی خواهد ماند.
 
# به عنوان تنظیمات محیط lstlisting در داخل [] بعد از \begin{lstlisting}.
سطر ۱۲۳ ⟵ ۹۳:
== تنظیمات ==
=== نحوه وارد کردن تنظیمات ===
همان‌طورهمان طور که پیشتر ذکر شد، شما دو روش برای وارد کردن تنظیمات بسته listings دارید.
* استفاده از دستور lstset.
* وارد کردن به عنوان آرگومان دستورات وارد کردن کد.
سطر ۱۶۶ ⟵ ۱۳۶:
 
=== مهم‌ترین تنظیمات ===
بسته listingslistings‌ تنظیمات زیادی دارد. ما در این مجال به برخی از مهم‌ترین آن ها اشاره می‌کنیم.
* language: زبانی برنامه‌ای که می‌خواهید وارد کنید. لیست کاملی از زبان‌های برنامه نویسی که listingsپشتیبانیlistings‌پشتیبانی می‌کند در لینک زیر ارایه شده است.
{{چپ‌چین}}
http://en.wikibooks.org/wiki/LaTeX/Source_Code_Listings
سطر ۱۸۱ ⟵ ۱۵۱:
* numbers: که می‌تواند یکی از مقادیر none و left و right را به خود بگیرد. در صورتی که مقادیر left یا right را انتخاب کنید، خطوط برنامه شماره گذاری می‌شود و شماره ها در سمت چپ یا راست خواهد آمد.
* numbersep: تعیین فاصله افقی شماره ها از کد
* numberstyle: تعیین استایل شماره ها. مثلاًمثلا numberstyle=\tiny\color{mygray} شماره ها به رنگ mygray و به اندازه tiny نمایش داده می شوند.
* stepnumber: برای مثال اگر مقدار stepnumber=2 باشد، آن‌گاه یک خط در میان شماره گذاری انجام می‌شود.
* lineskip: فاصله خطوط به مقدار lineskip از یکدیگر افزایش خواهد یافت.
سطر ۱۸۹ ⟵ ۱۵۹:
* showspaces: فاصله ها (space) در کد را با کاراکتری معین، تعیین می کند. مقدار این تنظیم می تواند true یا false باشد.
* showtabs: tap ها را در متن مشخص می کند. مقدار این تنظیم می تواند true یا false باشد.
* morekeywords: در هر زبان برنامه نویسی یکسری از واژه ها به عنوان keywordstyle آن زبان محسوب می شود. در بسته listings، morekeywords استاندارد هر زبان قرار داده شده است. شما می توانید به دلخواه خود یکسری keyword جدید به keywordهایkeyword‌های استاندارد اضافه کنید.
* deletekeywords: کلمه‌ای که در این تنظیم مشخص می کنید از بین کلمات کلیدی زبان انتخاب شده حذف می شود. به عنوان مثال اگر شما زبان MATLAB را انتخاب کرده باشید، و deletekeywords={clear} باشد، آن‌گاه کلمه کلیدی clear از بین کلمات کلیدی MATLAB در وارد کردن کد به صورت موقت حذف می شود.
* frame: اضافه کردن یک کادر بدور کد. این تنظیم می تواند یکی از مقادیر none|leftline|topline|bottomline|lines|single|shadowbox را داشته باشد. بسته Listings تنظیمات زیادی برای تنظیم کادر دور محیط کد فراهم آورده است که با مراجعه به راهنمای آن می توانید از آن ها استفاده کنید.
سطر ۱۹۵ ⟵ ۱۶۵:
== برخی نکات ==
=== وارد کردن روابط ریاضی در کد ===
فرض کنید که می خواهید در قسمت کامنت کدی که در متن وارد کرده آید،اید، یک عبارت در mathmode داشته باشید. مثلاًمثلا بنویسید \alpha + d_{i} . ولی می‌خواهید این عبارت به صوررت درست یعنی
$\alpha + d_{i}$
در متن ظاهر شود. برای این کار کافی است که تنظیم texcl یا mathescape را فعال کنید.
سطر ۲۱۰ ⟵ ۱۸۰:
 
[[رده:لاتک]]
 
:{{شد}} [[ویژه:مشارکت‌ها/5.160.235.155|5.160.235.155]] ‏۲۸ مارس ۲۰۱۵، ساعت ۱۵:۱۳ (UTC)
:{{شد}} [[ویژه:مشارکت‌ها/5.160.235.155|5.160.235.155]] ‏۲۸ مارس ۲۰۱۵، ساعت ۱۵:۱۳ (UTC)