tmac.fa: call HD in fa.init
[neatroff_make.git] / tmac / tmac.fa
blobd4e3f10dedd8cd4aa21756dec7a10b298544e153
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 .\" Fonts: Times Roman + IR Nazanin + Computer Modern
9 .fp 5 FR IRNazanin      \" Farsi regular font
10 .fp 6 FI IRNazaninIranic        \" Farsi italic font
11 .fp 7 FB IRNazaninBold  \" Farsi bold font
12 .fp 8 HD IRNazaninBold  \" Farsi header font
13 .fp 14 CMR CMR10
14 .fp 15 CMEX CMEX10
15 .fp 16 CMSY CMSY10
16 .fp 17 CMMI CMMI10
17 .fspecial CMR S1 S CMEX CMSY
18 .\" Internal registers
19 .nr fa.sh 0             \" just following section headers
20 .nr fa.in 0             \" current indentation
21 .nr fa.ip 2m            \" IP indentation
22 .nr fa.pi 2m            \" RS indentation
23 .nr fa.pg 1             \" page numbering (0 disables)
24 .ds fa.cl "0            \" header colour
25 .\" Reset variables; when beginning a paragraph, e.g.
26 .de RT
27 .       fi
28 .       <<
29 .       ft FR
30 .       ad pk
31 .       ps \\n(PS
32 .       vs \\n(VS
33 .       ll \\n(LLu
34 .       lt \\n(LLu
35 .       po \\n(POu
36 .       in 0
37 .       in2 \\n[fa.in]u
38 .       cl 0
39 .       AL
41 .\" Alignment
42 .de AL
43 .       if \\n(.d%\\n(.v 'sp \\n(.vu-(\\n(.du%\\n(.vu)
45 .\" Paragraphs
46 .de LP          \" Paragraphs without temporary indentation
47 .       RT
48 .       nr fa.sh 0
50 .de PP          \" Ordinary paragraphs
51 .       RT
52 .       if !\\n[fa.sh] .ti2 +3n
53 .       nr fa.sh 0
55 .de QP          \" Quoted paragraphs
56 .       LP
57 .       in2 \\n[fa.in]u+0.5i
58 .       ll -2m
60 .de IP          \" Indented paragraphs
61 .       br
62 .       RT
63 .       ne 1
64 .       <<
65 .       if \\n(.$>1 .nr fa.ip \\$2
66 .       in2 +\\n[fa.ip]u
67 \h'|-\\n[fa.ip]u'\\$1
68 .       sp -1
70 .de IP.en       \" Indented paragraphs (English)
71 .       br
72 .       ne 1
73 .       ft R
74 .       >>
75 .       if \\n(.$>1 .nr fa.ip \\$2
76 .       in +\\n[fa.ip]u
77 \h'|-\\n[fa.ip]u'\\$1
78 .       sp -1
80 .de RS          \" Indented block start
81 .       br
82 .       if \\n(.$ .nr fa.pi \\$1
83 .       nr fa.in +\\n[fa.pi]
85 .de RE          \" Indented block end
86 .       br
87 .       if \\n(.$ .nr fa.pi \\$1
88 .       nr fa.in -\\n[fa.pi]
90 .de QS          \" Quote start
91 .       br
92 .       RS
93 .       LP
95 .de QE          \" Quote end
96 .       br
97 .       RE
99 .\" Section header
100 .de SH
101 .       RT
102 .       sp
103 .       ne 1.5
104 .       cl \\*[fa.cl]
105 .       ft HD
106 .       nr fa.sh 1
107 .       ps \\n(PS+2
108 .       ad r
109 .       if \\n(.$ \{\
110 \\$1
111 .               LP
112 .       \}
114 .\" Document title
115 .de TL
116 .       RT
117 .       cl \\*[fa.cl]
118 .       ft HD
119 .       sp 2
120 .       ad c
121 .       nr fa.sh 1
122 .       ps \\n(PS+4
123 .       vs \\n(VS+6
124 .       fi
125 .       if \\n(.$ \{\
126 \\$1
127 .               sp 2
128 .               LP
129 .       \}
131 .\" Preprocessor macros
132 .de EQ
133 .       RT
134 .       nf
135 .       >>
136 .       ft R
137 .       di fa.eqdiv
139 .de EN
140 .       di
141 .       if \\n(dn \{\
142 .               sp .5
143 .               ce
144 .               fa.eqdiv
145 .               sp .5
146 .       \}
147 .       fi
148 .       <<
149 .       ft FR
151 .de PS
152 .       br
153 .       RT
154 .       nf
155 .       >>
156 .       in (\\n(.lu-\\$2)/2u
157 .       ne \\$1
159 .de PE
160 .       <<
161 .       in
163 .de TS
164 .       br
165 .       >>
167 .de TE
168 .       <<
169 .       RT
171 .\" Header and footer macros
172 .de FT          \" Page footer
173 .       ev fa.ft
174 .       FP
175 '       sp |\\n(.pu+\\n(FPu
176 .       RT
177 '       sp
178 .       FT.pg
179 '       bp
180 .       ev
181 .       HD
183 .de HD          \" Page header (called by FT)
184 .       ev fa.ft
185 .       RT
186 '       sp 1
187 .       HD.pg
188 .       ev
189 .       ns
190 .       keepbop
192 .de FT.pg       \" Footer page number
193 .       ie \\n[fa.pg]=1 'tl ''\>%\<''
194 .       el 'sp
196 .de HD.pg       \" Header page number
197 '       sp
199 .\" Footnotes
200 .de FS
201 '       br
202 .       ie \\n[fa.footnum] .ne 1
203 .       el .ne 1.5
204 .       if !\\n[fa.footnum] .nr fa.footpos 0\\n(FP+\\n(VSp
205 .       da fa.footdiv
206 .       ev fa.footenv
207 .       RT
208 .       ps \\n(PS-4
209 .       vs \\n(PS-2
210 .       ad l
211 .       >>
212 .       nr fa.footnum +1
213 .       if \\n[fa.footnum]=1 \l'3i'
214 .       br
215 .       ft R
216 .       in 0
217 \\n[fa.footnum]\h'|3n'\c
219 .de FE
220 .       br
221 .       ev
222 .       di
223 \s-4\d\>\\n[fa.footnum]\<\u\s+4\c
224 .       nr fa.footpos -\\n(dn
225 .       ch FT \\n[fa.footpos]u
227 .de FP
228 .       if \\n[fa.footnum] \{\
229 .               ev fa.footenv
230 '               nf
231 .               fa.footdiv
232 .               rm fa.footdiv
233 .               ev
234 .       \}
235 .       nr fa.footnum 0
236 .       ch FT \\n(FPu
238 .\" Including EPS files (overrides -meps)
239 .rn EPS _EPS
240 .de EPS
241 .       >>
242 .       _EPS \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
244 .\" Adjusting fonts
245 .de fa.gmap     \" Mapping glyphs
246 .       if \w'\N'\\$2'' .fmap \\n(.f \\$1 \\$2
248 .de fa.cmap     \" Mapping characters
249 .       if !\w'\\$1' .ochar \\n(.f \\$1 \\$2
251 .de fa.umap     \" Mapping characters (unconditionally)
252 .       if \w'\\$2' .ochar \\n(.f \\$1 \\$2
254 .de fa.ffont    \" Adjusting old Farsi fonts
255 .       ft \\$1
256 .       ff \\$1 +ccmp +rlig +rclt +calt +mset +curs +kern +mark +mkmk
257 .       fa.cmap ﻫ ﻫ
258 .       fa.cmap ﻫ ھ
259 .       fa.cmap ﻬ ﻬ
260 .       fa.cmap ﻬ ﮫ
261 .       fa.cmap ی ﻱ
262 .       fa.cmap ﯾ ﻳ
263 .       fa.cmap ﯿ ﻴ
264 .       fa.cmap ﯽ ﻰ
265 .       fa.cmap ﯽ ﻲ
266 .       fa.cmap ﮐ ﻛ
267 .       fa.cmap ﮑ ﻜ
268 .       fa.cmap ﮏ ﻚ
269 .       fa.umap 0 ۰
270 .       fa.umap 1 ۱
271 .       fa.umap 2 ۲
272 .       fa.umap 3 ۳
273 .       fa.umap 4 ۴
274 .       fa.umap 5 ۵
275 .       fa.umap 6 ۶
276 .       fa.umap 7 ۷
277 .       fa.umap 8 ۸
278 .       fa.umap 9 ۹
279 .       ft P
281 .de fa.efont    \" Adjusting English fonts
282 .       fzoom \\$1 900
284 .de fa.mfont    \" Adjusting equation fonts
285 .       ft \\$1
286 .       fzoom \\$1 900
287 .       fa.umap 0 "\f(FR۰\fP
288 .       fa.umap 1 "\f(FR۱\fP
289 .       fa.umap 2 "\f(FR۲\fP
290 .       fa.umap 3 "\f(FR۳\fP
291 .       fa.umap 4 "\f(FR۴\fP
292 .       fa.umap 5 "\f(FR۵\fP
293 .       fa.umap 6 "\f(FR۶\fP
294 .       fa.umap 7 "\f(FR۷\fP
295 .       fa.umap 8 "\f(FR۸\fP
296 .       fa.umap 9 "\f(FR۹\fP
297 .       ft P
299 .de fa.fonts    \" Adjust the default fonts
300 .       fa.ffont FR
301 .       fa.ffont FI
302 .       fa.ffont FB
303 .       fa.ffont HD
304 .       fa.efont R
305 .       fa.efont I
306 .       fa.efont B
307 .       fa.efont BI
308 .       fa.efont CMMI
310 .\" Small auxiliary macros
311 .de en          \" English phrases
312 \>\fR\\$1\fP\<
314 .chop en
315 .de num         \" Farsi numbers
316 \>\\$1\<
318 .chop num
319 .de fs          \" Footnote
321 .       FS
322 \\$1
323 .       FE
326 .chop fs
327 .de ct
328 ]\>\\$1\<[
330 .chop ct
331 .\" Initialization
332 .de fa.init
333 .       lg 1
334 .       kn 1
335 .       RT
336 .       wh \\n(FPu FT
337 .       hy 14
338 .       hycost 800
339 .       eos .?!؟ '")]*
340 .       nh
341 .       ssh 15
342 .       ss 12 6
343 .       char ‌ \&
344 .       ds .eqnbeg "\\?'\\n[.td]@\>'
345 .       ds .eqnend "\\?'\\n[.td]@\<'
346 .       ds .eqnbeg "\\?'\\n[.td]@\>'
347 .       ds .eqnend "\\?'\\n[.td]@\<'
348 .       ochar CMR { "\f[CMSY]{\fP
349 .       ochar CMR } "\f[CMSY]}\fP
350 .       ochar CMR \(<= "\f[CMSY]\(<=\fP
351 .       ochar CMR < "\f[CMSY]<\fP
352 .       ochar CMR > "\f[CMSY]>\fP
353 .       ochar CMR \(>= "\f[CMSY]\(>=\fP
354 .       fa.fonts
355 .       fa.mfont CMR
356 .       HD
358 .fa.init
359 .\" For tbl package
360 .de tblrst
361 .       fi
362 .       ft FR
363 .       ad pk
364 .       ps \\n(PS-2
365 .       vs \\n(VS-3
366 .       ll \\n(LLu
367 .       in 0
368 .       cl 0
369 .       >>
371 .de fa.tblhd
372 .       <<
373 .       ft FB
374 .       ad c
376 .de fa.tblfc
377 .       <<
378 .       ft FR
379 .       ad c
381 .de fa.tblfb
382 .       <<
383 .       ft FR
384 .       ad pk
386 .\" For keep package
387 .de KF
388 .       keepbeg f
390 .de KT
391 .       keepbeg t
393 .de KS
394 .       keepbeg d
396 .de KE
397 .       keepend
399 .de DS
400 .       RT
401 .       nf
403 .de DE
404 .       fi