% !TeX root= lshort.tex % !TEX TS-program=xelatex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Contents: Things you need to know % $Id: things.tex 172 2008-09-25 05:26:50Z oetiker $ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{چیز‌هایی که باید بدانید} \begin{intro} اولین قسمت این فصل به بررسی فلسفه و تاریخچهٔ \lr{\LaTeXe} اختصاص دارد. قسمت دوم متمرکز به ساختار \lr{\LaTeXe} است. بعد از مطالعهٔ این فصل درمی‌یابید که \lr{\LaTeX} چگونه کار می‌کند، که برای مطالعهٔ ادامه کتاب لازم است. \end{intro} \section{عنوان بازی} \subsection{تک} تک یک برنامهٔ کامپیوتری است که توسط دونالد کنوث \romanindex{Knuth, Donald E.}\cite{texbook} ساخته شده است. هدف آن حروف‌\-چینی متن عادی و ریاضی است. کنوث در سال ۱۹۷۷ شروع به نوشتن تک کرد تا قدرت پنهانی ابزار چاپ دیجیتال را که در آن زمان در صنعت چاپ رخنه کرده بود مورد کاوش قرار دهد به این امید که بدی کیفیت حروف‌چینی کتاب‌ها و و مقالات خودش را از بین ببرد. تک به این صورت که امروزه ما مورد استفاده قرار می‌دهیم در سال ۱۹۸۲ انتشار یافت و در سال ۱۹۸۹ امکانات حمایت حروف ۸ بیتی و دیگر زبان‌ها به آن اضافه شد. شهرت تک در این است که بسیار پایدار است، روی هر سیستم‌ عاملی قابل نصب است، و به‌طور مجازی فارغ از اشکال است. نسخهٔ کنونی تک 3.141592 است که به عدد $\pi$ میل می‌کند. \subsection{لاتک} لاتک یک بسته از ماکروها است که به نویسنده‌ها امکان حروف‌چینی و چاپ کارهایشان را با بهترین کیفیت با استفاده از تعدادی طرح حرفه‌ای می‌دهد. لاتک در ابتدا توسط لِزْلی لَمْپورت \romanindex{Lamport, Leslie}\cite{manual} نوشته شد که از تک به عنوان موتور حروف‌چین استفاده می‌کند. این روزها لاتک توسط فِرانْک میتِل‌باخ \romanindex{Mittelbach, Frank} حمایت می‌شود. \section{مبانی} \subsection{نویسنده، طراحی کتاب، و حروف‌چینی} برای انتشار چیزی نویسندگان نوشتهٔ خود را به مؤسسات انتشاراتی می‌دهند. یکی از طراحان کتاب در مورد سبک‌ نوشته تصمیم می‌گیرد (عرض ستون، قلم، فاصله قبل و بعد از سربرگ، \ldots). طراح کتاب راهنمایی لازم را به حروف‌چین می‌کند تا کتاب را بر طبق آن حروف‌چینی کند. طراح کتاب سعی می‌کند بفهمد خواست نویسنده هنگام نوشتن کتاب چه بوده است. او در مورد سربرگ فصل‌ها، ارجاع‌ها، مثال‌ها، فرمول‌ها، و غیره بر اساس اطلاعات حرفه‌ای خود و اطلاعات در مورد محتوای نوشته تصمیم می‌گیرد. در محیط لاتک، لاتک نقش طراح کتاب را برعهده می‌گیرد و از تک به عنوان حروف‌چین استفاده می‌کند. اما لاتک تنها یک برنامه است و بنابراین نیاز به راهنمایی دارد. نویسنده باید اطلاعات کافی در مورد ساختار منطقی کارش را به لاتک بدهد. این اطلاعات در متن به صورت {\it فرمان‌های لاتک} وارد می‌شوند. این کار کاملاً با روش \wi{\lr{WYSIWYG}} \Footnote{What you see is what you get.} تفاوت دارد که بسیاری از پردازش‌گرهای متنی مانند \emph{MS Word} یا \emph{Corel WordPerfect} از آن پیروی می‌کنند. در این نرم‌افزارها، نویسنده سبک‌ نوشتار را به صورت مستقیم هنگام نوشتن آن مشخص می‌کند. در این نرم‌افزارها شکل خروجی را، همزمان که نوشتار را تایپ می‌کنید، به صورت مستقیم می‌توان بر روی صفحهٔ نمایش دید. وقتی که از لاتک استفاده می‌کنید به طور نرمال نمی‌توانید همزمان با تایپ متن شکل خروجی را ببینید، اما می‌توانید آن را بعد از پردازش توسط لاتک مشاهده کنید. در این صورت تصحیحات را می‌توان قبل از فرستادن نوشته به چاپگر انجام داد. \subsection{طراحی سبک‌} حروف‌چینی یک هنر است. نویسنده‌های ناوارد معمولاً اشتباهات اساسی در هنگام طراحی انجام می‌دهند زیرا فکر می‌کنند طراحی تماماً مربوط به علم زیبایی شناسی است \emp{اگر یک متن از نظر زیبایی خوب باشد، خوب طراحی شده است.} اما از آنجا که یک کتاب را باید خواند نه آنکه در یک نمایشگاه عکس آویزان کرد، خوانایی و قابل فهم بودن آن بسیار مهم‌تر از ظاهر زیبای آن است. به عنوان مثال: \begin{itemize} \item نوع و اندازهٔ قلم شماره‌بندی سربرگ باید به گونه‌ای انتخاب شود که ساختار فصل‌ها و بخش‌ها برای خواننده واضح باشد. \item طول خط‌ها باید به اندازه کافی کوتاه باشد تا چشمان خواننده را خسته نکند و همزمان باید به اندازه کافی بلند باشد تا زیبایی صفحات را از بین نبرد. \end{itemize} با سیستم‌های \wi{\lr{WYSIWYG}}، نویسنده‌ها معمولاً نوشتارهای زیبا اما فاقد ساختار سازگار را تولید می‌کنند. لاتک با مجبور کردن نویسنده به مشخص کردن ساختار منطقی نوشته‌اش از چنین اشتباهی جلوگیری می‌کند. لاتک آنگاه طراحی بهترین سبک‌ را به عهده می‌گیرد. \subsection{مزیت‌ها و اشکالات} افرادی که از سیستم \wi{\lr{WYSIWYG}} یا لاتک استفاده می‌کنند، اغلب در مورد \emp{مزیت لاتک بر پردازشگر‌های عادی} یا عکس آن بحث می‌کنند. بهترین کاری که هنگام مواجهه با این بحث باید انجام دهید این است که از ادامه بحث پرهیز کنید زیرا اغلب بدون نتیجه است. اما گاهی اوقات فرار از چنین بحثی ممکن نیست. \medskip\noindent بنابراین کمی مهمات همراه داشته باشید. مهمترین مزیت لاتک بر یک سیستم پردازشگر عادی متن از قرار زیر است: \begin{itemize} \item سبک‌‌های زیبای حرفه‌ای موجودند که متن را آن گونه طراحی می‌کنند که واقعاً باید چاپ شود. \item حروف‌چینی فرمول‌های ریاضی به بهترین شکل حمایت می‌شود. \item کاربر تنها کافی است تعدادی فرمان آسان را یاد بگیرد تا ساختار منطقی نوشته‌اش را طراحی کند. معمولاً لازم نیست در مورد ساختار واقعی متن نگران باشید. \item حتی ساختارهای پیچیده مانند پانوشت‌ها، ارجاع‌ها، فهرست مطالب، و کتاب‌نامه به راحتی قابل تولید هستند. \item بسته‌های اضافی مجانی بسیاری برای کارهایی که لاتک انجام نمی‌دهد وجود دارند. به عنوان مثال بسته‌های \PSi برای گرافیک یا بسته‌هایی برای قرار دادن ارجاع‌ها به شکل استاندارد وجود دارند. بسیاری از این بسته‌ها در \companion توضیح داده شده‌اند. \item لاتک نویسنده‌ها را تشویق می‌کند نوشته‌های خود را با ساختار مناسب بنویسند، زیرا این روشی است که لاتک از آن پیروی می‌کند. \item تک، موتور لاتک، بسیار قابل انعطاف و مجانی است. بنابراین، این سیستم روی هر سیستم‌ عاملی کار می‌کند. % % Add examples ... % \end{itemize} %\medskip \noindent لاتک دارای بدی‌هایی نیز می‌باشد که برای من سخت است آنها را حدس بزنم، با این وجود مطمئنم افراد دیگر ممکن است صدتا از آنها را به شما گوشزد کنند ( \lr{-}; \begin{itemize} \item لاتک برای افرادی که روح خودشان را فروخته باشند مناسب نیست ... \item با وجودی که بعضی از پارامترها را می‌‌توان در یک نوشتار تنظیم کرد، طراحی یک سبک‌ جدید سخت و زمان‌بر است.% \footnote{شایعاتی وجود دارد که رفع این مشکل مهمترین کار لاتک ۳ است.} \index{LaTeX3@\lr{\LaTeX 3}}\index{لاتک ۳} \item بسیار سخت است که متن‌های بدون ساختار نوشت. \item همستر% \Footnote{Hamster} شما حتی با تشویق‌های اولین قدم‌ها، ممکن است هیچ‌گاه مفهوم نقاط علامت گذاری‌ شده را درنیابد. \end{itemize} \section{فایل‌های ورودی لاتک} ورودی لاتک یک فایل اَسْکی ساده است که می‌توان آن را با هر ویرایشگری نوشت. این ورودی شامل متن و فرمان‌هایی است که مشخص می‌کند متن چگونه باید حروف‌چینی شود. \subsection{فاصله‌ها} لاتک با حروف \emp{\wi{فاصلهٔ سفید}} مانند حرف فاصله% \Footnote{Blank} یا تب% \Footnote{Tab} به طور یکسان به عنوان \emp{\wi{فاصله}} رفتار می‌کند. با {\it فاصله‌های متوالی} همانند {\it یک فاصله} رفتار می‌شود. فاصلهٔ سفید در ابتدای خط بی‌اثر است، و با یک شکستن خط مانند \emp{فاصلهٔ سفید} رفتار می‌شود.\index{فضای خالی!در ابتدای خط} یک خط خالی بین دو خط از متن پایان یک پاراگراف را مشخص می‌کند. \emp{چند} خط خالی متوالی مانند تنها \emp{یک} خط خالی است. متن زیر یک نمونه است. در سمت چپ متن ورودی قرار دارد و در سمت راست شکل خروجی قرار دارد. \begin{example} It does not matter whether you enter one or several spaces after a word. An empty line starts a new paragraph. \end{example} \subsection{حروف ویژه} نماد‌های زیر \wi{حروف اختصاصی} هستند که یا دارای معنای ویژه در لاتک هستند یا در همهٔ قلم‌ها وجود ندارند. اگر آنها را مستقیماً در متن به‌کار برید در خروجی ظاهر نمی‌شوند و لاتک را مجبور به کاری غیر مرتبط می‌کنند. \begin{code} \verb.# $ % ^ & _ { } ~ \ . %$ \end{code} همان‌طور که خواهید دید این حروف را می‌توانید در متن با افزودن یک پیشوند بک‌اسلش\Footnote{backslash} مورد استفاده قرار دهید: \begin{example} \# \$ \% \^{} \& \_ \{ \} \~{} \end{example} بقیهٔ نمادها و بسیاری چیزهای دیگر را می‌توان در فرمول‌های ریاضی یا به عنوان لهجه‌های مختلف با فرمان‌هایی چاپ کرد. بک‌اسلش را نمی‌توان با افزودن یک بک‌اسلش دیگر مانند (\verb|\\|) چاپ کرد؛ این رشته برای شکستن خط به‌کار می‌رود.% \footnote{به جای آن از \lr{\texttt{\$}\ci{backslash}\texttt{\$}} استفاده کنید. این کار باعث چاپ $\backslash$ می‌شود.} \subsection{فرمان‌های لاتک} فرمان‌های \index{غیی@‌فرمان‌ها} لاتک به کوچک و بزرگ بودن حروف حساس است و یکی از دو شکل زیر را می‌پذیرند: \begin{itemize} \item با یک \wi{بک‌اسلش} \verb|\| شروع می‌شوند و دارای اسمی هستند که تنها از حروف تشکیل شده است. اسم فرمان‌ها با یک فاصله یا یک عدد و یا هر \emp{غیر حرف} پایان می‌یابد. \item از یک بک‌اسلش و تنها یک غیر حرف تشکیل شده‌اند. \end{itemize} \label{whitespace} لاتک از فاصله خالی بعد از فرمان‌ها چشم‌پوشی می‌کند. اگر می‌خواهید بعد از آنها فاصله خالی \index{فضای خالی!بعد از فرمان} داشته باشید بعد از فرمان، \verb|{}| به همراه یک فاصله قرار دهید یا از یک فرمان ویژهٔ فاصله استفاده کنید. \verb|{}| باعث می‌شود لاتک تمام فضای خالی بعد از فرمان را از بین نبرد. {\let\today=\originaltoday \begin{example} I read that Knuth divides the people working with \TeX{} into \TeX{}nicians and \TeX perts.\\ Today is \today. \end{example} \def\today{\rl{\ftoday}} بعضی از فرمان‌ها احتیاج به پارامتر \index{بیی@پارامتر} دارند که آنها را در \wi{آکولاد} \verb|} {| قرار می‌دهیم. بعضی از فرمان‌ها پارامترهای اختیاری \index{بیی@پارامتر‌های اختیاری} قبول می‌کنند که آنها را در کروشه \index{قیی@کروشه} \index{قیی@کروشه}~\verb|] [| قرار می‌دهیم. مثال‌های بعد چند فرمان در لاتک را نشان می‌دهند. نگران نباشید، آنها را بعداً توضیح می‌دهیم. \begin{example} You can \textsl{lean} on me! \end{example} \begin{example} Please, start a new line right here!\newline Thank you! \end{example} \subsection{توضیحات} \index{توضیحات} هنگام پردازش فایل ورودی، وقتی لاتک با یک \verb|%| مواجه می‌شود، ادامهٔ خط، شکست خط، و فاصله‌های خالی خط بعد را نادیده می‌گیرد. با استفاده از این موضوع می‌توان چیزهایی را در متن آورد که در هنگام چاپ ظاهر نشوند. \begin{example} This is an % stupid % Better: instructive <---- example: Supercal% ifragilist% icexpialidocious \end{example} %\def\rightmark{\thepage} از \texttt{\%} می‌توان استفاده کرد و خط‌های فایل ورودی را شکست حتی وقتی که فاصله خالی یا شکست خط در خروجی مورد نظر نیست. برای توضیحات طولانی باید از محیط \ei{comment} از بستهٔ \pai{verbatim} استفاده کرد. برای این منظور باید عبارت \verb|\usepackage{verbatim}| را در آغاز فایل ورودی قبل از استفاده از آن وارد کنید همان‌طور که در مثال زیر آمده است. \begin{example} This is another \begin{comment} rather stupid, but helpful \end{comment} example for embedding comments in your document. \end{example} توجه داشته باشید که این کار را در محیط‌های پیچیده مانند محیط ریاضی نمی‌توانید انجام دهید. \section{ساختار فایل‌های ورودی} وقتی لاتک یک فایل ورودی را پردازش می‌کند انتظار دارد که فایل از یک \wi{ساختار} پیروی کند. بنابراین هر فایل ورودی باید با فرمان \begin{code} \verb|\documentclass{...}| \end{code} آغاز شود. این کار مشخص می‌کند که چه نوع نوشتاری را می‌خواهید بنویسید. بعد از آن فرمان‌های مورد نیاز را باید معرفی کنید و یا بسته \index{بسته}% هایی را بارگذاری کنید که امکانات جدیدی را به لاتک اضافه می‌کنند. برای بارگذاری یک بسته از فرمان زیر استفاده می‌کنیم: \begin{code} \verb|\usepackage{...}| \end{code} وقتی تمام این مقدمات انجام شد،% \footnote{فاصله بین \texttt{\bs documentclass} و \lr{\texttt{\bs begin$\mathtt{\{}$document$\mathtt{\}}$}} سرآغاز یا \emph{\wi{\lr{preamble}}} نامیده می‌شود.} باید متن به همراه فرمان‌های مفید را وارد کنید. در انتهای فایل ورودی فرمان \begin{code} \verb|\end{document}| \end{code} را وارد کنید تا به لاتک بفهمانید همه چیز تمام شده است. بعد از این فرمان چیزی توسط لاتک در نظر گرفته نمی‌شود. شکل \ref{mini} %\LR{\hyperref[mini]{1.2}} محتویات یک فایل ساده لاتک را نشان می‌دهد. مثالی کمی پیچیده‌تر از یک \wi{فایل ورودی} در شکل \ref{document} %\LR{\hyperref[document]{2.2}} آورده شده است. \begin{figure}[!htbp] \setLR \begin{lined}{6cm} \begin{verbatim} \documentclass{article} \begin{document} Small is beautiful. \end{document} \end{verbatim} \end{lined} \setRL \caption{یک فایل لاتک نمونه} \label{mini} \end{figure} \begin{figure}[!htbp] \begin{lined}{10cm} \setLR \begin{verbatim} \documentclass[a4paper,11pt]{article} % define the title \author{H.~Partl} \title{Minimalism} \begin{document} % generates the title \maketitle % insert the table of contents \tableofcontents \section{Some Interesting Words} Well, and here begins my lovely article. \section{Good Bye World} \ldots{} and here it ends. \end{document} \end{verbatim} \end{lined} \setRL \caption[مثالی از یک فایل مقالهٔ مجله] {مثالی از یک فایل مقاله مجله. تمام فرمان‌هایی که در این مثال وجود دارند بعداً در مقدمه شرح داده خواهند شد.} \label{document} \end{figure} %\setRL \section{یک دوره خط فرمان} شرط می‌بندمتصمیم گرفته‌اید مثال جمع‌وجور صفحه \pageref{mini} را شخصاً انجام بدهید. چند راهنمایی: خود لاتک بدون هیچ رابط کاربر گرافیکی\Footnote{GUI} یا کلیدهای تجملی ارائه می‌شود. لاتک فقط یک برنامه است که فایل ورودی را پردازش می‌کند. بعضی از توزیع‌های لاتک دارای رابط کاربری هستند که با فشردن یک دکمه می‌توانید فایل خود را پردازش کنید. در غیر این صورت باید در یک خط فرمان چند فرمان را تایپ کنید تا لاتک فایل ورودی را پردازش کند. پس اجازه دهید این کار را کمی توضیح دهیم. توجه: این توضیحات بر این فرض استوار است که شما لاتک را روی سیستم خود داشته باشید.\footnote{لاتک روی تمام سیستم‌های لینوکس که کامل نصب شده باشند وجود دارد، و \ldots مردها با لینوکس کار می‌کنند، بنابراین (\lr{-};} \begin{enumerate} \item فایل لاتک ورودی خود را بنویسید. این فایل باید یک متن ساده اسکی باشد. در لینوکس تمام ویرایشگرها می‌توانند این کار را انجام دهند. در ویندوز مطمئن شوید فایل را به فرم اسکی یا متن ساده ذخیره کرده‌اید. از \eei{.tex} به عنوان پسوند فایل خود استفاده کنید. \item لاتک را روی فایل خود اجرا کنید. اگر موفق شوید یک فایل \texttt{.dvi} بدست خواهد آمد. ممکن است لازم باشد لاتک را چندین بار روی فایل خود اجرا کنید تا فهرست و تمام ارجاع‌های داخلی را داشته باشید. وقتی که فایل ورودی مشکل داشته باشد لاتک به شما پیغام خواهد داد و پردازش را متوقف می‌کند. \texttt{ctrl-D} را تایپ کنید تا به خط فرمان برگردید. \begin{lscommand} \verb+latex foo.tex+ \end{lscommand} \item حال می‌توانید فایل \lr{DVI} را مشاهده کنید. چندین راه برای انجام این کار وجود دارد. می‌توانید فایل را روی صفحهٔ نمایش با فرمان \begin{lscommand} \verb+xdvi foo.dvi &+ \end{lscommand} مشاهده کنید. این کار را تنها روی سیستم لینوکس مجهز به \lr{X11} انجام دهید. اگر سیستم شما ویندوز است از \texttt{yap}\Footnote{yet another previewer} استفاده کنید. همچنین می‌توانید فایل \lr{dvi} را به \PSi{} برای مشاهده با گوست‌اسکریپت\Footnote{Ghostscript} یا چاپ تبدیل کنید. \begin{lscommand} \verb+dvips -Pcmz foo.dvi -o foo.ps+ \end{lscommand} اگر خوش‌شانس باشید سیستم لاتک شما دارای ابزار \texttt{dvipdf} است که به شما اجازه می‌دهد فایل \texttt{.dvi} را مستقیماً به \lr{pdf} تبدیل کنید. \begin{lscommand} \verb+dvipdf foo.dvi+ \end{lscommand} \end{enumerate} \section{طرح‌بندی نوشتار} \subsection{سبک نوشتار}\label{sec:documentclass} وقتی که لاتک یک فایل ورودی را پردازش می‌کند اولین اطلاعاتی را که باید بداند سبک نوشتار است. این موضوع با فرمان \ci{documentclass} مشخص می‌شود. \begin{lscommand} \ci{documentclass}\verb|[|\emph{options}\verb|]{|\emph{class}\verb|}| \end{lscommand} \noindent در اینجا \emph{class} سبک نوشتار را معرفی می‌کند. جدول \ref{documentclasses} %\LR{\hyperref[documentclasses]{1.2}} سبک‌های نوشتاری را نشان می‌دهد که در این مقدمه شرح داده خواهند شد. توزیع لاتک سبک‌های نوشتار دیگری مانند \lr{letter} و \lr{slide} را نیز شامل است. پارامترهای گزینه (\emph{\wi{\lr{options}}}) رفتار سبک نوشتار را کنترل می‌کنند. پارامترها توسط ویرگول از یکدیگر جدا می‌شوند. معمول‌ترین گزینه‌ها برای سبک‌های نوشتار استاندارد در جدول \ref{options} %\LR{\hyperref[options]{2.2}} آورده شده است. \begin{table}[!bp] \caption{سبک‌های نوشتار} \label{documentclasses} \begin{center} \vspace{1em} \begin{lined}{\textwidth} \begin{tabular}{lp{.80\textwidth}} \texttt{article}& برای مقالات مجله‌ها، ارائه‌ها، گزارش‌های کوتاه، اسناد برنامه‌ها، دعوت‌نامه، \ldots \romanindex{article class}\index{سبک مقاله} \\ \texttt{proc}& سبکی برای گزارش پیشرفت برپایهٔ سبک \lr{article} \romanindex{proc class}\index{سبک پیشرفت} \\ \texttt{minimal}& کوچکترین چیزی که می‌توان قرار داد. تنها شامل یک صفحه و یک قلم است. عموماً به منظور غلط‌یابی به کار می‌رود. \romanindex{minimal class}\index{سبک کمینه}\\ \texttt{report}& برای گزارش‌های مفصل‌تر که شامل چند فصل هستند، کتاب، پایان‌نامه، \ldots \romanindex{report class}\index{سبک گزارش}\\ \texttt{book}& برای کتاب‌های کامل \romanindex{book class}\index{سبک کتاب}\\ \texttt{slides}&برای اسلاید. این سبک از حروف بزرگ سانز سریف استفاده می‌کند. به جای آن ممکن است بخواهید از فویل‌تک استفاده کنید. \footnote{% \lr{\CTANref|macros/latex/contrib/supported/foiltex|}} \romanindex{slides class}\romanindex{foiltex}\index{سبک اسلاید}\index{فویل‌تک}\\ &\\ \end{tabular} \end{lined} \end{center} \end{table} \begin{table}[!bp] \caption{گزینه‌های سبک نوشتار} \label{options} \begin{center} \vspace{1em} \begin{lined}{\textwidth} \begin{tabular}{lp{.55\textwidth}} \lr{\texttt{10pt}, \texttt{11pt}, \texttt{12pt}}&اندازهٔ قلم اصلی نوشتار را تعیین می‌کند. اندازهٔ پیش‌فرض \texttt{10pt} است. \romanindex{document font size}\romanindex{base font size}\index{اندازهٔ قلم نوشتار}\index{اندازهٔ قلم پایه} \\ \lr{\texttt{a4paper}, \texttt{letterpaper}, \ldots}& اندازهٔ صفحه را مشخص می‌کند. اندازهٔ پیش‌فرض \texttt{letterpaper} است. بجز این‌ها \texttt{a5paper}, \texttt{b5paper}, \texttt{executivepaper}, و \texttt{legalpaper} نیز قابل استفاده هستند. \romanindex{legal paper} \romanindex{paper size}\romanindex{A4 paper}\romanindex{letter paper} \romanindex{A5 paper}\romanindex{B5 paper}\romanindex{executive paper}\\ \texttt{fleqn} & فرمول‌ها به جای وسط‌چین چپ‌چین می‌شوند. \\ \texttt{leqno} & شمارهٔ فرمول‌ها در سمت چپ به جای سمت راست ظاهر می‌شوند. \\ \lr{\texttt{titlepage}, \texttt{notitlepage}}&مشخص می‌کند که آیا صفحه‌ای جدید بعد از \wi{صفحهٔ عنوان} شروع شود یا نه. سبک \texttt{article} صفحه‌ای جدید به صورت پیش‌فرض شروع نمی‌کند در حالی که سبک‌های \texttt{report} و \texttt{book} این کار را انجام می‌دهند. \romanindex{title}\index{عنوان} \\ \lr{\texttt{onecolumn}, \texttt{twocolumn}}& لاتک را راهنمایی می‌کنند که نوشتار را در\wi{یک ستون} یا در \wi{دو ستون} حروف‌چینی کند.\\ \lr{\texttt{twoside, oneside}}& مشخص می‌کند که خروجی به صورت یک‌رو است یا دورو. به صورت پیش‌فرض سبک‌های \texttt{article} و \texttt{report} \wi{یک‌رو}هستند و سبک‌ \texttt{book} \wi{دورو}است. توجه کنید که این گزینه فقط به سبک نوشتار مربوط است. گزینه \texttt{twoside} به چاپگر فرمان چاپ دورو نمی‌دهد.\\ \texttt{landscape}& سبک‌ نوشتار را به صورت افقی (\lr{landscape}) تبدیل می‌کند. \\ \lr{\texttt{openright}, \texttt{openany}} & باعث می‌شود فصل‌ها در صفحه‌های سمت راست یا در صفحه بعدی شروع شوند. این گزینه با سبک \texttt{article} کار نمی‌کند زیرا در این سبک فصل وجود ندارد. سبک \texttt{report} به صورت پیش‌فرض فصل‌ها را در صفحهٔ بعدی و سبک \texttt{book} آنها را در صفحات سمت راست شروع می‌کند. \\ &\\ \end{tabular} \end{lined} \end{center} \end{table} مثال: یک فایل ورودی لاتک می‌تواند به صورت زیر شروع شود \begin{code} \ci{documentclass}\verb|[11pt,twoside,a4paper]{article}| \end{code} که به لاتک می‌گوید نوشتار را به صورت {\it مقاله} با اندازه قلم پایه {\it ۱۱ پوینت} حروف‌چینی کند، و سبک‌ {\textit دورو} را برای چاپ روی صفحه \lr{A4} طراحی کند. \pagebreak[2] \subsection{بسته‌ها} \romanindex{package}\index{بسته} هنگامی که در حال نوشتن نوشتار خود هستید، ممکن است به مراحلی برسید که لاتک نتواند مشکلات شما را حل کند. اگر می‌خواهید \wi{تصویر}\romanindex{graphic}، \wi{متن رنگی} یا کد یک مطلب را در نوشتار خود وارد کنید، احتیاج به بالابردن توانایی لاتک دارید. این کار را با استفاده از بسته‌ها انجام می‌دهیم. یک بسته را فرمان زیر فعال می‌سازد \begin{lscommand} \ci{usepackage}\verb|[|\emph{options}\verb|]{|\emph{package}\verb|}| \end{lscommand} \noindent که \emph{package} نام یک بسته است و \emph{options} لیستی از کلمه‌های کلیدی است که امکانات ویژه‌ای از بسته را فعال می‌سازند. بعضی از بسته‌ها با توزیع پایهٔ لاتک ارائه می‌شوند (جدول \ref{packages} %\LR{\hyperref[packages]{3.2}} را ببینید). تعدادی دیگر از این بسته‌ها به‌طور جداگانه عرضه می‌شوند. می‌توانید اطلاعات بسته‌های نصب شده روی سیستم‌ خود را در \guide ببینید. منبع اولیه برای اطلاعات در مورد بسته‌های لاتک \companion است که شامل شرح صدها بسته است و همچنین اطلاعاتی در مورد نوشتن بسته‌هایی برای افزودن به لاتک است. توزیع‌های جدید تک با تعداد بسیار زیادی از بسته‌های از پیش نصب شده همراه است. اگر با لینوکس کار می‌کنید فرمان \texttt{texdoc} را وارد کنید تا اطلاعات بسته‌ها را دریافت کنید. \begin{table}[btp] \caption{تعدادی از بسته‌هایی که به همراه توزیع لاتک ارائه می‌شوند} \label{packages} \begin{center} \vspace{1em} \begin{lined}{\textwidth} \begin{tabular}{lp{.8\textwidth}} \pai{doc} &اجازهٔ برنامهٔ اطلاعات لاتک را می‌دهد. شرح آن در فایل \texttt{doc.dtx} \footnote{این فایل باید روی سیستم نصب شده باشد و می‌توانید یک فایل \texttt{dvi} را با نوشتن فرمان \texttt{latex doc.dtx} در هر پرونده‌ای که اجازهٔ نوشتن در آن داشته باشید دریافت کنید. مطلب مشابهی برای فایل‌های دیگر این جدول برقرار است.} و در \companion داده شده است. \\ \pai{exscale}&اندازهٔ قلم‌های ریاضی را فراهم می‌کند.در فایل \texttt{ltexscale.dtx} توضیح داده شده است. \\ \pai{fontenc}&مشخص می‌کند لاتک باید از چه \wi{رمزینهٔ قلم}% \romanindex{font encoding}\Footnote{font encoding} استفاده کند. در فایل \texttt{ltoutenc.dtx} توضیح داده شده است. \\ \pai{ifthen}&فرمان‌های به شکل \lr{`if\ldots then do\ldots otherwise do\ldots'} را فراهم می‌کند. در فایل \texttt{ifthen.dtx} و \companion توضیح داده شده است. \\ \pai{latexsym}&برای دستیابی به نماد \lr{\LaTeX} باید از بستهٔ \texttt{latexsym} استفاده کنید. در فایل \texttt{latexsym.dtx} و در \companion توضیح داده شده است. \\ \pai{makeidx}&شامل فرمان‌هایی برای تولید نمایه است. در بخش \ref{sec:indexing} %\LR{\hyperref[sec:indexing]{3.5}} و در \companion توضیح داده شده است. \\ \pai{syntonly}&یک نوشتار را پردازش می‌کند بدون آنکه آن را حروف‌چینی کند. \\ \pai{inputenc}&اجازهٔ رمزینه‌هایی مانند \lr{ASCII, ISO Latin-1, ISO Latin-2, 437/850 IBM code pages, Apple Macintosh, Next, ANSI-Windows, user-defined} را می‌دهد. در \texttt{inputenc.dtx} توضیح داده شده است. \\ & \end{tabular} \end{lined} \end{center} \end{table} \subsection{شکل صفحات} لاتک سه نوع از پیش‌ تعریف‌شده \wi{سربرگ}\Footnote{footer}$\backslash$\wi{ته‌برگ}\Footnote{header}\romanindex{header}\romanindex{footer} را حمایت می‌کند که به \wi{سبک‌ صفحه}\Footnote{page style}\romanindex{page style} معروف هستند. پارامتر \emph{style} از فرمان \index{\lr{page style}!plain@\texttt{plain}}\index{\lr{plain}@\texttt{plain}} \index{\lr{page style}!headings@\texttt{headings}}\index{\lr{headings}@\texttt{headings}} \index{\lr{page style}!empty@\texttt{empty}}\index{\lr{empty}@\texttt{empty}} \begin{lscommand} \ci{pagestyle}\verb|{|\emph{style}\verb|}| \end{lscommand} \noindent مشخص می‌کند که کدام پارامتر باید مورد استفاده قرار گیرد. جدول \ref{pagestyle} %\LR{\hyperref[pagestyle]{4.2}} حاوی سبک‌‌های صفحهٔ از پیش تعریف شده است. \begin{table}[!htp] \caption{سبک‌‌های صفحهٔ از پیش تعریف‌ شده لاتک} \label{pagestyle} \begin{center} \vspace{1em} \begin{lined}{\textwidth} \begin{tabular}{lp{.8\textwidth}} \texttt{plain}&شمارهٔ صفحه را در وسط انتهای صفحه در ته‌برگ چاپ می‌کند. این سبک‌ پیش‌فرض است.\\ \texttt{headings}&عنوان فصل جاری را در سربرگ در تمام صفحات چاپ می‌کند، اما ته‌برگ خالی باقی می‌ماند. (این سبکی است که در این مقدمه مورد استفاده قرار گرفته است)\\ \texttt{empty}&سربرگ و ته‌برگ را خالی چاپ می‌کند. \\ & \end{tabular} \end{lined} \end{center} \end{table} می‌توان سبک‌ صفحهٔ جاری را با فرمان \begin{lscommand} \ci{thispagestyle}\verb|{|\emph{style}\verb|}| \end{lscommand} عوض کرد. توضیحی بر این که چگونه سربرگ و ته‌برگ مناسب خود را طراحی کنید در \companion{} و در بخش \ref{sec:fancy} %\LR{\hyperref[sec:fancy]{4.5}} در صفحه \pageref{sec:fancy} داده شده است. % % Pointer to the Fancy headings Package description ! % \pagebreak \section{فایل‌هایی که با آنها مواجه می‌شوید} وقتی که با لاتک کار می‌کنید با انبوهی از فایل‌ها با پسوندهای \index{بیی@پسوند}% مختلف مواجه می‌شوید که احتمالاً هیچ ایده‌ای از دلیل وجود آنها ندارید. لیست زیر \index{انواع فایل}% انواع فایل‌هایی را توضیح می‌دهد که هنگام کار با لاتک با آنها مواجه می‌شوید. توجه داشته باشید که این لیست تمام فایل‌های ممکن را دربر ندارد، ولی اگر فکر می‌کنید نوع مهمی از قلم افتاده است لطفاً به من اطلاع دهید. \begin{description} \item[\eei{.tex}] فایل ورودی تک یا لاتک. لاتک آن را پردازش می‌کند. \item[\eei{.sty}] بستهٔ ماکروهای لاتک. این نوعی از فایل است که شما با فرمان \ci{usepackage} به فایل ورودی وارد می‌کنید. \item[\eei{.dtx}] اطلاعات تک. این نوع اساسی‌ترین نوع برای فایل‌های استایل است. اگر یک فایل از این نوع را پردازش کنید، اطلاعات بستهٔ شامل آن فایل را بدست می‌آورید. \item[\eei{.ins}] فایل نصب کنندهٔ فایل‌های موجود در فایل \textrm{.dtx}. اگر بسته‌ای را از اینترنت دانلود کنید به طور نرمال شامل یک فایل \lr{.dtx} و یک فایل \lr{.ins} است. فایل \lr{.ins} را توسط لاتک پردازش کنید تا فایل \lr{.dtx} را باز کنید. \item[\eei{.cls}] فایل‌های کلاس که سبک نوشتار را مشخص می‌کنند. این فایل‌ها را با فرمان \ci{documentclass} فراخوانی می‌کنیم. \item[\eei{.fd}] فایل‌های قلم که لاتک را از آنها آگاه می‌سازد. \end{description} وقتی که لاتک فایل را پردازش می‌کند فایل‌های زیر را تولید می‌کند: \begin{description} \item[\eei{.dvi}] فایل مستقل از دستگاه. این فایل مهمترین خروجی لاتک است. محتویات آن را می‌توان با نمایشگر مخصوص آن ببینید یا می‌‌توانید آن را توسط \texttt{dvips} یا چیزی شبیه به آن به چاپگر بفرستید. \item[\eei{.log}] شامل همۀ اتفاقاتی است که در هنگام پردازش قبل اتفاق افتاده است. \item[\eei{.toc}] تمام عنوان‌های بخش‌ها را ذخیره می‌کند. این فایل در زمان اجرای بعدی خوانده می‌شود و برای چاپ فهرست مطالب مورد استفاده قرار می‌گیرد. \item[\eei{.lof}] این فایل مانند فایل \texttt{.toc} است اما برای لیست تصاویر. \item[\eei{.lot}] و همین‌طور این فایل برای لیست جدول‌ها است. \item[\eei{.aux}] فایل دیگری که وظیفهٔ آن انتقال اطلاعات از پردازش قبلی به پردازش جاری است و شامل ارجاع‌ها است. \item[\eei{.idx}] اگر فایل شما دارای نمایه باشد، لاتک تمام کلماتی را که باید به نمایه انتقال یابند در این فایل ذخیره می‌کند. این فایل را با \texttt{makeindex} پردازش کنید. به بخش \ref{sec:indexing} %\LR{\hyperref[sec:indexing]{3.5}} در صفحه \pageref{sec:indexing} برای اطلاعات بیشتر مراجعه کنید. \item[\eei{.ind}] فایل پردازش شده \texttt{.idx} که آماده تزریق به نوشتار در پردازش بعدی است. \item[\eei{.ilg}] فایلی که نشان می‌دهد \texttt{makeindex} چه‌کاری انجام داده است. \end{description} \section{پروژه‌های بزرگ} وقتی روی نوشتار‌های بزرگ کار می‌کنید، ممکن است دوست داشته باشید که فایل ورودی را به چند قسمت تقسیم کنید. لاتک دو فرمان برای انجام این کار دارد. \begin{lscommand} \ci{include}\verb|{|\emph{filename}\verb|}| \end{lscommand} \noindent این فرمان را می‌توانید در متن نوشتار وارد کنید تا محتویات فایل \emph{filename.tex} را به نوشتار اضافه کنید. توجه داشته باشید که لاتک یک صفحهٔ جدید را قبل از پردازش محتویات \emph{filename.tex} تولید می‌کند. فرمان دوم را می‌توانید در آغاز نوشتار وارد کنید. این کار به لاتک اجازه می‌دهد تنها تعدادی از فایل‌های \verb|\include| شده را در متن وارد کند. \begin{lscommand} \ci{includeonly}\verb|{|\emph{filename}\verb|,|\emph{filename}% \verb|,|\ldots\verb|}| \end{lscommand} بعد از این که این فرمان در آغاز پردازش شد، تنها فرمان‌های \ci{include} مربوط به آن فایل‌هایی اجرا می‌شود که نام آنها در آرگومان \ci{includeonly} آورده شده باشد. توجه داشته باشید که نباید هیچ فاصله‌ای بین اسم فایل‌ها و ویرگول‌ها باشد. فرمان \ci{include} باعث حروف‌چینی فایل الصاق شده در یک صفحهٔ جدید می‌شود. این موضوع به ویژه وقتی که از فرمان \ci{includeonly} استفاده می‌کنید مفید است زیرا شکست صفحه‌ها تغییر نمی‌کند حتی اگر بعضی از فایل‌ها الصاق شده حذف شده باشند. بعضی مواقع این کار مطلوب نیست. در این حالت می‌توانید از فرمان زیر استفاده کنید: \begin{lscommand} \ci{input}\verb|{|\emph{filename}\verb|}| \end{lscommand} \noindent این فرمان به طور ساده فایل‌های عنوان شده را الصاق می‌کند. بدون هیچ زرق ‌و برقی و هیچ چیز اضافه. برای این که لاتک را مجبور کنید نوشتار شما را بررسی کند از بستۀ \pai{syntonly} استفاده کنید. این بسته لاتک را مجبور می‌کند نوشتار را برای خطاهای احتمالی مورد بازرسی قرار دهد اما هیچ خروجی تولید نمی‌کند. از آنجا که لاتک در این حالت سریع‌تر اجرا می‌شود می‌تواند در ذخیره زمان بسیار مفید باشد. کاربرد آن بسیار آسان است: \begin{lscommand} \ci{usepackage}\verb|{|\emph{syntonly}\verb|}|\\ \ci{syntaxonly} \end{lscommand} وقتی که می‌خواهید خروجی تولید کنید تنها خط دوم را غیر فعال کنید (با افزودن یک علامت درصد). % % Local Variables: % TeX-master: "lshort2e" % mode: latex % mode: flyspell % End: