blob: ed8d67969f80386f38cc0291f3f45becae1f4853 (
plain) (
blame)
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
|
.so eqn.ms
.TL "معرفی یک بستهی نیتراف برای متن فارسی
در مستند حاضر یک بستهی نیتراف\*[fs Neatroff] معرفی میشود
که برای تولید مستندهای فارسی طراحی شده است.
یک بستهی نیتراف یا تیراف، مجموعهای از ماکروهای تیراف است که
مستندی را با الگوی مشخصی تولید میکند. اگر چه در نوشتن یک
مستند به کمک این بسته، معمولا نیازی به استفاده از درخواستهای
تیراف به صورت مستقیم نیست، آگاهی از درخواستهای تیراف و شیوهی
فراخوانی آنها به استفادهی بهتر از این بسته کمک میکند.
این بسته که با فرستادن پارامتر \*[en -mfa] به نیتراف فعال
میشود، در فایل \*[en neatroff_make/tmac/tmac.fa] پیادهسازی
شده است. در ادامهی این مستند، مثالهایی از شیوهی استفاده
از این بسته نمایش داده میشود.
.SH "کلمهها و پاراگرافها
هر پاراگراف، دنبالهای از خطوط پشت سر هم است که از تعدادی
کلمه تشکیل میشوند. در این بسته، در متن کلمههای لاتین
مثل \*[en Neatroff] یا اعداد مثل \*[num 789] نیز میتوانند
ظاهر شوند.
هر پاراگراف در این بسته میتواند با یکی از ماکروهای زیر شروع شود.
.PP
ماکروی \*[en PP] یک پاراگراف معمولی را شروع میکند که خط اول آن
کمی به سمت چپ دندانهدار شده است. این ماکرو برای سایر خطوط مانند
ماکروی \*[en LP] عمل میکند.
.LP
ماکروی \*[en LP] یک پاراگراف بدون دندانه را شروع میکند.
بجز خط اول، این ماکرو مثل ماکروی \*[en PP] عمل میکند.
.IP "ج("
ماکروی \*[en IP] یک پاراگراف را آغاز میکند که بدنهی آن
کمی به سمت چپ انتقال داده میشود. فرق اصلی این ماکرو با
ماکروی \*[en LP] این است یک کلمه میتواند قبل از پاراگراف
ظاهر شود )پارامتر اول( و همهی خطوط پاراگراف به سمت چپ
انتقال داده میشوند.
.SH "رابطههای ریاضی
در این بسته، پیشپردازشگر \*[en eqn] به شکلی تنظیم شده است
که رابطههای ترکیب شده با متن پاراگراف و رابطههای خارج از آن را
نمایش دهد. برای آشنایی بیشتر با \*[en eqn] به منابعی که
به این پیشپردازشگر میپردازند مراجعه نمایید.
برای مثال، رابطهی $δ = a sup 3 + b over c$ و
رابطهی زیر:
.EQ
(x + y) sup n = sum from i=0 to n left ( pile {n above i} right ) x sup i y sup n-i
.EN
.SH "جدولها
برای کشیدن جدول در این بسته چند روش وجود دارند. یکی از این
روشها استفاده از پیشپردازشگر \*[en tbl] است. روش دیگر،
استفاده از بستهی \*[en tbl] نیتراف است که نمونهای از
استفاده از آن در ادامه نمایش داده میشود.
.KS \" To keep the table on the same page
.tblbeg 4i 0
. tblbox 1 1 1
. tblmac fa.tblhd fa.tblhd
. tblrow "توصیف" "عنوان"
. tblmac fa.tblfb fa.tblfb
. tblrow
. tblcol 1
برای جزئیات بیشتر، به یکی از منابعی که استفاده از این
پیشپردازشگر را شرح میدهند، مراجعه کنید.
. tblcol 2
جدول با پیشپردازشگر \*[en tbl]
. tblrow
. tblcol 1
برای اطلاعات بیشتر در مورد ماکروهای این بسته، به پیادهسازی
آن )\*[en neatroff_make/tmac/tmac.tbl]( مراجعه نمایید.
. tblcol 2
جدول با استفاده از بستهی \*[en tbl]
. tblrow
. tblcol 1
با استفاده از \*[en tab] و درخواست \*[en ta] میتوان
دادههایی را به صورت منظم نمایش داد. این
راه حل خوبی برای نمایش جدولی دادههای ساده است.
. tblcol 2
استفاده از \*[en tab] در تیراف
.tblend
.KE
.SH "شکلها و بخشهای شناور متن
برای نمایش یک فایل گرافیکی با فرمت \*[en EPS] میتوان از
یک ماکرو با همین نام استفاده نمود. قسمتهای شناور متن را
میتوان بین دو ماکروی \*[en KF] و \*[en KE] قرار داد.
برای قرار دادن قسمت شناور در شروع یکی از صفحات مستند،
میتوان آن را بین دو ماکروی \*[en KT] و \*[en KE] قرار داد.
نمونهای از استفاده از این ماکروها در ادامه دیده میشود.
.KF
.EPS box.eps C
.KE
.SH "سایر جزئیات
نیازهایی مثل تولید فهرست مطالب، ارجاع علمی )مثل \*[ct kernighan81,eqn75](
و اشاره به بخشها و شکلها را نیز میتوان در کنار این بسته انجام
داد. برای این نیازها گاهی لازم است ماکروهای جدیدی نوشته
شوند که این کار مستلزم آشنایی با تیراف است.
.PP
در برخی شرایط لازم است برخی از ماکروهای این بسته کمی
تغییر نمایند؛ میتوان این کار را با تعریف مجدد این ماکروها
و فراخوانی ماکروهای قدیمی در داخل آنها انجام داد. اما
گاهی لازم است بستهی جدیدی برای نوع مشخصی از مستند نوشته
شود. در این صورت، پیادهسازی این بسته میتواند الگوی خوبی
برای نوشتن آن باشد.
.rn IP.en IP
.nr VS -5
.[
$LIST$
.]
.nr VS +5
.bp
.SH "فهرست ماکروها و رجیسترها
فهرست ماکروهای این بسته در جدول زیر نمایش داده میشوند.
.KS
.nr VS -8
.tblbeg 5i 0
. tblbox 1 1 1
. tblmac fa.tblhd fa.tblhd
. tblrow "توصیف" "نام ماکرو"
. tblmac fa.tblfb fa.tblhd
. tblbox 1 0 1
. tblrow "عنوان مستند" "\*[en TL]"
. tblrow "عنوان بخش" "\*[en SH]"
. tblrow "پاراگراف ساده" "\*[en LP]"
. tblrow "پاراگرافی که خط اول آن کمی به سمت چپ حرکت داده شده است" "\*[en PP]"
. tblrow "پاراگراف که همهی خطوط آن به سمت چپ حرکت داده شدهاند" "\*[en IP]"
. tblrow "شروع و پایان پاراگرافهای به چپ حرکت داده شده" "\*[en RS/RE]"
. tblrow "شروع و پایان پانوشت" "\*[en FS/FE]"
. tblrow "شروع و پایان متنی که باید در یک صفحه قرار گیرد" "\*[en KS/KE]"
. tblrow "شروع و پایان متن شناور" "\*[en KF/KE]"
. tblrow "شروع و پایان متن شناوری که باید در آغاز صفحه قرار گیرد" "\*[en KT/KE]"
. tblrow "وارد کردن یک فایل گرافیکی \*[en EPS]" "\*[en EPS]"
. tblrow "شروع و پایان بلوک پیشپردازشگر \*[en eqn]" "\*[en EQ/EN]"
. tblrow "شروع و پایان بلوک پیشپردازشگر \*[en tbl]" "\*[en TS/TE]"
. tblrow "شروع و پایان بلوک پیشپردازشگر \*[en pic]" "\*[en PS/PE]"
.tblend
.nr VS +8
.KE
.LP
فهرست رجیسترهای عددی این بسته در جدول زیر نمایش داده میشوند.
.KS
.nr VS -8
.tblbeg 5i 0
. tblbox 1 1 1
. tblmac fa.tblhd fa.tblhd
. tblrow "توصیف" "نام رجیستر"
. tblmac fa.tblfb fa.tblhd
. tblbox 1 0 1
. tblrow "اندازهی قلم" "\*[en PS]"
. tblrow "فاصلهی بین خطوط" "\*[en VS]"
. tblrow "طول خط" "\*[en LL]"
. tblrow "شروع خط" "\*[en PO]"
.tblend
.nr VS +8
.KE
.LP
برای تغییر مقدار هر یک از این رجیسترها، میتوان از درخواست \*[en nr]
تیراف استفاده نمود. برای نمونه، خط »\*[en ".nr PS +2"]« اندازهی
قلم را به مقدار دو نقطه افزایش میدهد.
.keepeof \" Flush all queued floating objects
|