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
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Contents: Typesetting Part of LaTeX2e Introduction
% $Id: typeset.tex 169 2008-09-24 07:32:13Z oetiker $
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{حروفچینی متن}
\begin{intro}
بعد از مطالعهٔ فصل پیش، چیزهای ابتدایی را میدانید که لاتک با آنها سروکار دارد. در این فصل مطالب دیگری را خواهید آموخت که برای تولید نوشتههای واقعی مفید هستند.
\end{intro}
\section{ساختار متن و زبان}
انتقال اطلاعات و ایدهها به خواننده مهمترین نکتهٔ نوشتن یک متن است. اگر مطالب به درستی ساختاربندی شده باشند خواننده به راحتی مطالب را میفهمد و این مطلب موقعی اتفاق میافتد که ساختار حروفچینی متن انعکاس دهنده ساختار محتوای متن باشد.
تفاوت لاتک با دیگر سیستمهای حروفچینی در این است که تنها باید ساختار منطقی و زیبایی نوشتار را به لاتک معرفی کرد. آنگاه لاتک با استفاده از قوانینی که در متن و در فایلهای الصاقی ارائه شده است حروفچینی نوشتار را انجام میدهد.
مهمرین واحد در لاتک
(و در حروفچینی)
پاراگراف
\index{بیی@پاراگراف}\romanindex{paragraph} است. ما به آن \emp{واحد متن}
میگوییم زیرا پاراگراف قسمت بههم چسبیدهای است که یک ایده را بازگو میکند. در این بخش یاد میگیریم که چگونه خط را با فرمان \texttt{\bs\bs}،
و پاراگراف را با خالی گذاشتن یک خط بشکنیم. بنابراین اگر مطلب جدیدی قرار است که شروع شود باید پاراگراف جدید نیز شروع شود.
اگر در مورد شکستن پاراگراف مطمئن نیستید، نوشتار را به عنوان حامل ایدهها درنظر بگیرید. اگر در نقطهای شکست پاراگراف دارید
ولی ایدۀ قبلی هنوز ادامه دارد، شکست را باید از بین ببرید. اگر ایدۀ کاملاً جدیدی در یک خط وارد شده است، آنگاه باید یک شکست پاراگراف داشته باشید.
بعضی از افراد به کلی اهمیت دانستن محل دقیق شکستن پاراگرافها را نمیدانند. خیلی از افراد حتی مفهوم شکستن یک پاراگراف را نمیدانند، یا، به خصوص در لاتک،
پاراگرافهای جدید ایجاد میکنند بدون این که بدانند چنین کاری کردهاند. این اشتباه به خصوص اگر در متن فرمول وجود داشته باشد، بیشتر اتفاق میافتد.
به مثالهای زیر توجه کنید و سعی کنید دریابید که چرا گاهی اوقات خط خالی
(شکست پاراگراف)
قبل یا بعد از یک فرمول قرار میگیرد و گاهی اوقات قرار نمیگیرد.
(اگر هنوز تمامی فرمانهای این مثالها را متوجه نمیشوید، این فصل و فصل بعد را مطالعه کنید و دوباره این بخش را مرور کنید.)
\begin{code}
\begin{verbatim}
% Example 1
\ldots when Einstein introduced his formula
\begin{equation}
e = m \cdot c^2 \; ,
\end{equation}
which is at the same time the most widely known
and the least well understood physical formula.
% Example 2
\ldots from which follows Kirchhoff's current law:
\begin{equation}
\sum_{k=1}^{n} I_k = 0 \; .
\end{equation}
Kirchhoff's voltage law can be derived \ldots
% Example 3
\ldots which has several advantages.
\begin{equation}
I_D = I_F - I_R
\end{equation}
is the core of a very different transistor model. \ldots
\end{verbatim}
\end{code}
جملات، واحدهای کوچکتر متن هستند. در جملات انگلیسی فاصلهٔ بعد از یک نقطه پایان خط بیشتر از فاصلهٔ بعد از نقطهای است که یک کلمه مخفف را تمام میکند.
لاتک سعی میکند بفهمد کدام یک از این دو مورد نظر است. اگر لاتک اشتباه کرد، باید به او بگویید کدام یک مورد نظر است.
روش اینکار را در ادامهٔ این فصل خواهید دید.
ساختار متن حتی به داخل جملات نیز رسوخ میکند. بسیاری از زبانها دارای آیین نگارش پیچیدهای هستند، اما در بسیاری از زبانها
(مثلاً آلمانی و انگلیسی\footnote{مترجم: و صد البته فارسی})،
ویرگول را میتوان با به خاطر سپردن یک اصل ساده در محل درست قرار دهید: در محلهایی که متن دارای توقف کوچک است.
اگر مطمئن نیستید در کجا ویرگول قرار دهید، جمله را با صدای بلند بخوانید و در هر نقطهای که یک ویرگول دارید یک نفس کوتاه بگیرید. اگر از این کار احساس مطبوعی نداشتید آن ویرگول راحذف کنید؛ اگر در نقطهای احساس نیاز به یک نفس تازه
(یا یک توقف کوتاه)
داشتید، در آن نقطه یک ویرگول وارد کنید.
دست آخر این که پاراگرافها را باید بهطور منطقی در فصلها، بخشها، زیربخشها، و غیره قرار دهید. با این وجود، تأثیر حروفچینی به صورت
\begin{code}
\verb|\section{The| \texttt{Structure of Text and Language}\verb|}|
\end{code}
آنقدر واضح است که تقریباً مشخص میکند این ساختاربندی چگونه انجام میشود.
\section{شکستن خط و صفحه}
\subsection{پاراگرافهای همشکل}
کتابها معمولاً به این صورت حروفچینی میشوند که تمام خطها دارای طول یکسان هستند. لاتک خطها را به صورت مناسب میشکند \index{شکستن خط}
و فاصلهٔ مناسب بین کلمات را رعایت میکند تا محتوای پاراگرافها را بهینه کند. اگر لازم باشد حتی کلمات را در انتهای خطها میشکند.
اینکه پاراگرافها چگونه حروفچینی میشوند بستگی به طبقهٔ نوشتار دارد. به طور نرمال اولین خط یک پاراگراف دارای تورفتگی است،
و فاصلهٔ ویژهای بین پاراگرافها وجود ندارد. برای اطلاعات بیشتر به بخش
\ref{parsp}
%\LR{\hyperref[parsp]{2.3.6}}
مراجعه کنید.
در حالات ویژه ممکن است لازم باشد که لاتک را مجبور به شکستن یک خط کنیم. فرمان
\begin{lscommand}
\ci{\bs} \rl{یا} \ci{newline}
\end{lscommand}
\noindent یک خط جدید بدون شکستن پاراگراف شروع میکند. فرمان
\begin{lscommand}
\ci{\bs*}
\end{lscommand}
\noindent بعلاوه از ایجاد یک شکست صفحه بعد از شکست خط جلوگیری میکند. فرمان
\begin{lscommand}
\ci{newpage}
\end{lscommand}
\noindent یک صفحهٔ جدید را آغاز میکند. فرمانهای
\begin{lscommand}
\ci{linebreak}\verb|[|\emph{n}\verb|]|,
\ci{nolinebreak}\verb|[|\emph{n}\verb|]|,
\ci{pagebreak}\verb|[|\emph{n}\verb|]|,
\ci{nopagebreak}\verb|[|\emph{n}\verb|]|
\end{lscommand}
\noindent
جاهایی را پیشنهاد میکنند که یک شکست باید یا نباید انجام شود. این فرمانها به نویسنده امکان تغییر پارامتر \emph{n} را میدهند،
که میتواند عددی بین صفر تا چهار باشد. با انتخاب \emph{n} کمتر از چهار به لاتک اجازه میدهید فرمان شما را در صورت خیلی بد بودن
نتیجه اثر ندهد. این فرمانهای \lr{``break''} را با فرمانهای \lr{``new''} اشتباه نگیرید. حتی موقعی که از فرمان \lr{``break''}
استفاده میکنید، لاتک سعی میکند طول خط و طول صفحه را گسترش دهد که این مطلب در بخش بعد توضیح داده شده است. این کار ممکن است فاصلههای
نامطلوب در نوشتار شما ایجاد کند. اگر واقعاً میخواهید یک خط جدید یا صفحهٔ جدید را شروع کنید آنگاه از فرمان مربوط به این کارها
استفاده کنید. نام این فرمانها را حدس بزنید!
لاتک همواره سعی میکند بهترین شکست خطهای ممکن را ایجاد کند. اگر لاتک نتواند خطها را طبق استانداردهای پیشرفته بشکند، این اجازه را به
خط میدهد که از سمت راست به بیرون پاراگراف کشیده شود. در این حالت لاتک هشدار \lr{``\wi{\lr{overfull hbox}}''} را در زمان پردازش میدهد. این اتفاق وقتی رخ میدهد که لاتک مکان مناسبی برای شکستن کلمات در انتهای خط پیدا نکند.%
\footnote{با وجود این که لاتک هشداری در مورد وقوع \lr{overfull hbox} میدهد، معمولاً آسان نیست که خط مورد نظر را پیدا کنیم. اگر از گزینه \texttt{draft} در \ci{documentclass}
استفاده کنید، در حاشیهٔ سمت راست این خطها یک نشان پهن سیاه ایجاد میشود.}
میتوانید استانداردهای لاتک را با فرمان \ci{sloppy} کمی پایین بیاورید. این فرمان باعث ایجاد فاصلههای بین کلمهای طولانی میشود
حتی اگر خروجی بهینه نباشد. در این حالت لاتک هشدار \lr{``\wi{\lr{underfull hbox}}''} را به کاربر میدهد. در اغلب اوقات نتیجه این کار خیلی جالب نیست. فرمان \ci{fussy} استانداردهای لاتک را به حالت پیشفرض برمیگرداند.
\subsection{شکستن کلمات} \label{hyph}
لاتک کلمات را در صورت لزوم میشکند. اگر الگوریتم شکستن کلمات نتواند مکان دقیقی برای شکستن کلمه پیدا کند، میتوانید لاتک را در این راه یاری کنید.
فرمان
\begin{lscommand}
\ci{hyphenation}\verb|{|\emph{word list}\verb|}|
\end{lscommand}
\noindent
باعث میشود کلماتی که در لیست آمده است تنها در نقاط با علامت \lr{``-''} شکسته شود. آرگومان فرمان تنها باید شامل کلماتی باشد که از حروف علامتهای عادی تشکیل شده باشد. راهنمایی شکستن کلمات برای یک زبان ویژه در حافظه باقی میماند تا آن زبان فعال شود. این بدان معنی است که اگر فرمان شکستن را در سرآغاز نوشتار وارد کنید تنها زبان انگلیسی را مورد نظر قرار میدهد. اگر فرمان شکستن را بعد از \verb|\begin{document}| قرار دهید و از بستهای مانند \pai{babel} استفاده کنید، آنگاه راهنماییهای شکستن کلمات برای زبانی که توسط \pai{babel} انتخاب شده است فعال میشود.
مثال زیر به \lr{``hyphenation''} اجازه میدهد تا همانند \lr{``Hyphenation''} شکسته شود، و مانع از شکسته شدن \lr{``FORTRAN''}، \lr{``Fortran''} و \lr{``fortran''} میشود. هیچ حرف یا نماد ویژهای را نمیتوان در آرگومان فرمان شکستن قرار داد.
مثال:
\begin{code}
\verb|\hyphenation{FORTRAN Hy-phen-a-tion}|
\end{code}
فرمان \ci{-} یک پیشنهاد برای شکستن کلمه را ایجاد میکند. این نقطه تنها نقطهای میشود که کلمه مجاز است در آنجا شکسته شود. این فرمان به ویژه برای کلماتی که دارای حرف ویژهای هستند مفید است
(مانند حروف لهجهها)،
زیرا لاتک این کلمات را نمیتواند بهطور خودکار بشکند.
\begin{example}
I think this is: su\-per\-cal\-%
i\-frag\-i\-lis\-tic\-ex\-pi\-%
al\-i\-do\-cious
\end{example}
چند کلمه را میتوان در یک خط با فرمان زیر نگهداشت:
\begin{lscommand}
\ci{mbox}\verb|{|\emph{text}\verb|}|
\end{lscommand}
\noindent این فرمان باعث میشود آرگومانهایش تحت هر شرایطی در کنار هم قرار بگیرند.
\begin{example}
My phone number will change soon.
It will be \mbox{0116 291 2319}.
The parameter
\mbox{\emph{filename}} should
contain the name of the file.
\end{example}
\ci{fbox} مشابه \ci{mbox} است، با این تفاوت که کادری دور متن قرار میگیرد.
\section{رشتههای تعریف شده}
در بعضی از مثالهای صفحهٔ قبل، یک فرمان خیلی ساده برای حروفچینی رشتههای ویژه را دیدید:
\vspace{2ex}
\noindent
{\let\today=\oldtoday
\begin{center}
\begin{tabular}{rlll@{}}
توضیح&مثال&فرمان\\
\hline
زمان جاری
& \lr{\originaltoday} & \ci{today}\\
حروفچین مورد علاقهٔ شما & \lr{\TeX} &\ci{TeX}\\
عنوان بازی & \lr{\LaTeX} &\ci{LaTeX}\\
شکل کنونی& \lr{\LaTeXe} &\ci{LaTeXe} \\
\end{tabular}
\end{center}
}
\section{حروف و نمادهای ویژه}
\subsection{علامت نقل قول}
برای \wi{نقل قول} {\it نباید}
مانند ماشین تایپ از \verb|"| استفاده کنید %\romanindex{""@\texttt{""}}
. برای انتشار از علامت دیگری برای اینکار استفاده میشود. در لاتک، از دو علامت
\lr{\textasciigrave}\Footnote{grave accent} برای شروع نقل قول و از دو علامت
\lr{\textquotesingle}\Footnote{vertical quote} برای پایان نقل قول استفاده میشود. برای نقل قول منفرد از یکی از این علامتها استفاده میکنیم.
\begin{example}
``Please press the `x' key.''
\end{example}
میدانم که تعبیر مناسبی نیست که از \lr{\textasciigrave} برای شروع نقل قول و از \lr{\textquotesingle} برای اتمام آن استفاده کرد.
\subsection{فاصلهٔ کلمات و شکستن}
لاتک چهار نوع فاصلهٔ بین کلمات را میشناسد. \romanindex{dash} سه تا از این فاصلهها را میتوان با نوشتن چند دَش پشت سر هم تولید کرد. علامت چهارم دش نیست و در حقیقت همان علامت منهای ریاضی است: \romanindex{-}
\romanindex{--} \romanindex{---} \lr{\index{-@$-$}} \index{\lr{mathematical}!\lr{minus}}
\begin{example}
daughter-in-law, X-rated\\
pages 13--67\\
yes---or no? \\
$0$, $1$ and $-1$
\end{example}
نام این دشها این است:
\lr{`-' \wi{\lr{hyphen}}}، \lr{`--' \wi{\lr{en-dash}}}، \lr{`---' \wi{\lr{em-dash}}} و
\lr{`$-$' \wi{\lr{minus sign}}}.
\subsection{\texorpdfstring{تیلدا ($\sim$)}{تیلدا}}
\romanindex{www}\romanindex{URL}\romanindex{tilde}
کاراکتری که معمولاً در صفحات وب ظاهر میشود علامت تیلدا است. برای تولید این کاراکتر لاتک میتوانید از \verb|\~| کمک بگیرد ولی حاصل آن \~{}
است که دقیقاً آن چیزی نیست که میخواهید. به جای آن از روش زیر استفاده کنید:
\begin{example}
http://www.rich.edu/\~{}bush \\
http://www.clever.edu/$\sim$demo
\end{example}
\subsection{\texorpdfstring{علامت درجه ($\circ$)}{علامت درجه}}
مثال زیر نشان میدهد چگونه میتوان \wi{علامت درجه}
\romanindex{degree symbol} را در لاتک نوشت:
\begin{example}
It's $-30\,^{\circ}\mathrm{C}$.
I will soon start to
super-conduct.
\end{example}
بستهٔ \pai{textcomp} علامت درجه را با فرمان \ci{textcelsius} نیز قابل دسترسی میکند.
\subsection{\texorpdfstring{نماد واحد پول اروپا (\lr{\texteuro})}{نماد واحد پول اروپا}}
این روزها نماد واحد پول اروپا بسیار بهکار میرود. بیشتر قلمهای کنونی دارای کاراکتر ویژه برای این نماد هستند. بعد از فراخوانی بستهٔ
\pai{textcomp}
در سرآغاز نوشتار
\begin{lscommand}
\ci{usepackage}\verb|{textcomp}|
\end{lscommand}
از فرمان
\begin{lscommand}
\ci{texteuro}
\end{lscommand}
برای نمایش این کاراکتر میتوانید استفاده کنید.
اگر قلم شما این نماد را ندارد یا از شکل آن خوشتان نمیآید، کارهای دیگری میتوانید انجام دهید.
ابتدا این که بستهٔ
\pai{eurosym}
نماد رسمی واحد پول اروپا را فراهم میکند:
\begin{lscommand}
\ci{usepackage}\verb|[|\lr{official}\verb|]{eurosym}|
\end{lscommand}
اگر نمادی را میپسندید که با قلم شما همخوانی داشته باشد، از گزینهٔ
\lr{\texttt{gen}}
به جـــــــای
\lr{\texttt{official}}
استفاده کنید.
%If the Adobe Eurofonts are installed on your system (they are available for
%free from \url{ftp://ftp.adobe.com/pub/adobe/type/win/all}) you can use
%either the package \pai{europs} and the command \ci{EUR} (for a Euro symbol
%that matches the current font).
% does not work
% or the package
% \pai{eurosans} and the command \ci{euro} (for the ``official Euro'').
%The \pai{marvosym} package also provides many different symbols, including a
%Euro, under the name \ci{EURtm}. Its disadvantage is that it does not provide
%slanted and bold variants of the Euro symbol.
\begin{table}[!htbp]
\caption{کیسهای پر از نماد اروپا} \label{eurosymb}
\setLR
\begin{lined}{10cm}
\begin{tabular}{llccc}
LM+textcomp &\verb+\texteuro+ & \huge\texteuro &\huge\sffamily\texteuro
&\huge\ttfamily\texteuro\\
eurosym &\verb+\euro+ & \huge\officialeuro &\huge\sffamily\officialeuro
&\huge\ttfamily\officialeuro\\
$[$gen$]$eurosym &\verb+\euro+ & \huge\geneuro &\huge\sffamily\geneuro
&\huge\ttfamily\geneuro\\
%europs &\verb+\EUR + & \huge\EURtm &\huge\EURhv
% &\huge\EURcr\\
%eurosans &\verb+\euro+ & \huge\EUROSANS &\huge\sffamily\EUROSANS
% & \huge\ttfamily\EUROSANS \\
%marvosym &\verb+\EURtm+ & \huge\mvchr101 &\huge\mvchr101
% &\huge\mvchr101
\end{tabular}
\medskip
\end{lined}
\setRL
\end{table}
\subsection{\texorpdfstring{سه نقطه ($\ldots$)}{سهنقطه}}
بر روی ماشین تایپ، یک ویرگول یا یک فاصله دارای همان طول یک حرف هستند. در یک کتاب این کاراکترها تنها فضای کوچکی را اشغال میکنند. بنابراین سه نقطه را نمیتوان تنها با نوشتن سه نقطه نشان داد. برای این منظور فرمان ویژهای وجود دارد:
\begin{lscommand}
\ci{ldots}
\end{lscommand}
\lr{\index{...@\ldots}}
\begin{example}
Not like this ... but like this:\\
New York, Tokyo, Budapest, \ldots
\end{example}
\subsection{چسبیدگی حروف}\index{\lr{ligature}}\index{جیی@چسبیدگی}
بعضی از کلمات تنها با قراردادن متوالی چند حرف بدست نمیآیند بلکه باید نمادهای ویژهای برای نمایش آنها به کار برد.
\begin{code}
{\large \lr{ff fi fl ffi}\ldots}\quad
\rl{به جای}\quad {\large \lr{f\mbox{}f f\mbox{}i f\mbox{}l f\mbox{}f\mbox{}i} \ldots}
\end{code}
چسبیدگی حروف را میتوان با قراردادن یک
\LRE{\ci{mbox}\verb|{}|}
بین دو حرف مورد نظر از بین برد. این کار به عنوان مثال برای کلمههایی لازم است که از ترکیب دو کلمه بدست میآیند.
\begin{example}
\Large Not shelfful\\
but shelf\mbox{}ful
\end{example}
\subsection{لهجهها و حروف ویژه}
لاتک استفاده از لهجهها و حروف ویژه را به شکلهای مختلف پشتیبانی میکند. جدول
\ref{accents}
%\LR{\hyperref[accents]{2.3}}
تمام لهجههای مختلف را نشان میدهد که بر حرف
\lr{o}
قرار میگیرند. این کار برای حروف دیگر هم قابل انجام است.
برای قراردادن یک لهجه بر روی حرفی مانند
\lr{i} یا \lr{j}
ابتدا باید نقطهٔ روی آن را حذف کرد. برای انجام این کار از
\verb|\i| و \verb|\j|
استفاده کنید.
\begin{example}
H\^otel, na\"\i ve, \'el\`eve,\\
sm\o rrebr\o d, !`Se\~norita!,\\
Sch\"onbrunner Schlo\ss{}
Stra\ss e
\end{example}
\begin{table}[!hbp]
\caption{لهجهها و حروف ویژه} \label{accents}
\begin{latin}
\begin{lined}{10cm}
\begin{tabular}{*4{cl}}
\A{\`o} & \A{\'o} & \A{\^o} & \A{\~o} \\
\A{\=o} & \A{\.o} & \A{\"o} & \BB{\c}{c}\\[6pt]
\BB{\u}{o} & \BB{\v}{o} & \BB{\H}{o} & \BB{\c}{o} \\
\BB{\d}{o} & \BB{\b}{o} & \BB{\t}{oo} \\[6pt]
\A{\oe} & \A{\OE} & \A{\ae} & \A{\AE} \\
\A{\aa} & \A{\AA} \\[6pt]
\A{\o} & \A{\O} & \A{\l} & \A{\L} \\
\A{\i} & \A{\j} & !` & \verb|!`| & ?` & \verb|?`|
\end{tabular}
\index{\lr{dotless \i{} and \j}}\index{\lr{Scandinavian letters}}
\index{ae@\lr{\ae}}\index{\lr{umlaut}}\index{\lr{grave}}\index{\lr{acute}}
\index{oe@\lr{\oe}}\index{aa@\lr{\aa}}
\bigskip
\end{lined}
\end{latin}
\end{table}
\section{فاصله بین کلمات}
برای این که در خروجی، حاشیه سمت راست به صورت منظم ظاهر شود، لاتک فاصله مناسب بین کلمات ایجاد میکند تا خط را پر کنند.
همچنین لاتک فاصلهٔ بیشتری را در انتهای یک خط قرار میدهد، زیرا این کار باعث خوانایی بهتر متن میشود. لاتک فرض میکند انتهای
یک جمله نقطه، علامت سؤال یا تعجب است. اگر یک نقطه بعد از یک حرف بزرگ ظاهر شود، لاتک این نقطه را پایان یک خط نمیداند،
زیرا معمولاً بعد از اسامی ویژه که با حروف بزرگ نوشته میشوند یک نقطه قرار میگیرد.
هر فرض دیگری به غیر از اینها را نویسنده باید به لاتک اطلاع دهد. یک بکاسلش در جلوی یک فاصله، فاصلهای را تولید میکند که نمیتواند گسترش یابد. حرف تیلدا فاصلهای را تولید میکند که نمیتواند گسترش یابد و بهعلاوه از شکستن خط جلوگیری میکند. فرمان
\verb|@|
در جلوی یک نقطه بیان میکند که این نقطه انتهای یک خط است، حتی اگر این نقطه بعد از یک حرف بزرگ ظاهر شده باشد.
\cih{"@} %\romanindex{~@ \verb.~.} \romanindex{tilde@tilde ( \verb.~.)}
\romanindex{., space after}
\begin{example}
Mr.~Smith was happy to see her\\
cf.~Fig.~5\\
I like BASIC\@. What about you?
\end{example}
فاصلهٔ اضافی بعد از نقطه را میتوان با فرمان زیر غیر فعال کرد
\begin{lscommand}
\ci{frenchspacing}
\end{lscommand}
\noindent
که به لاتک میگوید بعد از نقطه فاصلهای بیشتر از فاصلهٔ بین کلمات قرار ندهد. این کار در اکثر زبانها معمول است، به جز در هنگام نوشتن کتابنامه. اگر از فرمان
\ci{frenchspacin}
استفاده کنید، فراخوانی فرمان
\verb|\@|
لازم نیست.
\section{عنوان، فصل، و بخش}
برای این که خواننده را به هنگام خواندن کار شما راهنمایی کنید، باید نوشتار خود را به فصلها، بخشها، و زیربخشها تقسیم کنید. لاتک این کار را با اختصاص فرمانهای ویژهای امکانپذیر میکند که عنوان هر بخش را به عنوان آرگومان میپذیرند. این وظیفهٔ شماست که ترتیب آنها را درست بیان کنید.
فرمانهای زیر در طبقهٔ
\lr{\texttt{article}}
موجودند:
\nopagebreak
\begin{lscommand}
\ci{section}\verb|{...}|\\
\ci{subsection}\verb|{...}|\\
\ci{subsubsection}\verb|{...}|\\
\ci{paragraph}\verb|{...}|\\
\ci{subparagraph}\verb|{...}|
\end{lscommand}
اگر میخواهید نوشتارتان را به قسمتهایی تقسیم کنید که شمارهگذاری بخشها و فصلها را تغییر ندهد از فرمان
\begin{lscommand}
\ci{part}\verb|{...}|
\end{lscommand}
\noindent استفاده کنید.
وقتی که از طبقههای
\lr{\texttt{report}}
و
\lr{\texttt{book}}
استفاده میکنید، فرمان
\begin{lscommand}
\ci{chapter}\verb|{...}|
\end{lscommand}
\noindent هم قابل استفاده است که هر فصل در برگیرندهٔ چندین بخش میتواند باشد.
از آنجا که طبقهٔ
\lr{\texttt{article}}
فرمان
\lr{\texttt{chapter}}
را نمیشناسد، قرار دادن یک مقاله به عنوان یک فصل از یک کتاب بسیار آسان است. فاصلهٔ بین بخشها، و شمارهگذاری آنها و همچنین اندازهٔ قلم عنوانها به طور خودکار توسط لاتک تعیین میشود.
دو فرمان از این دسته فرمانها دارای ویژگیهایی هستند که در زیر به آنها اشاره شده است:
\begin{itemize}
\item
فرمان
\ci{part}
شمارهگذاری مسلسل فصلها را تغییر نمیدهد.
\item
فرمان
\ci{appendix}
هیچ آرگومانی را نمیپذیرد. این فرمان تنها شمارهگذاری فصلها را به صورت حرفی تغییر میدهد.%
\footnote{در طبقهٔ مقاله، این فرمان شمارهگذاری بخشها را حرفی میکند.}
\end{itemize}
لاتک فهرست مطالب را با قراردادن عنوان بخشها و صفحهٔ مربوط به آنها که از آخرین پردازش بدست آمده است تولید میکند. فرمان
\begin{lscommand}
\ci{tableofcontents}
\end{lscommand}
\noindent
هر جا که ظاهر شود باعث نمایش فهرست مطالب در همان نقطه میشود. یک نوشتار جدید باید دوبار پردازش شود تا
\ci{tableofcontents}
به صورت درست درج گردد. گاهی اوقات لازم است فایل را سهبار پردازش کنید، لاتک در این مورد به شما پیغام مناسب را میدهد.
تمام فرمانهای بخشبندی که در بالا ذکر شد دارای حالت ستارهدار نیز میباشند. حالت ستارهدار این فرمانها به راحتی با افزودن یک علامت
\verb|*|
به انتهای نام فرمان درست میشود. این فرمانها باعث تولید بخش مربوطه میشوند با این تفاوت که شمارهدار نیستند و در فهرست مطالب ظاهر نمیشوند.
برای این کار، به عنوان مثال به جای فرمان
\verb|\section{Help}|
باید از فرمان
\verb|\section*{Help}|
استفاده کنید.
عنوان بخشها به طور نرمال در فهرست مطالب ظاهر میشوند. گاهی اوقات این کار امکان\-پذیر نیست زیرا عنوان بخش طولانی است و در یک خط جا نمیشود. در این صورت میتوان عنوانی را که در فهرست مطالب ظاهر میشود با یک گزینهٔ انتخابی در جلوی عنوان واقعی تعیین کرد.
\begin{code}
\verb|\chapter[Title for the table of contents]{A long|\\
\verb| and especially boring title, shown in the text}|
\end{code}
عنوان کلی نوشتار با فرمان
\begin{lscommand}
\ci{maketitle}
\end{lscommand}
\noindent
چاپ میشود. محتویات عنوان نوشتار را میتوان با فرمانهای زیر قبل از فرمان
\verb|\maketitle|
تعیین کرد:
\begin{lscommand}
\ci{title}\verb|{...}|\lr{,} \ci{author}\verb|{...}|
\lr{,} \ci{date}\verb|{...}|
\end{lscommand}
\noindent
در آرگومان فرمان
\ci{author}
میتوانید چندین نام را وارد کنید که با فرمان
\lr{\ci{and}}
از یکدیگر جدا میشوند. مثالی از فرمانهایی را که در بالا معرفی کردیم میتوانید در جدول
\ref{document}
%\LR{\hyperref[document]{2.2}}
در صفحهٔ
\pageref{document}
ببینید.
علاوه بر فرمانهای بخشبندی که در بالا اشاره شد، لاتک سه فرمان دیگر به همراه طبقهٔ
\verb|book|
ارائه میکند. این فرمانها برای تقسیم نوشتار به کار میآیند. این فرمانها سربرگ و شمارهٔ صفحه را در یک کتاب تغییر میدهند:
\begin{description}
\item[\ci{frontmatter}]
باید اولین فرمان بعد از شروع متن نوشتار باشد
(\verb|\begin{document}|).
این فرمان شمارهٔ صفحهها را به اعداد لاتین تغییر میدهد و بخشها را بدون شماره ظاهر میکند. رفتار این فرمان روی بخشبندیها همانند این است که از فرمانهای بخشبندی ستارهدار استفاده کنید (به عنوان مثال
\verb|\chapter*{Preface}|)
با این تفاوت که عنوان این بخشها همچنان در فهرست مطالب ظاهر میشوند.
\item[\ci{mainmatter}]
این فرمان دقیقاً قبل از اعلان اولین فصل به کار میرود که باعث میشود شمارهٔ صفحه به سبک عددی تغییر یابد و آن را از یـک شروع میکند.
\item[\ci{appendix}]
پیوستهای نوشتار را شروع میکند. بعد از این فرمان، فصلها با حروف شماره\-گذاری میشوند.
\item[\ci{backmatter}]
باید قبل از آخرین آیتم کتاب، مانند کتابنامه و نمایه ظاهر شود. در یک طبقهٔ استاندارد، این فرمان هیچ تاثیری ندارد.
\end{description}
\section{ارجاع}
در کتابها، گزارشها، و مقالات معمولاً ارجاعهایی مانند شکلها، جدولها و قسمتهای ویژه از متن وجود دارد که به آنها
\wi{ارجاعهای متنی}\Footnote{cross-references}
میگویند. لاتک فرمانهای زیر را برای تولید ارجاعهای متنی ارائه میکند
\begin{lscommand}
\ci{label}\verb|{|\emph{marker}\verb|}|, \ci{ref}\verb|{|\emph{marker}\verb|}|
\rl{و} \ci{pageref}\verb|{|\emph{marker}\verb|}|
\end{lscommand}
\noindent
که
\emph{marker}
یک نشانگر است که توسط کاربر انتخاب میشود. لاتک تمام فرمانهای
\verb|\ref|
را با شمارهٔ بخش، زیربخش، شکل، جدول، یا قضیهای نمایش میدهد که فرمان
\verb|\label|
در آن ظاهر شده است. فرمان
\verb|\pageref|
شمارهٔ صفحهای را نمایش میدهد که
\verb|\label|
مورد نظر قرار دارد.%
\footnote{توجه داشته باشید که این فرمانها از محتوای چیزی که به آن ارجاع میکنند اطلاعی ندارند. فرمان \ci{label}تنها آخرین شمارهٔ تولید شده را ذخیره میکند. وقتی که این شماره، شمارهٔ یک بخش باشد شمارهٔ مورد نظر از پردازش قبل را ذخیره میکند.}
\begin{example}
A reference to this subsection
\label{sec:this} looks like:
``see section~\ref{sec:this} on
page~\pageref{sec:this}.''
\end{example}
\section{پانوشت}
با فرمان
\begin{lscommand}
\ci{footnote}\verb|{|\emph{footnote text}\verb|}|
\end{lscommand}
\noindent
پانوشتی در انتهای صفحهٔ جاری نوشته میشود. پانوشتها همواره باید بعد از کلمه یا جملهای قرار داده شود\footnote{فعل شدن یکی از افعال معمول فارسی است.}
که به آن اشاره میکند. بنابراین پانوشتی که به کل یک عبارت اشاره میکند باید بعد از ویرگول یا نقطهٔ انتهای آن جمله قرار داده شود. با توجه به این که هر کسی که نوشتار را میخواند نهایتاً پانوشتها را هم مطالعه میکند (زیرا که ما موجودات کنجکاوی هستیم) پس چرا تمام مطالب را در خود متن بیان نکنیم؟%
\footnote{تو که لالایی بلدی پس چرا خوابت نمیبره(\lr{-}:}
\begin{latin}
\begin{example}
Footnotes\footnote{This is
a footnote.} are often used
by people using \LaTeX.
\end{example}
\end{latin}
\section{تاکید کلمات}
اگر با یک ماشین تایپ متنی را بنویسید، کلمات مهم به صورت
\underline{زیرخط}
تایپ میشوند.
\begin{lscommand}
\ci{underline}\verb|{|\emph{text}\verb|}|
\end{lscommand}
در کتابهای تایپ شده، کلمههای مهم را به صورت ایتالیک نمایش میدهند. لاتک فرمان
\begin{lscommand}
\ci{emph}\verb|{|\emph{text}\verb|}|
\end{lscommand}
\noindent
را برای تأکید کلمهها به کار میبرد. تأثیر فرمان به متن بستگی دارد:
\begin{example}
\emph{If you use
emphasizing inside a piece
of emphasized text, then
\LaTeX{} uses the
\emph{normal} font for
emphasizing.}
\end{example}
لطفاً به تفاوت این که لاتک چیزی را تأکید کند و یا این که از قلم دیگری استفاده کنیم توجه کنید.
\begin{example}
\textit{You can also
\emph{emphasize} text if
it is set in italics,}
\textsf{in a
\emph{sans-serif} font,}
\texttt{or in
\emph{typewriter} style.}
\end{example}
\section{محیطها} \label{env}
لاتک
\wi{محیط}های
مختلفی را برای کارهای مختلف ارائه میکند:
\begin{lscommand}
\ci{begin}\verb|{|\emph{environment}\verb|}|\quad
\emph{text}\quad
\ci{end}\verb|{|\emph{environment}\verb|}|
\end{lscommand}
\noindent
که
\emph{environment}
نام محیطی است که مورد استفاده قرار میگیرد. محیطها میتوانند تودرتو باشند، مادامی که ترتیب درست آنها اعمال شده باشد.
\begin{code}
\verb|\begin{aaa}...\begin{bbb}...\end{bbb}...\end{aaa}|
\end{code}
\noindent
در بخش بعد انواع محیطها را مورد بررسی قرار میدهیم.
\subsection{محیطهای تبصره، توضیح، و شمارهدار}
محیط
\ei{itemize}
برای تولید لیستهای ساده مفید است،
\ei{enumerate}
برای تولید لیستهای شمارهدار، و
\ei{description}
برای محیط توضیحات مفید است.
\cih{item}
\begin{example}
\flushleft
\begin{enumerate}
\item You can mix the list
environments to your taste:
\begin{itemize}
\item But it might start to
look silly.
\item[-] With a dash.
\end{itemize}
\item Therefore remember:
\begin{description}
\item[Stupid] things will not
become smart because they are
in a list.
\item[Smart] things, though,
can be presented beautifully
in a list.
\end{description}
\end{enumerate}
\end{example}
\subsection{چپ، راست، و وسط چین}
محیطهای
\ei{flushleft}
و
\ei{flushright}
پاراگرافهایی را تولید میکنند که چپچین یا راست\-چین هستند.
\romanindex{left aligned}\index{جیی@چپچین}
محیط
\ei{center}
متن را وسطچین مینویسد. اگر شکست خط را با فرمان
\ci{\bs}
اعلان نکنید، لاتک به صورت خودکار شکست خطها را تعیین میکند.
\begin{example}
\begin{flushleft}
This text is\\ left-aligned.
\LaTeX{} is not trying to make
each line the same length.
\end{flushleft}
\end{example}
\begin{example}
\begin{flushright}
This text is right-\\aligned.
\LaTeX{} is not trying to make
each line the same length.
\end{flushright}
\end{example}
\begin{example}
\begin{center}
At the centre\\of the earth
\end{center}
\end{example}
\subsection{نقل قول و شعر}
محیط
\ei{quote}
برای عبارتهای نقل قول و مثالها مفید است.
\begin{example}
A typographical rule of thumb
for the line length is:
\begin{quote}
On average, no line should
be longer than 66 characters.
\end{quote}
This is why \LaTeX{} pages have
such large borders by default
and also why multicolumn print
is used in newspapers.
\end{example}
دو محیط مشابه دیگر وجود دارد: محیط
\ei{quotation}
و
\ei{verse}.
محیط
\lr{\texttt{quotation}}
برای نقل قولهای طولانی که بیش از یک پاراگراف باشند مفید است. محیط
\lr{\texttt{verse}}
برای نگارش شعر مفید است که شکستها خیلی مهم هستند. در این محیط شکستها با فرمان
\ci{\bs}
در انتهای خط مورد نظر و یک خط خالی بعد از هر قطعه انجام میگیرد.
\begin{example}
I know only one English poem by
heart. It is about Humpty Dumpty.
\begin{flushleft}
\begin{verse}
Humpty Dumpty sat on a wall:\\
Humpty Dumpty had a great fall.\\
All the King's horses and all
the King's men\\
Couldn't put Humpty together
again.
\end{verse}
\end{flushleft}
\end{example}
\subsection{مقدمه}
در مطالب علمی معمولاً نوشتار را با یک چکیده شروع میکنند. لاتک محیط
\ei{abstract}
را برای انجام چنین کاری پیشبینی کرده است. به طور نرمال یک چکیده در مقالات به کار میرود.
\newenvironment{abstract}%
{\begin{center}\begin{small}\begin{minipage}{0.8\textwidth}}%
{\end{minipage}\end{small}\end{center}}
\begin{example}
\begin{abstract}
The abstract abstract.
\end{abstract}
\end{example}
\subsection{چاپ تحتاللفظ}
متنهایی که بین
\LRE{\verb|\begin{|\ei{verbatim}\verb|}|}
و
\verb|\end{verbatim}|
نوشته میشوند، همانند این که با ماشین تایپ نوشته شده باشند ظاهر میشوند، با تمام شکست خطها و بدون تأثیر هیچ فرمان لاتک. برای یک پاراگراف این کار را میتوان به صورت زیر انجام داد.
\begin{lscommand}
\ci{verb}\verb|+|\emph{text}\verb|+|
\end{lscommand}
\noindent \verb|+|
تنها یک مثال از یک کاراکتر حائل است. بسیاری از مثالهای این مقدمه به کمک همین محیط نوشته شدهاند.
\begin{example}
The \verb|\ldots| command \ldots
\begin{verbatim}
10 PRINT "HELLO WORLD ";
20 GOTO 10
\end{verbatim}
\end{example}
\begin{example}
\begin{verbatim*}
the starred version of
the verbatim
environment emphasizes
the spaces in the text
\end{verbatim*}
\end{example}
فرمان
\ci{verb}
را میتوان به صورت ستارهدار بهکار برد:
\begin{example}
\verb*|like this :-) |
\end{example}
محیط
\lr{\texttt{verbatim}}
و فرمان
\verb|\verb|
را نمیتوان به صورت پارامتر فرمانهای دیگر به کار برد.
\subsection{جدول}
\newcommand{\mfr}[1]{\lr{\framebox{\rule{0pt}{0.7em}\texttt{#1}}}}
محیط
\ei{tabular}
را میتوان برای طراحی جدولهای زیبا با خطهای افقی و عمودی به کار برد. لاتک عرض ستونها را به صورت خودکار تشخیص میدهد. آرگومان
\emph{table spec}
از فرمان
\begin{lscommand}
\verb|\begin{tabular}[|\emph{pos}\verb|]{|\emph{table spec}\verb|}|
\end{lscommand}
\noindent
سبک جدول را تعریف میکند. از
\mfr{l}
برای یک ستون چپچین،
\mfr{r}
برای راستچین،
\mfr{c}
برای وسطچین استفاده کنید؛ از
\mfr{p\{\emph{width}\}}
برای یک ستون شامل یک متن چیده شده با شکست خط، و
\mfr{l}
برای یک خط عمودی استفاده کنید.
اگر متن درون یک ستون گستردهتر از صفحه باشد، لاتک آن را به طور خودکار نمیشکند. با استفاده از فرمان
\mfr{p\{\emph{width}\}}
میتوانید نوع ویژهای از ستون را تعریف کنید که پیرامون یک متن مشخص شده گرد شده است.
آرگومان
\emph{pos}
مکان عمودی جدول را نسبت به خط کرسی متنی دور آن تعیین میکند. از یکی از گزینههای
\mfr{t}،\mfr{b}،\mfr{c}
برای تعیین این مقدار به بالا، پایین و وسط استفاده کنید.
در یک محیط
\lr{\texttt{tabular}}،
با درج
\texttt{\&}
به ستون بعد میرویم و
\
\ci{\bs}
یک خط جدید را شروع میکند و
\ci{hline}
یک خط افقی رسم میکند. میتوانید خط را از ستون
\lr{-j}ام
تا ستون
\lr{-i}ام
با فرمان
\lr{\ci{cline}\texttt{\{}\emph{j}\texttt{-}\emph{i}\texttt{\}}}
رسم کنید.
%\romanindex{"|@ \verb."|.}
\begin{example}
\begin{tabular}{|r|l|}
\hline
7C0 & hexadecimal \\
3700 & octal \\ \cline{2-2}
11111000000 & binary \\
\hline \hline
1984 & decimal \\
\hline
\end{tabular}
\end{example}
\begin{example}
\begin{tabular}{|p{4.7cm}|}
\hline
Welcome to Boxy's paragraph.
We sincerely hope you'll
all enjoy the show.\\
\hline
\end{tabular}
\end{example}
جداکنندهٔ ستونها را میتوان با
\mfr{@\{...\}}
ساخت. این فرمان فاصلهٔ بین ستونها را از بین میبرد و به جای آن از چیزی استفاده میکند که در آکولاد ارائه کردهاید. مورد معمول استفاده از این فرمان در چیدن بر اساس ممیز است. کاربرد دیگر آن از بین بردن فاصلهٔ بالایی یک جدول با استفاده از فرمان
\mfr{@\{\}}
است.
\begin{example}
\begin{tabular}{@{} l @{}}
\hline
no leading space\\
\hline
\end{tabular}
\end{example}
\begin{example}
\begin{tabular}{l}
\hline
leading space left and right\\
\hline
\end{tabular}
\end{example}
%
% This part by Mike Ressler
%
\romanindex{decimal alignment}
از آنجا که هیچ راه درونی برای مرتب کردن اعداد در یک جدول به صورت ممیزچین وجود ندارد
\footnote{اگر کلاف ابزار روی سیستم شما نصب است، نگاهی به بستهٔ
\pai{dcolumn} بیندازید.}
این کار را میتوان با یک حقه و داشتن دو ستون انجام داد: یکی به صورت راستچین، و دیگری به صورت عدد اعشاری چپچین. فرمان
\verb|@{.}|
در خطهای محیط
\verb|\begin{tabular}|
فاصلهٔ عادی بین ستونها را تنها با یک نقطه نشان میدهد که نماد معمولی ممیز است. فراموش نکنید که باید قسمت اعشاری عددتان را با فرمان
\verb|&|
از قسمت درست آن جدا کنید. برچسب یک ستون را میتوان با فرمان
\ci{multicolumn}
تعیین کنید.
\begin{example}
\begin{tabular}{c r @{.} l}
Pi expression &
\multicolumn{2}{c}{Value} \\
\hline
$\pi$ & 3&1416 \\
$\pi^{\pi}$ & 36&46 \\
$(\pi^{\pi})^{\pi}$ & 80662&7 \\
\end{tabular}
\end{example}
\begin{example}
\begin{tabular}{|c|c|}
\hline
\multicolumn{2}{|c|}{Ene} \\
\hline
Mene & Muh! \\
\hline
\end{tabular}
\end{example}
تمام متن یک جدول همواره در یک صفحه قرار میگیرد. اگر میخواهید جدولهای بزرگتری را طراحی کنید، باید از محیط
\pai{longtable}
استفاده کنید.
\section{اجسام شناور}
امروزه بسیاری از چیزهایی که به چاپ میرسند دارای تعداد زیادی جدول و شکل هستند. این اشیاء به حفاظت بیشتری احتیاج دارند، زیرا نمیتوانند بین صفحهها شکسته شوند. یک روش برای این کار این است که هرگاه یک جدول یا شکل آنقدر بزرگ باشد که در ادامهٔ صفحه جا نگیرد، آنگاه یک صفحهٔ جدید برای نمایش آن تولید شود. این کار باعث میشود که تعدادی از صفحات خالی باشند که بسیار بد منظره است.
راه حل این مشکل این است که شکلها و جدولهایی را که در صفحه نمیگنجند به ابتدای صفحهٔ بعد منتقل کنیم، و ادامه صفحهٔ اول را با متن پرکنیم. لاتک دو محیط برای حفاظت این گونه اجسام شناور تعبیه کرده است؛ یکی برای جدول و یکی برای شکل. برای استفاده بهینه از این دو محیط باید به طور تقریبی بدانید لاتک در درون خودش با اجسام شناور چگونه رفتار میکند. در غیر این صورت این موضوع یک معضل برای شما میشود زیرا لاتک هیچگاه این اجسام را در نقطهای که شما میخواهید قرار نمیدهد.
\romanindex{floating bodies}\index{اجسام شناور}
\bigskip
ابتدا اجازه دهید به فرمانهایی که برای اجسام شناور تعبیه شدهاند نظری بیندازیم:
هر چیزی که در میان محیط
\ei{figure} و \ei{table}
قرار میگیرد به عنوان یک شییٔ شناور منظور میشود. هر دو محیط شناور
\begin{lscommand}
\verb|\begin{figure}[|\emph{placement specifier}\verb|]| \rl{یا}
\verb|\begin{table}[|\ldots\verb|]|
\end{lscommand}
\noindent
پارامترهای اختیاری قبول میکنند که به آن مشخص کننده مکان%
\Footnote{placement specifier}
میگوییم. این پارامتر برای نشان دادن مکان مورد نظر برای جسم شناور بهکار میرود. این پارامتر به صورت یک رشته از مکانهای ممکن تعیین میشود. جدول
\ref{tab:permiss}
%\LRE{\hyperref[tab:permiss]{3.3}}
را ببینید.
%
\begin{table}[!bp]
\caption{پارامترهای قراردادن اجسام شناور}\label{tab:permiss}
\noindent \begin{minipage}{\textwidth}
\medskip
\begin{center}
\begin{tabular}{@{}cp{8cm}@{}}
\lr{Spec}&اجازهٔ قرار دادن جسم \ldots\\
\hline
\rule{0pt}{1.05em}\texttt{h} &
اینجا (\emph{here}) در همان جایی از متن که فرمان ظاهر شده است. برای اجسام کوچک مفید است.
\\[0.3ex]
\texttt{t} & در بالای
(\emph{top}) صفحه.
\\[0.3ex]
\texttt{b} & در پایین (\emph{bottom}) صفحه.
\\[0.3ex]
\texttt{p} & در یک صفحهٔ ویژه که تنها شامل اجسام شناور است.
\\[0.3ex]
\texttt{!} & بدون در نظر گرفتن بسیاری از پارامترهای داخلی\footnote{مانند ماکسیمم تعداد اشیاء شناور در یک صفحه}
\end{tabular}
\end{center}
\end{minipage}
\end{table}
%
یک جدول را میتوان به صورت زیر تولید کرد:
\begin{code}
\verb|\begin{table}[!hbp]|
\end{code}
\noindent مشخص کنندهٔ مکان \verb|[!hbp]|
به لاتک اجازه میدهد که جدول را در همان نقطه یا در پایین صفحه و یا در یک صفحه شامل تنها اشیاء شناور قرار دهد، و یا حتی در هر
کدام که ممکن است با وجود این که ممکن است حاصل کار زیبا نباشد. اگر هیچ مکانی معرفی نگردد مقدار پیشفرض آن
\verb|[tbp]|
است.
لاتک هر جسم شناور را همان جایی که کاربر فرمان داده است قرار میدهد. اگر این کار در صفحهٔ جاری امکانپذیر نباشد، لاتک آن را به
صف نوع جسم شناور انتقال میدهد.%
\footnote{این صفها به شکل اولین ورودی --- اولین خروجی ظاهر میشوند!}
هرگاه یک صفحهٔ جدید شروع میشود، لاتک ابتدا بررسی میکند که آیا جسم شناوری در صف انتظار برای الصاق موجود است. اگر این کار امکانپذیر نباشد، با هر جسم در صف مربوط به خودش به ترتیبی رفتار میشود که انگار در همین نقطه از متن طبق راهنمایی نویسنده قرار است قرار داده شود (به جز
\lr{\texttt{h}} که دیگر مورد نظر قرار نمیگیرد
). هر جسم دیگر در متن به مکان مناسب در صف مربوطه انتقال مییابد. لاتک به طور منظم ترتیب اولیهٔ هر جسم در صف را مد نظر قرار میدهد. به همین دلیل است که اگر شکلی قابل ظاهر شدن در متن نباشد به انتهای نوشتار انتقال داده میشود و بنابراین تمام شکلهای بعد از آن نیز به انتهای نوشتار انتقال مییابند. بنابراین:
\begin{quote}
اگر لاتک اجسام شناور را آن طور که شما میخواهید قرار نمیدهد اغلب به این دلیل است که تنها یکی از این اجسام را نمیتواند در هیچ نقطهای از متن قرار دهد.
\end{quote}
وقتی که تنها یک مکان مناسب برای جسم وجود داشته باشد، این موضوع ممکن است مشکل\-ساز شود. اگر جسمی در مکان پیشنهاد شده قابل نمایش نباشد،
معمولاً یک مشکل از این نوع پدید میآید. به خصوص این که هیچگاه نباید از گزینهٔ
\lr{[h]}
استفاده کنید، این کار آنقدر مشکل\-ساز است که در نسخههای جدید لاتک این گزینه به طور خودکار به
\lr{[ht]}
تبدیل میشود.
%\bigskip
\noindent حال که مشکلات محیطهای جدول و شکل را کمی توضیح دادیم، چند موضوع دیگر نیز نیاز به توضیح بیشتر دارند. با فرمان
\begin{lscommand}
\ci{caption}\verb|{|\emph{caption text}\verb|}|
\end{lscommand}
\noindent
میتوانید عنوان یک جسم شناور را تعریف کنید. یک شماره و یک عنوان شکل یا جدول به طور خودکار توسط لاتک قبل از این عنوان قرار میگیرد.
دو فرمان
\begin{lscommand}
\ci{listoffigures} \rl{و} \ci{listoftables}
\end{lscommand}
\noindent
همانند فرمان
\verb|\tableofcontents|
لیست جدولها و شکلها را چاپ میکند. این لیستها عنوان کامل شییٔ مورد نظر را نمایش میدهند، بنابراین اگر عنوان این شکلها طولانی است، باید عنوان کوچکتری را به عنوان گزینهٔ اختیاری معرفی کنید. این کار به صورت زیر امکانپذیر است.
\begin{code}
\verb|\caption[Short]{LLLLLoooooonnnnnggggg}|
\end{code}
با فرمان
\ci{label} و \ci{ref}
میتوانید ارجاعی به این اجسام شناور داشته باشید. توجه داشته باشید که فرمان
\ci{label}
باید بعد از فرمان
\ci{caption}
قرار بگیرد زیرا باید شماره مربوطه با این فرمان دوم تولید شده باشد.
مثال زیر مربعی را رسم میکند و آن را در متن قرار میدهد. میتوانید از این کار برای اختصاص یک تصویر با ابعاد مشخص در پایان کار استفاده کنید.
\begin{code}
\begin{verbatim}
Figure~\ref{white} is an example of Pop-Art.
\begin{figure}[!hbtp]
\makebox[\textwidth]{\framebox[5cm]{\rule{0pt}{5cm}}}
\caption{Five by Five in Centimetres.\label{white}}[A
\end{figure}
\end{verbatim}
\end{code}
\noindent
در مثال بالا، لاتک به سختی (!) سعی میکند تا شکل را دقیقاً در همین نقطه از متن قرار دهد.%
\footnote{فرض کنید صف مربوط به شکلها خالی باشد.}
اگر این کار امکانپذیر نباشد سعی میکند شکل را در انتهای صفحه قرار دهد. اگر هیچکدام از این کارها امکانپذیر نباشد، لاتک بررسی میکند که آیا میتواند شکل را در یک صفحهٔ خالی به همراه مثلاً یک جدول قرار دهد. اگر محتویات لازم برای پرکردن یک صفحهٔ شناور موجود نباشد، لاتک یک صفحهٔ جدید تولید میکند و یکبار دیگر همین مراحل را از سر میگیرد.
تحت شرایط ویژهای اگر لازم باشد از فرمان
\begin{lscommand}
\ci{clearpage} \rl{یا} \ci{cleardoublepage}
\end{lscommand}
\noindent
استفاده کنید. این فرمان لاتک را مجبور میکند تا تمام اشیاء باقیمانده در صف را قرار دهد و یک صفحهٔ جدید تولید کند. فرمان
\ci{cleardoublepage}
به صفحهٔ سمت راست بعدی میرود.
بعداً در این مقدمه یاد خواهید گرفت چگونه شکلهای پستاسکریپت را در متن خود قرار دهید.
\section{حفاظت از اجسام شکستنی}
متنی که توسط فرمانهای
\ci{caption} و \ci{section}
در متن ظاهر میشود ممکن است در نوشتار چندین بار تکرار شود (به عنوان مثال در فهرست مطالب یا متن نوشتار). بعضی از فرمانها هنگام استفاده در درون فرمانهایی مانند
\ci{section}
ممکن است شکسته شوند و پردازش فایل میسر نباشد. این فرمانها را
\wi{فرمانهای شکستنی}
مینامند، به عنوان مثال
\ci{footnote} و \ci{phantom}.
این فرمانهای شکستنی احتیاج به حفاظت دارند (ما چطور!). میتوانید آنها را با فرمان
\ci{protect}
در جلوی آنها مورد حفاظت قرار دهیم.
\ci{protect}
تنها بر فرمانی که بعد از آن ظاهر میشود اثر دارد، و حتی بر پارامترهای آن تاثیری ندارد. در بیشتر مواقع یک فرمان اضافی
\ci{protect}
هیچ ضرری ندارد.
\begin{code}
\verb|\section{I am considerate|\\
\verb| \protect\footnote{and protect my footnotes}}|
\end{code}
% Local Variables:
% TeX-master: "lshort2e"
% mode: latex
% mode: flyspell
% End:
|