1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 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:
|