demo: use pdfmark macros
[neatroff_make.git] / demo_fa / fa.ms
blobc51cc7e5df3389e97ba9f44aeceee089a5b59140
1 .so eqn.ms
2 .TL "معرفی یک بسته‌ی نیتراف برای متن فارسی
3 در مستند حاضر یک بسته‌ی نیتراف\*[fs Neatroff] معرفی می‌شود
4 که برای تولید مستندهای فارسی طراحی شده است.
5 یک بسته‌ی نیتراف یا تیراف، مجموعه‌ای از ماکروهای تیراف است که
6 مستندی را با الگوی مشخصی تولید می‌کند.  اگر چه در نوشتن یک
7 مستند به کمک این بسته، معمولا نیازی به استفاده از درخواست‌های
8 تیراف به صورت مستقیم نیست، آگاهی از درخواست‌های تیراف و شیوه‌ی
9 فراخوانی آنها به استفاده‌ی بهتر از این بسته کمک می‌کند.
10 این بسته که با فرستادن پارامتر \*[en -mfa] به نیتراف فعال
11 می‌شود، در فایل \*[en neatroff_make/tmac/tmac.fa] پیاده‌سازی
12 شده است.  در ادامه‌ی این مستند، مثال‌هایی از شیوه‌ی استفاده
13 از این بسته نمایش داده می‌شود.
14 .SH "کلمه‌ها و پاراگراف‌ها
15 هر پاراگراف، دنباله‌ای از خطوط پشت سر هم است که از تعدادی
16 کلمه  تشکیل می‌شوند.  در این بسته، در متن کلمه‌های لاتین
17 مثل \*[en Neatroff] یا اعداد مثل \*[num 789] نیز می‌توانند
18 ظاهر شوند.
19 هر پاراگراف در این بسته می‌تواند با یکی از ماکروهای زیر شروع شود.
20 .PP
21 ماکروی \*[en PP] یک پاراگراف معمولی را شروع می‌کند که خط اول آن
22 کمی به سمت چپ دندانه‌دار شده است.  این ماکرو برای سایر خطوط مانند
23 ماکروی \*[en LP] عمل می‌کند.
24 .LP
25 ماکروی \*[en LP] یک پاراگراف بدون دندانه را شروع می‌کند.
26 بجز خط اول، این ماکرو مثل ماکروی \*[en PP] عمل می‌کند.
27 .IP "ج("
28 ماکروی \*[en IP] یک پاراگراف را آغاز می‌کند که بدنه‌ی آن
29 کمی به سمت چپ انتقال داده می‌شود.  فرق اصلی این ماکرو با
30 ماکروی \*[en LP] این است یک کلمه می‌تواند قبل از پاراگراف
31 ظاهر شود )پارامتر اول( و همه‌ی خطوط پاراگراف به سمت چپ
32 انتقال داده می‌شوند.
33 .SH "رابطه‌های ریاضی
34 در این بسته، پیش‌پردازشگر \*[en eqn] به شکلی تنظیم شده است
35 که رابطه‌های ترکیب شده با متن پاراگراف و رابطه‌های خارج از آن را
36 نمایش دهد.  برای آشنایی بیشتر با \*[en eqn] به منابعی که
37 به این پیش‌پردازشگر می‌پردازند مراجعه نمایید.
38 برای مثال، رابطه‌ی $δ = a sup 3 + b over c$ و
39 رابطه‌ی زیر:
40 .EQ
41 (x + y) sup n = sum from i=0 to n left ( pile {n above i} right ) x sup i y sup n-i
42 .EN
43 .SH "جدول‌ها
44 برای کشیدن جدول در این بسته چند روش وجود دارند.  یکی از این
45 روش‌ها استفاده از پیش‌پردازشگر \*[en tbl] است.  روش دیگر،
46 استفاده از بسته‌ی \*[en tbl] نیتراف است که نمونه‌ای از
47 استفاده از آن در ادامه نمایش داده می‌شود.
48 .KS             \" To keep the table on the same page
49 .tblbeg 4i 0
50 .       tblbox 1 1 1
51 .       tblmac fa.tblhd fa.tblhd
52 .       tblrow "توصیف" "عنوان"
53 .       tblmac fa.tblfb fa.tblfb
54 .       tblrow
55 .       tblcol 1
56 برای جزئیات بیشتر، به یکی از منابعی که استفاده از این
57 پیش‌پردازشگر را شرح می‌دهند، مراجعه کنید.
58 .       tblcol 2
59 جدول با پیش‌پردازشگر \*[en tbl]
60 .       tblrow
61 .       tblcol 1
62 برای اطلاعات بیشتر در مورد ماکروهای این بسته، به پیاده‌سازی
63 آن )\*[en neatroff_make/tmac/tmac.tbl]( مراجعه نمایید.
64 .       tblcol 2
65 جدول با استفاده از بسته‌ی \*[en tbl]
66 .       tblrow
67 .       tblcol 1
68 با استفاده از \*[en tab] و درخواست \*[en ta] می‌توان
69 داده‌هایی را به صورت منظم نمایش داد.  این
70 راه حل خوبی برای نمایش جدولی داده‌های ساده است.
71 .       tblcol 2
72 استفاده از \*[en tab] در تیراف
73 .tblend
74 .KE
75 .SH "شکل‌ها و بخش‌های شناور متن
76 برای نمایش یک فایل گرافیکی با فرمت \*[en EPS] می‌توان از
77 یک ماکرو با همین نام استفاده نمود.  قسمت‌های شناور متن را
78 می‌توان بین دو ماکروی \*[en KF] و \*[en KE] قرار داد.
79 برای قرار دادن قسمت شناور در شروع یکی از صفحات مستند،
80 می‌توان آن را بین دو ماکروی \*[en KT] و \*[en KE] قرار داد.
81 نمونه‌ای از استفاده از این ماکرو‌ها در ادامه دیده می‌شود.
82 .KF
83 .EPS box.eps C
84 .KE
85 .SH "سایر جزئیات
86 نیازهایی مثل تولید فهرست مطالب، ارجاع علمی )مثل \*[ct kernighan81,eqn75](
87 و اشاره به بخش‌ها و شکل‌ها را نیز می‌توان در کنار این بسته انجام
88 داد.  برای این نیازها گاهی لازم است ماکروهای جدیدی نوشته
89 شوند که این کار مستلزم آشنایی با تیراف است.
90 .PP
91 در برخی شرایط لازم است برخی از ماکروهای این بسته کمی
92 تغییر نمایند؛ می‌توان این کار را با تعریف مجدد این ماکروها
93 و فراخوانی ماکروهای قدیمی در داخل آنها انجام داد.  اما
94 گاهی لازم است بسته‌ی جدیدی برای نوع مشخصی از مستند نوشته
95 شود.  در این صورت، پیاده‌سازی این بسته می‌تواند الگوی خوبی
96 برای نوشتن آن باشد.
97 .rn IP.en IP
98 .nr VS -5
100 $LIST$
102 .nr VS +5
104 .SH "فهرست ماکروها و رجیسترها
105 فهرست ماکروهای این بسته در جدول زیر نمایش داده می‌شوند.
107 .nr VS -8
108 .tblbeg 5i 0
109 .       tblbox 1 1 1
110 .       tblmac fa.tblhd fa.tblhd
111 .       tblrow "توصیف" "نام ماکرو"
112 .       tblmac fa.tblfb fa.tblhd
113 .       tblrow "عنوان مستند" "\*[en TL]"
114 .       tblbox 1 0 1
115 .       tblrow "عنوان بخش" "\*[en SH]"
116 .       tblrow "پاراگراف ساده" "\*[en LP]"
117 .       tblrow "پاراگرافی که خط اول آن کمی به سمت چپ حرکت داده شده است" "\*[en PP]"
118 .       tblrow "پاراگراف که همه‌ی خطوط آن به سمت چپ حرکت داده شده‌اند" "\*[en IP]"
119 .       tblrow "شروع و پایان پاراگراف‌های به چپ حرکت داده شده" "\*[en RS/RE]"
120 .       tblrow "شروع و پایان پانوشت" "\*[en FS/FE]"
121 .       tblrow "شروع و پایان متنی که باید در یک صفحه قرار گیرد" "\*[en KS/KE]"
122 .       tblrow "شروع و پایان متن شناور" "\*[en KF/KE]"
123 .       tblrow "شروع و پایان متن شناوری که باید در آغاز صفحه قرار گیرد" "\*[en KT/KE]"
124 .       tblrow "وارد کردن یک فایل گرافیکی \*[en EPS]" "\*[en EPS]"
125 .       tblrow "شروع و پایان بلوک پیش‌پردازشگر \*[en eqn]" "\*[en EQ/EN]"
126 .       tblrow "شروع و پایان بلوک پیش‌پردازشگر \*[en tbl]" "\*[en TS/TE]"
127 .       tblrow "شروع و پایان بلوک پیش‌پردازشگر \*[en pic]" "\*[en PS/PE]"
128 .tblend
129 .nr VS +8
132 فهرست رجیسترهای عددی این بسته در جدول زیر نمایش داده می‌شوند.
134 .nr VS -8
135 .tblbeg 5i 0
136 .       tblbox 1 1 1
137 .       tblmac fa.tblhd fa.tblhd
138 .       tblrow "توصیف" "نام رجیستر"
139 .       tblmac fa.tblfb fa.tblhd
140 .       tblrow "اندازه‌ی قلم" "\*[en PS]"
141 .       tblbox 1 0 1
142 .       tblrow "فاصله‌ی بین خطوط" "\*[en VS]"
143 .       tblrow "طول خط" "\*[en LL]"
144 .       tblrow "شروع خط" "\*[en PO]"
145 .       tblbox 1 0 1
146 .tblend
147 .nr VS +8
150 برای تغییر مقدار هر یک از این رجیسترها، می‌توان از درخواست \*[en nr]
151 تیراف استفاده نمود.  برای نمونه، خط »\*[en ".nr PS +2"]« اندازه‌ی
152 قلم را به مقدار دو نقطه افزایش می‌دهد.
153 .keepeof                \" Flush all queued floating objects