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
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.
32 . if \\n(.d%\\n(.v 'sp \\n(.vu-(\\n(.du%\\n(.vu)
35 .de LP \" Paragraphs without temporary indentation
38 .de PP \" Ordinary paragraphs
42 .de QP \" Quoted paragraphs
44 . in2 \\n[fa.in]u+0.5i
47 .de IP \" Indented paragraphs
52 . if \\n(.$>1 .nr fa.ip \\$2
57 .de IP.en \" Indented paragraphs (English)
62 . if \\n(.$>1 .nr fa.ip \\$2
67 .de RS \" Indented block start
69 . if \\n(.$ .nr fa.pi \\$1
70 . nr fa.in +\\n[fa.pi]
72 .de RE \" Indented block end
74 . if \\n(.$ .nr fa.pi \\$1
75 . nr fa.in -\\n[fa.pi]
116 .\" Preprocessor macros
141 . in (\\n(.lu-\\$2)/2u
156 .\" Header and footer macros
157 .de FT \" Page footer
160 ' sp |\\n(.pu+\\n(FPu
168 .de HD \" Page header (called by FT)
177 .de FT.pg \" Footer page number
178 . ie \\n[fa.pg]=1 'tl ''\>%\<''
181 .de HD.pg \" Header page number
187 . ie \\n[fa.footnum] .ne 1
189 . if !\\n[fa.footnum] .nr fa.footpos 0\\n(FP+\\n(VSp
198 . if \\n[fa.footnum]=1 \l'3i'
202 \f(FR\\n[fa.footnum]\fP\h'|3n'\c
208 \s-4\d\>\\n[fa.footnum]\<\u\s+4\c
209 . nr fa.footpos -\\n(dn
210 . ch FT \\n[fa.footpos]u
213 . if \\n[fa.footnum] \{\
223 .\" Including EPS files (overrides -meps)
227 . _EPS \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
230 .de fa.gmap \" Mapping glyphs
231 . if \w'\N'\\$2'' .fmap \\n(.f \\$1 \\$2
233 .de fa.cmap \" Mapping characters
234 . if !\w'\\$1' .ochar \\n(.f \\$1 \\$2
236 .de fa.umap \" Mapping characters (unconditionally)
237 . if \w'\\$2' .ochar \\n(.f \\$1 \\$2
239 .de fa.ffont \" Adjusting old Farsi fonts
241 . ff \\$1 +ccmp +rlig +rclt +calt +mset +curs +kern +mark +mkmk
266 .de fa.efont \" Adjusting English fonts
269 .de fa.mfont \" Adjusting equation fonts
272 . fa.umap 0 "\f(FR۰\fP
273 . fa.umap 1 "\f(FR۱\fP
274 . fa.umap 2 "\f(FR۲\fP
275 . fa.umap 3 "\f(FR۳\fP
276 . fa.umap 4 "\f(FR۴\fP
277 . fa.umap 5 "\f(FR۵\fP
278 . fa.umap 6 "\f(FR۶\fP
279 . fa.umap 7 "\f(FR۷\fP
280 . fa.umap 8 "\f(FR۸\fP
281 . fa.umap 9 "\f(FR۹\fP
284 .de fa.fonts \" Adjust the default fonts
295 .\" Small auxiliary macros
296 .de en \" English phrases
300 .de num \" Farsi numbers
375 . \" Fonts: Times Roman + IR Nazanin + Computer Modern
376 . fp 5 FR IRNazanin \" Farsi regular font
377 . fp 6 FI IRNazaninIranic \" Farsi italic font
378 . fp 7 FB IRNazaninBold \" Farsi bold font
379 . fp 8 HD IRNazaninBold \" Farsi header font
384 . fspecial CMR S1 S CMEX CMSY
387 . ds .eqnbeg "\\\\?'\\\\n[.td]@\>'
388 . ds .eqnend "\\\\?'\\\\n[.td]@\<'
389 . ochar CMR { "\f[CMSY]{\fP
390 . ochar CMR } "\f[CMSY]}\fP
391 . ochar CMR \(<= "\f[CMSY]\(<=\fP
392 . ochar CMR < "\f[CMSY]<\fP
393 . ochar CMR > "\f[CMSY]>\fP
394 . ochar CMR \(>= "\f[CMSY]\(>=\fP