tmac.fa: farsi footnote sign should appear on the right
[neatroff_make.git] / tmac / tmac.fa
blobe8399c5a3af721e26adb9ebc009bfc0c2a81b85e
1 .\" A package for short Farsi manuscripts
2 .\" Registers and their default values
3 .nr PS 14               \" point size
4 .nr VS \n(PS+12         \" vertical spacing
5 .nr LL 6i               \" line length
6 .nr PO 1.1i             \" page offset
7 .nr FP -1.2i            \" footer position
8 .\" Internal registers
9 .nr fa.in 0             \" current indentation
10 .nr fa.ip 2m            \" IP indentation
11 .nr fa.pi 2m            \" RS indentation
12 .nr fa.pg 1             \" page numbering (0 disables)
13 .ds fa.cl "0            \" header colour
14 .\" Reset variables; when beginning a paragraph, e.g.
15 .de RT
16 .       fi
17 .       <<
18 .       ft FR
19 .       ad pk
20 .       ps \\n(PS
21 .       vs \\n(VS
22 .       ll \\n(LLu
23 .       lt \\n(LLu
24 .       po \\n(POu
25 .       in 0
26 .       in2 \\n[fa.in]u
27 .       cl 0
28 .       AL
30 .\" Alignment
31 .de AL
32 .       if \\n(.d%\\n(.v 'sp \\n(.vu-(\\n(.du%\\n(.vu)
34 .\" Paragraphs
35 .de LP          \" Paragraphs without temporary indentation
36 .       RT
38 .de PP          \" Ordinary paragraphs
39 .       RT
40 .       ti2 +3n
42 .de QP          \" Quoted paragraphs
43 .       LP
44 .       in2 \\n[fa.in]u+0.5i
45 .       ll -2m
47 .de IP          \" Indented paragraphs
48 .       br
49 .       RT
50 .       ne 1
51 .       <<
52 .       if \\n(.$>1 .nr fa.ip \\$2
53 .       in2 +\\n[fa.ip]u
54 \h'|-\\n[fa.ip]u'\\$1
55 .       sp -1
57 .de IP.en       \" Indented paragraphs (English)
58 .       br
59 .       ne 1
60 .       ft R
61 .       >>
62 .       if \\n(.$>1 .nr fa.ip \\$2
63 .       in +\\n[fa.ip]u
64 \h'|-\\n[fa.ip]u'\\$1
65 .       sp -1
67 .de RS          \" Indented block start
68 .       br
69 .       if \\n(.$ .nr fa.pi \\$1
70 .       nr fa.in +\\n[fa.pi]
72 .de RE          \" Indented block end
73 .       br
74 .       if \\n(.$ .nr fa.pi \\$1
75 .       nr fa.in -\\n[fa.pi]
77 .de QS          \" Quote start
78 .       br
79 .       RS
80 .       LP
82 .de QE          \" Quote end
83 .       br
84 .       RE
86 .\" Section header
87 .de SH
88 .       RT
89 .       sp
90 .       ne 1.5
91 .       cl \\*[fa.cl]
92 .       ft HD
93 .       ps \\n(PS+2
94 .       ad r
95 .       if \\n(.$ \{\
96 \\$1
97 .               LP
98 .       \}
100 .\" Document title
101 .de TL
102 .       RT
103 .       cl \\*[fa.cl]
104 .       ft HD
105 .       sp 2
106 .       ad c
107 .       ps \\n(PS+4
108 .       vs \\n(VS+6
109 .       fi
110 .       if \\n(.$ \{\
111 \\$1
112 .               sp 2
113 .               LP
114 .       \}
116 .\" Preprocessor macros
117 .de EQ
118 .       RT
119 .       nf
120 .       >>
121 .       ft R
122 .       ds fa.eqlab "\\$1
123 .       di fa.eqdiv
125 .de EN
126 .       di
127 .       if \\n(dn \{\
128 .               sp .5
129 .               ad c
130 .               ie "\\*[fa.eqlab]"" .fa.eqdiv
131 .               el \{\
132 .                       nr fa.eqwid \\n(dl
133 .                       if \\n[fa.eqwid]<(\\n(.lu/2u) .nr fa.eqwid \\n(.lu/2u
134 .                       ll \\n[fa.eqwid]u
135 .                       ad r
136 .                       fa.eqdiv
137 .                       sp -1
138 .                       ll
139 .                       in +(\\n[fa.eqwid]u+2m)
140 .                       ad l
141 \\*[fa.eqlab]
142 .                       in
143 .               \}
144 .               sp .5
145 .       \}
146 .       fi
147 .       <<
148 .       ft FR
150 .de PS
151 .       br
152 .       RT
153 .       nf
154 .       >>
155 .       in (\\n(.lu-\\$2)/2u
156 .       ne \\$1
158 .de PE
159 .       <<
160 .       in
162 .de TS
163 .       br
164 .       >>
166 .de TE
167 .       <<
168 .       RT
170 .\" Header and footer macros
171 .de FT          \" Page footer
172 .       ev fa.ft
173 .       FP
174 '       sp |\\n(.pu+\\n(FPu
175 .       RT
176 '       sp
177 .       FT.pg
178 '       bp
179 .       ev
180 .       if \\n(.t==(\\n(.p+(\\n(FP)) .HD
182 .de HD          \" Page header (called by FT)
183 .       ev fa.ft
184 .       RT
185 '       sp 1
186 .       HD.pg
187 .       ev
188 .       ns
189 .       keepbop
191 .de FT.pg       \" Footer page number
192 .       ie \\n[fa.pg]=1 'tl ''\>%\<''
193 .       el 'sp
195 .de HD.pg       \" Header page number
196 '       sp
198 .\" Footnotes
199 .de FS.common
200 '       br
201 .       ie \\n[fa.footnum] .ne 1
202 .       el .ne 1.5
203 .       if !\\n[fa.footnum] .nr fa.footpos 0\\n(FP+\\n(VSp
204 .       da fa.footdiv
205 .       ev fa.footenv
206 .       RT
207 .       ps \\n(PS-4
208 .       vs \\n(PS-2
209 .       ad l
210 .       >>
211 .       nr fa.footnum +1
212 .       if \\n[fa.footnum]=1 \l'\\n(.lu'
213 .       ds fa.footsign "\\n[fa.footnum]
214 .       if \\n(.$>0 .ds fa.footsign "\\$1
215 .       ad pk
216 .       in 3n
217 .       in2 3n
219 .de FS
220 .       FS.common \\$1
221 .       ft R
222 .       ti -3n
223 \\*[fa.footsign]
224 .       sp -1
226 .de FS.fa
227 .       FS.common \\$1
228 .       <<
229 .       ft FR
230 .       ti2 -3n
231 \>\\*[fa.footsign]\<
232 .       sp -1
234 .de FE
235 .       in 0
236 .       ev
237 .       di
238 \s-4\d\>\\*[fa.footsign]\<\u\s+4\c
239 .       nr fa.footpos -\\n(dn
240 .       ch FT \\n[fa.footpos]u
242 .de FP
243 .       if \\n[fa.footnum] \{\
244 .               ev fa.footenv
245 '               nf
246 '               ad l
247 .               fa.footdiv
248 .               rm fa.footdiv
249 .               ev
250 .       \}
251 .       nr fa.footnum 0
252 .       ch FT \\n(FPu
254 .\" Including EPS files (overrides -meps)
255 .rn EPS __EPS
256 .de EPS
257 .       >>
258 .       __EPS "\\$1" \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
260 .\" Adjusting fonts
261 .de fa.gmap     \" Mapping glyphs
262 .       fmap \\n(.f \\$1
263 .       if \w'\N'\\$2'' .fmap \\n(.f \\$1 \\$2
265 .de fa.cmap     \" Mapping characters
266 .       ochar \\n(.f \\$1
267 .       if !\w'\\$1' .ochar \\n(.f \\$1 \\$2
269 .de fa.umap     \" Mapping characters (unconditionally)
270 .       ochar \\n(.f \\$1
271 .       if \w'\\$2' .ochar \\n(.f \\$1 \\$2
273 .de fa.ffont    \" Adjusting old Farsi fonts
274 .       ft \\$1
275 .       ff \\$1 +ccmp +rlig +rclt +calt +mset +curs +kern +mark +mkmk
276 .       fa.cmap ﻫ ھ
277 .       fa.cmap ﻬ ﮫ
278 .       fa.cmap ی ﻱ
279 .       fa.cmap ﯾ ﻳ
280 .       fa.cmap ﯿ ﻴ
281 .       fa.cmap ﯽ ﻰ
282 .       fa.cmap ﯽ ﻲ
283 .       fa.cmap ﮐ ﻛ
284 .       fa.cmap ﮑ ﻜ
285 .       fa.cmap ﮏ ﻚ
286 .       fa.umap 0 ۰
287 .       fa.umap 1 ۱
288 .       fa.umap 2 ۲
289 .       fa.umap 3 ۳
290 .       fa.umap 4 ۴
291 .       fa.umap 5 ۵
292 .       fa.umap 6 ۶
293 .       fa.umap 7 ۷
294 .       fa.umap 8 ۸
295 .       fa.umap 9 ۹
296 .       ft P
298 .de fa.efont    \" Adjusting English fonts
299 .       fzoom \\$1 900
301 .de fa.mfont    \" Adjusting equation fonts
302 .       ft \\$1
303 .       fzoom \\$1 900
304 .       fa.umap 0 "\f(FR۰\fP
305 .       fa.umap 1 "\f(FR۱\fP
306 .       fa.umap 2 "\f(FR۲\fP
307 .       fa.umap 3 "\f(FR۳\fP
308 .       fa.umap 4 "\f(FR۴\fP
309 .       fa.umap 5 "\f(FR۵\fP
310 .       fa.umap 6 "\f(FR۶\fP
311 .       fa.umap 7 "\f(FR۷\fP
312 .       fa.umap 8 "\f(FR۸\fP
313 .       fa.umap 9 "\f(FR۹\fP
314 .       ft P
316 .de fa.fonts    \" Adjust the default fonts
317 .       fa.ffont FR
318 .       fa.ffont FI
319 .       fa.ffont FB
320 .       fa.ffont HD
321 .       fa.efont R
322 .       fa.efont I
323 .       fa.efont B
324 .       fa.efont BI
325 .       fa.efont CMMI
327 .\" Small auxiliary macros
328 .de en          \" English phrases
329 \>\fR\\$1\fP\<
331 .chop en
332 .de num         \" Farsi numbers
333 \>\\$1\<
335 .chop num
336 .de fs          \" English Footnote
338 .       FS
339 \\$1
340 .       FE
343 .chop fs
344 .de fs.fa       \" Farsi Footnote
346 .       FS.fa
347 \\$1
348 .       FE
351 .chop fs.fa
352 .de ct
353 ]\>\\$1\<[
355 .chop ct
356 .\" For tbl package
357 .de tblrst
358 .       fi
359 .       ft FR
360 .       ad pk
361 .       ps \\n(PS-2
362 .       vs \\n(VS-3
363 .       ll \\n(LLu
364 .       in 0
365 .       in2 0
366 .       cl 0
367 .       >>
369 .de fa.tblhd
370 .       <<
371 .       ft FB
372 .       ad c
374 .de fa.tblfc
375 .       <<
376 .       ft FR
377 .       ad c
379 .de fa.tblfb
380 .       <<
381 .       ft FR
382 .       ad pk
384 .\" For keep package
385 .de KF
386 .       keepbeg f
388 .de KT
389 .       keepbeg t
391 .de KS
392 .       keepbeg d
394 .de KE
395 .       keepend
397 .de DS
398 .       RT
399 .       nf
401 .de DE
402 .       fi
404 .\" Initialization
405 .de fa.init
406 .       lg 1
407 .       kn 1
408 .       wh \\n(FPu FT
409 .       hy 14
410 .       hycost 800
411 .       eos .?!؟ '")]*
412 .       nh
413 .       ssh 15
414 .       ss 12 6
415 .       char ‌ \&
416 .       char ‍ \&
417 .       \" Fonts: Times Roman + IR Nazanin + Computer Modern
418 .       fp 5 FR IRNazanin       \" Farsi regular font
419 .       fp 6 FI IRNazaninIranic \" Farsi italic font
420 .       fp 7 FB IRNazaninBold   \" Farsi bold font
421 .       fp 8 HD IRNazaninBold   \" Farsi header font
422 .       fp 14 CMR CMR10
423 .       fp 15 CMEX CMEX10
424 .       fp 16 CMSY CMSY10
425 .       fp 17 CMMI CMMI10
426 .       fspecial CMR S1 S CMEX CMSY
427 .       fa.fonts
428 .       fa.mfont CMR
429 .       ds .eqnbeg "\\\\?'\\\\n[.td]@\>'
430 .       ds .eqnend "\\\\?'\\\\n[.td]@\<'
431 .       ochar CMR { "\f[CMSY]{\fP
432 .       ochar CMR } "\f[CMSY]}\fP
433 .       ochar CMR \(<= "\f[CMSY]\(<=\fP
434 .       ochar CMR < "\f[CMSY]<\fP
435 .       ochar CMR > "\f[CMSY]>\fP
436 .       ochar CMR \(>= "\f[CMSY]\(>=\fP
437 .       ochar CMR \(mi "\f[CMSY]\(mi\fP
438 .       ochar CMR \(mu "\f[CMSY]\(mu\fP
440 .fa.init