Posle-
duyushchie ssylki na eto imya ne budut vyzyvat' nika-
kih dejstvij;
rn - pereimenovat' komandu, makro ili cepochku. Forma
vyzova komandy rn - .rn xx yy, nachal'noe znache-
nie - net, net argumentov - ignoriruetsya, prime-
chanie - net. Pereimenovyvaet komandu, makro ili
cepochku xx v yy. Esli yy uzhe sushchestvuet, predy-
dushchaya versiya yy udalyaetsya;
di - otvesti vyhodnoj tekst. Forma vyzova komandy di
- .di xx, nachal'noe znachenie - net, net argumen-
tov - konec, primechanie - D. Otvodit vyhodnoj
tekst v makro xx. V processe otvedeniya proisho-
dit normal'naya obrabotka teksta za isklyucheniem
togo, chto ne schitayutsya stranicy. Obrabotka
teksta v makro zakanchivaetsya, kogda vstrechayutsya
komandy di ili da bez argumenta. CHuzhdye komandy
etogo tipa ne dolzhny poyavlyat'sya, pri ispol'zova-
nii vlozhennyh otvedenij;
da - dobavit' vyhodnoj tekst k otvedennomu. Forma vy-
zova komandy da - .da xx, nachal'noe znachenie -
net, net argumentov - konec, primechanie - D.
Otvodit tekst, dobavlyaya ego v makro xx (versiya
komandy di dlya dobavleniya teksta);
wh - ustanovit' lovushku po pozicii na stranice. Forma
vyzova komandy wh - .wh N xx, nachal'noe znachenie
37
APK.00322-01 33 01-15
- net, net argumentov - net, primechanie - V.
Ustanovit' lovushku dlya vyzova makro xx na pozi-
ciyu stranicy N, otricatel'noe znachenie N budet
interpretirovat'sya kak rasstoyanie ot osnovaniya
(niza) stranicy. Esli na poziciyu N ranee byla
ustanovlena lovushka s drugim makro, to teper' s
poziciej N budet svyazano makro xx. Nulevoe zna-
chenie N otnositsya k verhnemu krayu stranicy. V
sluchae otsutstviya xx lovushka, najdennaya v pozi-
cii N, udalyaetsya;
ch - izmenit' poziciyu lovushki. Forma vyzova komandy
ch - .ch xx N. nachal'noe znachenie - net, net ar-
gumentov -net, primechanie - v. Izmenyaet poziciyu
lovushki dlya makro xx na N. V sluchae otsutstviya N
lovushka, esli ona byla ustanovlena, udalyaetsya;
dt - ustanovit' lovushku po pozicii v otvedenii. Forma
vyzova komandy dt - .dt N xx, nachal'noe znachenie
- net, net argumentov - vyklyuchit', primechanie -
D,v. Ustanavlivaet lovushku v poziciyu N tekushchego
otvedeniya dlya vyzova makro xx. Eshche odna komanda
.dt pereopredelit lovushku otvedeniya. Esli argu-
menty ne zadany, lovushka udalyaetsya;
it - ustanovit' lovushku po kolichestvu vvedennyh
strok. Forma vyzova komandy it - .it N xx, na-
chal'noe znachenie - net, net argumentov - vyklyu-
chit', primechanie - E. Ustanavlivaet lovushku dlya
38
APK.00322-01 33 01-15
vyzova makro xx posle chteniya N strok ishodnogo
teksta (upravlyayushchie stroki i stroki komand ne
uchityvayutsya). Uchityvaetsya tekst, schitannyj iz
ishodnogo fajla ili tekst, vstavlyaemyj makroko-
mandami, soderzhashchimisya v stroke ishodnogo fajla
ili vyzvannymi pri obnaruzhenii "lovushek";
em - konechnoe makroopredelenie. Forma vyzova komandy
em - .em xx, nachal'noe znachenie - net, net argu-
mentov - net, primechanie - net. Makro xx budet
vyzvana posle okonchaniya vsego vvoda. Rezul'tat
budet takim zhe, kak esli by soderzhimoe xx naho-
dilos' v konce poslednego obrabatyvaemogo fajla.
39
APK.00322-01 33 01-15
8. CHISLOVYE REGISTRY
Pol'zovatelyu dostupny mnozhestvo razlichnyh, opredelen-
nyh sistemoj (sistemnyh) imenovannyh chislovyh registrov.
Krome togo pol'zovatel' mozhet opredelit' sobstvennye chis-
lovye registry. Imena registrov soderzhat odin ili dva sim-
vola i mogut sovpadat' s imenami komand, makro ili cepo-
chek. Imena registrov takzhe ne mogut soderzhat' russkih
bukv. Za isklyucheniem nekotoryh sistemnyh registrov, pred-
naznachennyh tol'ko dlya chteniya, chislovye registry dopuskayut
chtenie, zapis', avtomaticheskoe uvelichenie ili umen'shenie
soderzhimogo i vstavku ih soderzhimogo v vvodimyj tekst v
razlichnyh formatah. Obychno pol'zovateli ispol'zuyut eti re-
gistry dlya avtomaticheskoj numeracii razdelov, paragrafov,
strok i t.d. CHislovye registry mozhno ispol'zovat' vsegda,
kogda trebuetsya cifrovoj vvod, a takzhe v chislovyh vyrazhe-
niyah.
CHislovye registry sozdayutsya i izmenyayutsya s pomoshch'yu
komandy nr, kotoraya zadaet imya, chislennoe znachenie i veli-
chinu avtomaticheskogo prirashcheniya. Registry takzhe izmenyayut-
sya, esli oni ispol'zuyutsya v posledovatel'nosti operacij,
soderzhashchih avtoprirashcheniya. Esli registry x i xx soderzhat N
i shag avtomaticheskogo prirashcheniya raven M, to ih ispol'zo-
vanie v sleduyushchih posledovatel'nostyah privodit k rezul'ta-
tam, predstavlennym v tabl.3:
40
APK.00322-01 33 01-15
Tablica 3
-----------------------------------------------
|posledova-| sostoyanie |vstavlyaemoe|
|tel'nost' | registra |znachenie |
|----------|----------------------|-----------|
| \nx | ne menyaetsya | N |
| \n(xx | ne menyaetsya | N |
| \n+h | h uvelichivaetsya na M | N+M |
| \n-h | h umen'shaetsya na M | N-M |
| \n+(xx | xx uvelichivaetsya na M| N+M |
| \n-(xx | xx umen'shaetsya na M | N-M |
-----------------------------------------------
Kogda chislovoj registr vstavlyaetsya v tekst, ego so-
derzhimoe preobrazuetsya v desyatichnuyu formu (po umolchaniyu),
v desyatichnuyu formu s vedushchimi nulyami, v malen'kie rimskie
cifry, bol'shie rimskie cifry, v posledovatel'nost' malen'-
kih bukv alfavita ili posledovatel'nost' zaglavnyh bukv
alfavita v zavisimosti ot formata, zadannogo v komande af.
Dlya sozdaniya i izmeneniya registrov ispol'zuyutsya sle-
duyushchie komandy:
nr - opredelit' i ustanovit' chislovoj registr. Forma
vyzova komandy nr - .nr R _N M, nachal'noe znache-
nie - net, net argumentov - net, primechanie - U.
CHislovomu registru R prisvaivaetsya znachenie _N
po otnosheniyu k predydushchemu znacheniyu, esli ono
41
APK.00322-01 33 01-15
bylo. SHag avtomaticheskogo prirashcheniya ustanavli-
vaetsya ravnym M;
af - opredelit' format chislovogo registra. Forma vy-
zova komandy af - .af R c, nachal'noe znachenie -
arabskie, net argumentov - net, primechanie -
net. Zadaet format c dlya soderzhimogo registra R.
Mogut byt' ispol'zovany formaty, privedennye na
ris.1.
Formaty dlya registra r
-------------------------------------------
| format | posledovatel'nost' numeracii |
|--------|--------------------------------|
| 1 | 0,1,2,3,4,5,........ |
| 001 | 000,001,002,003,004,005,...... |
| i | 0,i,ii,iii,iv,v,....... |
| I | 0,I,II,III,IV,V,....... |
| a | 0,a,b,c,..,z,aa,ab,..zz,aaa,.. |
| A | 0,A,B,C,..,Z,AA,AB,..ZZ,AAA,.. |
-------------------------------------------
ris.1 ;
rr - udalit' chislovoj registr. Forma vyzova komandy
rr - .rr R, nachal'noe znachenie - net, net argu-
mentov - ignoriruetsya, primechanie - net. Esli
dinamicheski sozdaetsya bol'shoe kolichestvo re-
gistrov, mozhet vozniknut' neobhodimost' udalit'
neispol'zuemye bol'she registry dlya togo, chtoby
42
APK.00322-01 33 01-15
osvobodit' oblast' vnutrennej pamyati dlya vnov'
sozdavaemyh registrov.
43
APK.00322-01 33 01-15
9. TABULYACII, LIDERY I POLYA
9.1. Tabulyacii i lidery
ASCII-simvoly gorizontal'noj tabulyacii (HT) i nachala
zalogovka (SOH), kotoryj dalee budet nazyvat'sya liderom,
mogut ispol'zovat'sya libo dlya generacii gorizontal'nyh
podvizhek, libo dlya formirovaniya cepochki povtoryayushchihsya sim-
volov. Dlina gorizontal'noj podvizhki ili cepochki reguliru-
etsya vnutrennimi tabulyacionnymi ostanovami (tabulyaciyami),
ustnavlivaemymi s pomoshch'yu komandy ta. Razlichie sostoit v
tom, chto, po umolchaniyu, simvol tab generiruet podvizhku, a
lider formiruet cepochku tochek; s pomoshch'yu komand lc i tc
mozhno izmenit', sootvetstvenno, simvoly liderov ili podvi-
zhek. Sushchestvuet tri tipa vnutrennih tabulyacionnyh ostano-
vov: dlya vyravnivaniya po levomu krayu tabulyacii, dlya vyrav-
nivaniya po pravomu krayu tabulyacii i po centru tabulyacii. V
tabl.4, privedennoj nizhe, D - rasstoyanie ot tekushchej pozi-
cii vhodnoj stroki (gde byl obnaruzhen simvol tab ili
lider) do sleduyushchej tabulyacii; "cepochka" sostoit iz vhod-
nyh simvolov, soderzhashchihsya za simvolom tab (liderom) do
sleduyushchego simvola tab (ili lidera) ili konca stroki; W -
shirina "cepochki".
44
APK.00322-01 33 01-15
Tablica 4
-----------------------------------------------
|tip tabulyacii|dlina podvizhki |raspolozhenie |
| |ili povtorenie | "cepochki" |
| | simvolov | |
|-------------+----------------+--------------|
| Levyj | D |posle propuska|
| | |rasstoyaniya D |
| | | |
| Pravyj | D - W |vyravnena po |
| | |pravomu krayu |
| | |v predelah D |
| | | |
| Central'nyj | D - W/2 |centrirovana |
| | |otnositel'no |
| | |pravogo kraya |
| | |intervala D |
-----------------------------------------------
Dlina gorizontal'noj podvizhki mozhet byt' otricatel'-
noj, no dlina cepochki povtoryayushchihsya simvolov otricatel'noj
byt' ne mozhet. Cepochki povtoryayushchihsya simvolov soderzhat ce-
loe chislo simvolov. Simvoly tab i lidery, obnaruzhennye
posle poslednej tabulyacii, ignoriruyutsya, no mogut byt' is-
pol'zovany v kachestve priznakov konca "cepochki".
Simvoly tabulyacii i vedushchie simvoly ne interpretiru-
yutsya v rezhime kopirovaniya. Funkcii et i ea vsegda porozhda-
yut neinterpretiruemye simvoly tabulyacii i liderov, soot-
45
APK.00322-01 33 01-15
vetstvenno, i v rezhime kopirovaniya ekvivalentny faktiches-
kim simvolam tabulyacii i vedushchim simvolam.
9.2. Polya
Pole zaklyucheno mezhdu paroj simvolov-razgranichitelej
polej i sostoit iz podcepochek, razdelennyh simvolami indi-
katora zapolneniya. Dlina polya ravna rasstoyaniyu ot pozicii
nachala polya vo vhodnoj stroke i do sleduyushchej tabulyacii.
Raznost' mezhdu dlinoj polya i summarnoj dlinoj vseh podce-
pochek opredelyaet prostranstvo gorizontal'nogo zapolneniya,
kotoroe raspredelyaetsya mezhdu sootvetstvuyushimi oblastyami
zapolneniya. Velichina zapolnyamogo prostranstva mozhet byt'
otricatel'noj. Naprimer, esli ogranichitelem polya yavlyaetsya
simvol #, a ukazatelem zapolneniya ^, to #^xxx^right# oboz-
nachaet vyrovnennuyu po pravomu krayu cepochku, s cepochkoj
xxx, otcentrovannoj na ostavshemsya prostranstve.
Ispol'zuyutsya sleduyushchie komandy:
ta - ustanovit' tabulyacii. Forma vyzova komandy ta -
.ta Nt ...., nachal'noe znachenie - 0.81, net ar-
gumentov - otsutstvuet, primechanie - E, n. Usta-
navlivaet tabulyacii i ih tipy. t=R sootvetstvuet
vyravnivaniyu sprava; t=C sootvetstvuet centriro-
vaniyu; pri otsutstvii t podrazumevaetsya vyravni-
vanie sleva. Po umolchaniyu ustanovleny tabulyacci
na kazhdye 0.8 dyujma (ili 8n). Znacheniya argumen-
tov razdelyayutsya probelami; znachenie, pered koto-
46
APK.00322-01 33 01-15
rym stoit znak plyus (``+''), rassmatrivaetsya kak
prirashchenie k znacheniyu predydushchej tabulyacii;
tc - ustanovit' simvol zapolneniya tabulyacij. Forma
vyzova komandy tc - .tc c, nachal'noe znachenie -
otsutstvuet, net argumentov - otsutstvuet, pri-
mechanie -E. Simvolom, zapolnyayushchim tabulyacionnye
podvizhki stanovitsya simvol c, ili (esli c ot-
sutstvuet) udalyaetsya, oboznachaya tem samym pod-
vizhki;
lc - ustanovit' simvol zapolneniya liderov. Forma vy-
zova komandy lc - .lc c, nachal'noe znachenie -
net, net argumentov - otsutstvuet, primechanie -
E. Simvolom, zapolnyayushchim lidery, stanovitsya
simvol c, ili (esli c otsutstvuet) udalyaetsya,
oboznachaya tem samym podvizhki;
fc - ustanovit' simvoly ogranichitelya i zapolnitelya
polya. Forma vyzova komandy fc - .fc a b, nachal'-
noe znachenie - vyklyuchit', net argumentov - vyk-
lyuchit', primechanie - net. Simvol ogranichitelya
polya ustanavlivaetsya v a; indikator zapolneniya
ustanavlivaetsya v b, a v sluchae otsutstviya b - v
probel. Esli argumenty otsutstvuyut, mehanizm up-
ravleniya polyami vyklyuchaetsya.
47
APK.00322-01 33 01-15
10. SOGLASHENIYA O VVODE/VYVODE I
PREOBRAZOVANIYA SIMVOLOV
10.1. Preobrazovaniya vhodnyh simvolov
Pif vosprinimaet nekotorye upravlyayushchie simvoly koda
ASCII, takie kak simvol gorizontal'noj tabulyacii (HT),
simvol nachala zagolovka (SOH), simvol vozvrata na shag
(BS). Simvol novoj stroki (NL) (ili LF) ispol'zuetsya v ka-
chestve razgranichitelya vhodnyh strok. Krome togo, vosprini-
mayutsya sluzhebnye simvoly nachala teksta (STX), konca teksta
(ETX), oprosa (ENQ), opoznaniya (ACK) i "zvonok" (BEL), ko-
torye mogut ispol'zovat'sya v kachestve razgranichitelej. Vse
prochie simvoly ignoriruyutsya.
Simvol pereklyucheniya ``\'' ukazyvaet, chto za nim budet
sledovat' simvol, kotoryj oboznachaet drugoj opredelennyj
simvol ili nekotoruyu funkciyu. Polnyj perechen' etih posle-
dovatel'nostej priveden v razd.23. Simvol ``\'' ne sleduet
putat' s simvolom pereklyucheniya koda (ESC) koda ASCII. CHto-
by v vyhodnom tekste poyavilsya simvol ``\'', nuzhno vospol'-
zovat'sya posledovatel'nost'yu ``\\'' vo vhodnom tekste.
Simvol pereklyucheniya mozhno izmenit' s pomoshch'yu komandy ec.
Dlya raspechatki dejstvuyushchego v dannyj moment simvola perek-
lyucheniya mozhno vospol'zovat'sya funkciej \e. Pri zhelanii ili
neobhodimosti mehanizm pereklyucheniya koda mozhet byt' otklyu-
chen i vosstanovlen pri pomoshchi komandy eo.
48
APK.00322-01 33 01-15
Ispol'zuyutsya sleduyushchie komandy ustanovki pereklyuchate-
lej:
ec - ustanovit' simvol pereklyucheniya. Forma vyzova ko-
mandy ec - .ec c, nachal'noe znachenie - e, net
argumentov - e, primechanie - net. Ustanavlivaet
simvol pereklyucheniya v c, a pri ego otstutstvii v
e;
eo - izmenit' sostoyanie mehanizma pereklyucheniya. Forma
vyzova komandy eo - .eo, nachal'noe znachenie -
vyklyuchit', net argumentov - net, primechanie -
net.
10.2. Vozvrat i podcherkivanie
Esli vyklyuchen rezhim kopirovaniya, to simvol vozvrata
na shag (BS) koda ASCII obychno zamenyaetsya na gorizontal'nuyu
podvizhku v obratnom napravlenii na shirinu simvola probela.
Funkciya podcherkivaniya, kak odna iz form postroeniya linij,
opisana v podrazd.12.3. V sisteme pif podcherkivanie proiz-
voditsya avtomaticheski pri pomoshchi vklyucheniya kursiva (koman-
doj ft ili funkciej \f) ili pri pomoshchi komandy ul. Sleduet
otmetit', chto podcherkivayutsya ne vse simvoly, a tol'ko
bukvy i cifry; znaki i probely ostayutsya nepodcherknutymi.
Ispol'zuyutsya sleduyushchie komandy:
ul - podcherkivat' sleduyushchie N strok ishodnogo teksta.
Forma vyzova komandy ul - .ul N, nachal'noe zna-
49
APK.00322-01 33 01-15
chenie - vyklyuchit', net argumentov - N=1, prime-
chanie - E. Podcherknut' tekst, soderzhashchijsya v
sleduyushchih N strokah vhodnogo teksta, pri etom
rezhim "bez zapolneniya" ne vklyuchaetsya. Vyhod,
sgenerirovannyj komandoj tl, popadaet pod dej-
stvie komandy ul, no pri etom N ne umen'shaetsya.
Esli N>1, to imeetsya opasnost' togo, chto inter-
polirovannoe "zahvatyvaniem" makro mozhet vydat'
stroki teksta v predelah dannogo prostranstva.
CHtoby izbezhat' etogo mozhno sootvetstvuyushchim obra-
zom izmenyat' okruzhenie (sm. razd. 17);
ft - izmenit' tekushchij shrift. Forma vyzova komandy ft
- .ft F, nachal'noe znachenie - obychnyj, net argu-
mentov - predydushchij, primechanie - E. Zamenyaet
tekushchij shrift na F. CHtoby posleduyushchij tekst byl
podcherknut, nuzhno ukazat' F=I. CHtoby vernut'sya k
obychnomu shriftu (bez podcherkivaniya) nado ukazat'
F=R. Analogichnyj rezul'tat poluchitsya, esli vos-
pol'zovat'sya funkciej pepeklyucheniya shrifta \fN,
gde N - tip shrifta;
cu - podcherkivat' sleduyushchie N strok. Forma vyzova ko-
mandy cu - .cu N, nachal'noe znachenie - vyklyu-
chit', net argumentov - N=1, primechanie - E. Raz-
novidnost' komandy ul, pri kotoroj podcherkivaet-
sya kazhdyj simvol.
50
APK.00322-01 33 01-15
10.3. Upravlyayushchie simvoly
Kak upravlyayushchij simvol ".", tak i upravlyayushchij simvol,
ne vyzyvayushchij preryvanij, " ' " pri zhelanii mozhno izme-
nit'. Razumeetsya, takoe izmenenie dolzhno soglasovyvat'sya s
postroeniem lyubyh makroopredelenij, vstrechayushchihsya v prede-
lah dejstviya etogo izmeneniya, i, osobenno, vseh makroko-
mand, vyzyvaemyh po "lovushke".
Ispol'zuyutsya sleduyushchie komandy ustanovki upravlyayushchego
simvola:
cc - ustanovit' osnovnoj upravlyayushchij simvol. Forma
vyzova komandy cc - .cc c, nachal'noe znachenie -
., net argumentov - ., primechanie - E. Osnovnoj
upravlyayushchij simvol ustanavlivaetsya v "c" ili,
esli c otsutstvuet, ustanavlivaetsya v ".";
c2 - ustanovit' upravlyayushchij simvol bez preryvaniya.
Forma vyzova komandy c2 - c2 c, nachal'noe znache-
nie - ', net argumentov - ', primechanie - E.
Upravlyayushchij simvol, ne vyzyvayushchij preryvaniya za-
polneniya, ustanavlivaetsya v "c" ili, esli c ot-
sutstvuet, ustanavlivaetsya v " ' " (apostrof).
51
APK.00322-01 33 01-15
10.4. "Prozrachnyj" vyvod
Vhodnaya stroka, nachinayushchayasya s posledovatel'nosti \!
schityvaetsya v rezhime kopirovaniya i vyvoditsya "v chistom
vide" (bez nachal'nogo simvola \!), inymi slovami, eti
stroki ne postupayut na obrabotku. |tot mehanizm mozhno is-
pol'zovat' dlya peredachi kakomu-libo postprocessoru uprav-
lyayushchej informacii ili pomeshcheniya upravlyayushchih strok v makro-
komandu, sozdannuyu pri otvedeniyah.
10.5. Kommentarii i skrytye simvoly novoj stroki
Slishkom dlinnye vhodnye stroki, kotorye dolzhny osta-
vat'sya odnoj strokoj (naprimer, opredelenie cepochki ili
nezapolnyaemyj tekst), mozhno razbit' na neskol'ko fiziches-
kih strok, kazhdaya iz kotoryh, krome poslednej, dolzhna za-
kanchivat'sya znakom pereklyucheniya \. Posledovatel'nost'
"\(simvol novoj stroki)" vsegda ignoriruetsya, esli tol'ko
ona ne poyavlyaetsya v kommentariyah. Kommentarij mozhno vsta-
vit' v konec lyuboj stroki, napisav pered nim \". Simvol
novoj stroki, nahodyashchijsya v konce kommentariya, ne mozhet
byt' skrytym. Stroka, nachinayushchayasya s \", budet vosprini-
mat'sya kak pustaya stroka i obrabatyvat'sya kak komanda .sp
1. Kommentarij mozhet takzhe zanimat' celuyu stroku esli ona
nachinaetsya s ``.\"''.
52
APK.00322-01 33 01-15
11. LOKALXNYE VERTIKALXNYE I
GORIZONTALXNYE PEREMESHCHENIYA I FUNKCIYA
SHIRINY
11.1. Lokal'nye peremeshcheniya
Funkcii \v'N' i \h'N' mozhno ispol'zovat' dlya lokal'-
nyh peremeshchenij po vertikali i gorizontali, sootvetstven-
no. Rasstoyanie N mozhet byt' otricatel'nym. Peremeshcheniyami v
polozhitel'nyh napravleniyah schitayutsya peremeshcheniya vpravo i
vniz. Lokal'nym peremeshcheniem yavlyaetsya lyuboe peremeshchenie v
predelah odnoj stroki. CHtoby izbezhat' neozhidannyh verti-
kal'nyh smeshchenij, neobhodimo sledit' za tem, chtoby obshchee
peremeshchenie po vertikali, v predelah slova v zapolnennom
tekste i v predelah stroki v ostal'nyh sluchayah, ravnyalos'
nulyu. Posledovatel'nosti pereklyucheniya, obespechivayushchie raz-
lichnye podvizhki, ukazany v tabl.5.
53
APK.00322-01 33 01-15
Tablica 5
Pereklyuchatel'nye posledovatel'nosti
---------------------------------------------------
Iverti- | dejstvie Igorizon-| dejstvie I
Ikal'nye | Italnye | I
Ipodvizhki| Ipodvizhki| I
I--------+---------------+--------+-------------- I
I \v'N' |podvinut' I \h'N' |podvinut' I
I |na rasstoyanie NI |na rasstoyanie NI
I \u |1/2 stroki I\(prob.)|nezapolnyat' I
I | vverh I |probel I
I \d |1/2 stroki I \0 |probel rav- I
I | vniz I |nyj shirine I
I \r |1 stroku I |cifry I
I | vverh I | I
---------------------------------------------------
11.2. Funkciya shiriny
Funkciya shiriny \w'cepochka' vychislyaet shirinu "cepochki"
(v bazovyh edinicah). Izmeneniya tipa shrifta mozhno bezopas-
no vstavlyat' v cepochku, pri etom tekushchie usloviya formati-
rovaniya ne izmenyayutsya. Naprimer, komandu .ti -\w'1.'u
mozhno bylo by ispol'zovat' dlya formirovaniya vremennogo
otstupa sleva ravnogo razmeru cepochki "1."
54
APK.00322-01 33 01-15
11.3. Otmetka gorizontal'nogo polozheniya
Pereklyuchayushchaya posledovatel'nost' \kx vyzovet zapomi-
nanie v registre x tekushchej gorizontal'noj pozicii vo vhod-
noj stroke.
Pereklyuchayushchaya posledovatel'nost' \jx vyzovet zapomi-
nanie v registre x tekushchej gorizontal'noj pozicii v vyhod-
noj stroke.
Naprimer, konstrukciya
\jxslovo \h'|\nx+2u'slovo
budet vydelyat' "slovo", posredstvom vozvrata k
ego nachalu i povtornoj ego pechati, v rezul'tate chego
budet napechatano zhirnym shriftom "slovo".
Pri ispol'zovanii etoj konstrukcii sleduet imet' v vidu,
chto zanesenie znacheniya v registr proizojdet posle togo,
kak budet sformirovano slovo, i v takoj konstrukcii
\jxslovo\h'|\nx+2u'slovo
soderzhimoe registra x budet ravno nulyu (esli etot registr
ranee ne byl opredelen).
55
APK.00322-01 33 01-15
12. NEKOTORYE SPECIALXNYE PRIEMY
PECHATI
12.1. Pechat' s nalozheniem na odnoj pozicii
Funkciya pechati s nalozheniem v odnoj pozicii \o'cepoch-
ka' obespechivaet avtomaticheski centrirovannuyu pechat' na
odnoj pozicii do devyati simvolov. Simvoly "cepochki" pecha-
tayutsya odin poverh drugogo s vyravnivaniem po centru kazh-
dogo simvola. Obshchaya shirina budet ravna shirine samogo shiro-
kogo simvola. Cepochka ne dolzhna soderzhat' lokal'nyh verti-
kal'nyh peremeshchenij. Naprimer, posledovatel'nost' \o'+_'
dast _.
12.2. Simvoly nulevoj shiriny
Funkciya \zc budet vyvodit' simvol c, ne ostavlyaya za
nim intervala, i mozhet byt' ispol'zovana dlya polucheniya
kombinacii simvolov posredstvom pechati na odnom meste s
vyravnivaniem po levomu krayu. Naprimer, posledovatel'nost'
\zO/ napechataet perecherknutoe O, a posledovatel'nost' \z|_
napechataet _.
56
APK.00322-01 33 01-15
12.3. Risovanie linij
Pri ispol'zovaniii funkcii \l'Nc' budet formirovat'sya
cepochka povtoryayushchihsya simvolov 'c' sleva napravo dlinoj N.
Esli 'c' mozhno ponyat' kak prodolzhenie vyrazheniya N, to ego
mozhno otdelit' ot N simvolom \&. Esli 'c' ne zadano, to
ispol'zuetsya simvol podcherkivaniya '_'. Pri otricatel'nom N
pered "risovaniem" cepochki vypolnyaetsya gorizontal'noe pe-
remeshchenie v obratnom napravlenii na rasstoyanie N. Esli ot-
noshenie N/(shirina 'c') imeet ostatok, to interval, ravnyj
znacheniyu ostatka, pomeshchaetsya v nachale (s levogo kraya) ce-
pochki. V teh sluchayah, kogda simvoly dolzhny byt' napechatany
slitno, naprimer, linejka podcherkivaniya, ostavsheesya
prostranstvo zakryvaetsya s pomoshch'yu nalozheniya. Esli N
men'she shiriny simvola 'c', to pechataetsya odin simvol 'c',
i ego seredina nahoditsya na rasstoyanii N. Naprimer, mozhno
napisat' sleduyushchuyu makrokomandu dlya podcherkivaniya cepochki:
.de us
\\$1\\l'-\\w%\\$1%u_'
..
Takim obrazom, vyzvav makro
.us "Podcherknutye slova"
poluchim
__________________
Funkciya \L'Nc' budet "vycherchivat'" vertikal'nuyu li-
niyu, sostoyashchuyu iz simvolov c, raspolozhennyh v stolbec s
intervalom v odnu stroku; esli "c" ne ukazano, to, po
57
APK.00322-01 33 01-15
umolchaniyu, ispol'zuetsya simvol "|" (vertikal'naya cherta).
Liniya nachinaetsya bez kakogo-libo nachal'nogo smeshcheniya otno-
sitel'no osnovaniya tekushchej stroki. Polozhitel'noe N oprede-
lyaet liniyu, provedennuyu vniz, a otricatel'noe N opredelyaet
liniyu, provedennuyu vverh. Posle vycherchivaniya linii nikakih
kompensiruyushchih peremeshchenij ne vypolnyaetsya i tekushchee polo-
zhenie tochki budet nahodit'sya v konce linii.
Ispol'zuya sovmestno funkcii vycherchivaniya gorizontal'-
nyh i vertikal'nyh lineek, mozhno, naprimer, zaklyuchit' ne-
kotoryj blok teksta v ramku.
58
APK.00322-01 33 01-15
13. PERENOS SLOV
Mehanizm avtomaticheskogo perenosa slov mozhno otklyu-
chit' i vklyuchit'. Simvol ukazatelya perenosa (posledovatel'-
nost' \%)mozhno vstavit' v slovo dlya ukazaniya zhelaemyh po-
zicij perenosa ili napisat' pered slovom dlya otmeny pere-
nosa tol'ko etogo slova.
Dlya avtomaticheskogo perenosa podhodyat tol'ko slova,
soderzhashchie vnutri cepochku alfavitnyh simvolov, okruzhennuyu
cepochkami nealfavitnyh simvolov. Slova ishodnogo teksta,
soderzhashchie defisy (minusy), naprimer, takie kak iz-za,
temno-sero-fioletovyj ili Semenov-Tyan'-SHan'skij perenosyat-
sya posle etih simvolov nezavisimo ot togo, dejstvuet ili
net rezhim avtomaticheskogo perenosa.
Ispol'zuyutsya sleduyushchie komandy perenosa slov:
nh - otklyuchit' rezhim avtomaticheskogo perenosa. Forma
vyzova komandy nh - .nh, nachal'noe znachenie -
da, net argumentov - net, primechanie - E;
hy - vklyuchit' rezhim avtomaticheskogo perenosa slov.
Forma vyzova komandy hy - .hy N, nachal'noe zna-
chenie - N=1, net argumentov - N=1, primechanie -
E. Vklyuchit' avtomaticheskij perenos slov pri N>=1
ili otklyuchit' pri N=0.
hc - ustanovit' simvol ukazatelya perenosa. Forma vy-
zova komandy hc - .hc c, nachal'noe znachenie -
59
APK.00322-01 33 01-15
net, net argumentov - net, primechanie -E. Simvol
ukazatelya perenosa ustanavlivaetsya v c ili po
umolchaniyu \%. Ukazatel' perenosa pri pechati ne
vyvoditsya.
60
APK.00322-01 33 01-15
14. ZAGOLOVKI IZ TREH CHASTEJ
Komanda formirovaniya zagolovka tl obespechivaet avto-
maticheskoe razmeshchenie v treh polyah stroki: levom,
central'nom i pravom. Dlina zagolovka opredelyaetsya koman-
doj lt. Komandu tl mozhno ispol'zovat' gde ugodno i ona ne
zavisit ot processa obrabotki obychnogo teksta. Kak pravi-
lo, eta komanda ispol'zuetsya v makrokomandah obrabotki na-
chala i konca stranicy.
Ispol'zuyutsya sleduyushchie komandy formirovaniya zagolov-
ka:
tl - "zagolovok iz treh chastej". Forma vyzova komandy
tl - .tl 'lev.'centr.'prav.', nachal'noe znachenie
- net, net argumentov - net, primechanie -net.
Cepochki "lev.", "centr." i "prav." vyravnivayutsya
po levomu krayu, centriruyutsya i vyravnivayutsya po
pravomu krayu, sootvetstvenno, v predelah tekushchej
dliny zagolovka. Lyubaya iz cepochek mozhet byt'
pustoj i dopuskaetsya perekrytie. V kachestve
razgranichitelya cepochek mozhno ispol'zovat' lyuboj
simvol. Esli v lyubom iz polej vstrechaetsya simvol
nomera stranicy (iznachal'no %), to on zamenyaetsya
na tekushchij nomer sranicy, v formate, kotoryj us-
tanovlen dlya registra %, soderzhashchego nomer stra-
nicy;
61
APK.00322-01 33 01-15
pc - ustanovit' simvol nomera stranicy. Forma vyzova
komandy pc - .pc c, nachal'noe znachenie - %, net
argumentov - vyklyuchit', primechanie - net. Simvol
nomera stranic ustanavlivaetsya v c ili (esli ar-
gument otsutstvuet) simvol likvidiruetsya.
Registrom nomera stranicy ostaetsya %;
lt - ustanovit' dlinu zagolovka iz treh chastej. Forma
vyzova komandy lt - .lt _N,nachal'noe znachenie -
65n, net argumentov - predydushchee, primechanie
-E,n. Dlina zagolovka iz treh chastej ustanavli-
vaetsya v _N. Dlina stroki i dlina zagolovka yav-
lyayutsya nezavisimymi velichinami. V zagolovkah
otstupy ne delayutsya.
62
APK.00322-01 33 01-15
15. NUMERACIYA STROK VYHODNOGO TEKSTA
S pomoshch'yu komandy nm mozhno podklyuchit' mehanizm avto-
maticheskoj posledovatel'noj numeracii strok vyhodnogo
teksta. Pri zadanii etogo rezhima pered kazhdoj vyhodnoj
4 strokoj pechataetsya trehznachnyj nomer stroki v vide
arabskih cifr, za kotorym sleduet probel. Takim obrazom,
stroki smeshchayutsya na chetyre pozicii, no dlina stroki sohra-
nyaetsya. Dlya togo chtoby obespechit' sovpadenie pravogo kraya
8 s imevshimsya ranee, mozhet potrebovat'sya umen'shenie dliny
strok. Pustye stroki i prochie promezhutki, a takzhe stroki,
sgenerirovannye po komande tl, ne numeruyutsya. Numeraciyu
mozhno vremenno otmenit' s pomoshch'yu komandy nn; ee takzhe
12 mozhno otmenit', ispol'zuya komandu .nm bez parametrov, za
kotoroj pozdnee dlya vosstanovleniya numeracii s poslednego
nomera posleduet .nm +0. Krome togo, v pole nomera stroki
mozhno zadat' otstup I dlya nomera stroki i kolichestvo pro-
16 belov S, otdelyayushchih tekst ot nomera. Dalee mozhno po-
probovat', chtoby pechatalis' tol'ko te nomera strok, koto-
rye kratny nekotoromu chislu M (pri etom pole numeracii u
drugih strok ostaetsya nezapolnennym).
20 Ispol'zuyutsya sleduyushchie komandy:
nm - vklyuchit' rezhim numeracii vyhodnyh strok. Forma
vyzova komandy nm - .nm _N M S I, nachal'noe zna-
chenie - net, net argumentov - vyklyuchit', prime-
chanie -E. Esli _N zadano, vklyuchaetsya numeraciya
63
APK.00322-01 33 01-15
strok i sleduyushchej stroke prisvaivaetsya nomer _N
po otnosheniyu k poslednej pronumerovannoj stroke.
Znacheniyami po umolchaniyu yavlyayutsya M=1, S=1 i I=0.
Parametry, sootvetstvuyushchie propushchennym argumen-
tam, ne menyayutsya; necifrovoj argument schitaetsya
otsutstvuyushchim. Pri otsutstvii vseh argumentov
rezhim numeracii otmenyaetsya. Nomer sleduyushchej
stroki sohranyaetsya dlya vozmozhnogo dal'nejshego
ispol'zovaniya v chislovom registre ln;
nn - ne numerovat' sleduyushchie N strok. Forma vyzova
komandy nn - .nn N, nachal'noe znachenie -net, net
argumentov - N=1, primechanie - E. Sleduyushchie N
strok vyhodnogo teksta ne numeruyutsya.
V kachestve primera, tekst dannogo razdela byl pronu-
merovan pri pomoshchi komandy .nm 1 4, kotoraya raspolozhena v
nachale razdela. V konce pervogo abzaca stoyalo .nm, a pered
24 etim abzacem numeraciya byla vosstanovlena pri pomoshchi ko-
mandy .nm +0, i v konce razdela stoit snova .nm. Dlina
strok byla takzhe izmenena v sootvetstvuyushchih mestah. Drugim
primerom mozhet sluzhit' zapis' vida .nm +5 5 x 3, kotoraya
28 vklyuchaet rezhim numeracii, pri etom nomer ocherednoj stroki
teksta budet na 5 bol'she nomera poslednej pronumerovannoj
stroki; M=5 oznachaet, chto nomer stavitsya pered kazhdoj
pyatoj strokoj; interval mezhdu tekstom i nomerom ne izmenya-
32 etsya i otstup I ustanavlivaetsya ravnym 3.
64
APK.00322-01 33 01-15
16. USLOVNYJ VVOD TEKSTA
CHerez "c" oboznacheno odnosimvol'noe vstroennoe imya
usloviya, "!" oboznachaet otricanie, "N" - chislennoe vyrazhe-
nie; "cep1" i "cep2" yavlyayutsya cepochkami, razdelennymi
lyubym simvolom, ne vstrechayushchimsya v cepochkah i otlichnym ot
probela i cifry; "chto-libo" - to, chto vvoditsya po usloviyu.
Ispol'zuyutsya sleduyushchie komandy:
if - 1-aya forma vyzova komandy - .if c chto-libo, na-
chal'noe znachenie - net, net argumentov -net,
primechanie - net. Esli uslovie c istinno, vvesti
"chto-libo"; v sluchae, kogda vvodimyj tekst zani-
maet neskol'ko strok, ispol'zujte \- chto-libo \-
. 2-aya forma vyzova komandy - .if !s chto-libo,
nachal'noe znachenie - net, net argumentov - net,
primechanie -net. Esli uslovie s lozhno, to vvesti
"chto-libo". 3-ya forma vyzova komandy - .if N
chto-libo, nachal'noe znachenie - net, net argumen-
tov - net, primechanie - u. Esli vyrazhenie N > 0,
to vvesti "chto-libo". 4-aya forma vyzova komandy
- .if !N chto-libo, nachal'noe znachenie - net, net
argumentov - net, primechanie - u. Esli vyrazhenie
N <= 0, to vvesti "chto-libo". 5-aya forma vyzova
komandy - .if 'cep1'cep2' chto-libo, nachal'noe
znachenie - net, net argumentov - net, primechanie
- net. Esli "cep1" sovpadaet s "cep2", to vvesti
65
APK.00322-01 33 01-15
"chto-libo". 6-aya forma vyzova komandy - .if
!'cep1'cep2' chto-libo, nachal'noe znachenie - net,
net argumentov - net, primechanie - net. Esli
"cep1" ne sovpadaet s "cep2", to vvesti "chto-
libo";
ie - chast' if konstrukcii if-else. Forma vyzova ko-
mandy ie - .ie c chto-libo, nachal'noe znachenie -
net, net argumentov - net, primechanie - u. Vse
perechislennye vyshe formy spravedlivy i dlya etoj
komandy (analogichnoj if);
el - chast' else konstrukcii if-else. Forma vyzova ko-
mandy el - .el c chto-libo, nachal'noe znachenie -
net, net argumentov - net, primechanie - u. Imena
vstroennyh uslovij privodyatsya na ris.2
Vstroennye usloviya
-------------------------------------------
| imya | imeet znachenie "istina", esli |
|usloviya| |
|-------|---------------------------------|
| o | nomer tekushchej stranicy -nechetnyj|
| e | nomer tekushchej stranicy - chetnyj |
-------------------------------------------
ris.2
Esli uslovie c istinno, ili esli chislo N bol'she nulya,
ili esli cepochki tozhdestvenno sovpadayut (vklyuchaya peremeshche-
66
APK.00322-01 33 01-15
niya, razmer simvolov i shrift), to vvoditsya "chto-libo".
Esli usloviyu, chislu ili sravnivaemym cepochkam predshestvuet
znak !, to smysl usloviya menyaetsya na protivopolozhnyj.
Probely mezhdu usloviem i tekstom, prednaznachennym dlya
vvoda ("chto-libo"), ignoriruyutsya. "CHto-libo" mozhet soder-
zhat' libo odnu stroku ishodnogo teksta (obychnogo teksta,
makrokomandy ili chego-nibud' eshche), libo neskol'ko vhodnyh
strok. V sluchae neskol'kih strok pervaya stroka dolzhna na-
chinat'sya s levogo ogranichitelya \- . Poslednyaya stroka
dolzhna zakanchivat'sya pravym ogranichitelem \- .
Komanda ie (if-else) identichna komande if za isklyuche-
niem togo, chto zapominaetsya uslovie vvoda. Posleduyushchaya do-
polnyayushchaya komanda el (else) budet ispol'zovat' obratnoe
znachenie etogo usloviya. Bloki ie-el mogut byt' vlozhennymi.
Privedem neskol'ko primerov:
.if e .tl'CHetnaya stranica' %'''
eta komanda vyvodit zagolovok, esli nomer tekushchej stranicy
chetnyj. V sleduyushchem primere:
.ie \n%>1 \{\
'sp 3v
.tl 'stranica %'''
'sp |7v \}\
.el .sp |15v
pervaya stranica obrabatyvaetsya ne tak, kak ostal'nye.
67
APK.00322-01 33 01-15
17. PEREKLYUCHENIYA OKRUZHENIYA
Nekotorye parametry, kotorye upravlyayut obrabotkoj
teksta sobirayutsya vmeste v "okruzhenie", kotoroe mozhet pe-
reklyuchat'sya pol'zovatelem. Parametry "okruzheniya" eto te
parametry, v kolonke primechanij k opisaniyu kotoryh ukazano
E; dobavim, chto chastichno sobrannye stroki i slova tozhe po-
padayut v "okruzhenie". Vse drugie parametry global'ny i ne
zavisyat ot "okruzheniya", naprimer, stranichno-
orientirovannye parametry, parametry otvedenij, chislovye
registry i opredeleniya makro i cepochek. Pri nachal'nom
vklyucheniii kakogo-libo okruzheniya vse parametry prinimayut
znacheniya po umolchaniyu. Ispol'zuetsya komanda ev - pereklyu-
chit' okruzhenie. Forma vyzova komandy ev - .ev N, nachal'noe
znachenie - N=0, net argumentov - predydushchee, primechanie -
net. Tekushchee okruzhenie pereklyuchaetsya na okruzhenie N
(0<=N<=2). Pereklyuchenie proizvoditsya kak-by "upryatyvaniem"
tekushchego okruzheniya, i, poetomu, vosstanovlenie ("izvleche-
nie") predydushchego okruzheniya dolzhno obyazatel'no proizvo-
dit'sya pri pomoshchi komandy .ev, a ne kakoj-libo opredelen-
noj ssylki.
68
APK.00322-01 33 01-15
18. VSTAVKI IZ STANDARTNOGO VVODA
Vvod mozhet byt' vremenno pereklyuchen na ustrojstvo
standartnogo vvoda pri pomoshchi komandy rd. Obratnoe perek-
lyuchenie proishodit pri obnaruzhenii dvuh podryad pustyh
strok (dopolnitel'naya pustaya stroka ne ispol'zuetsya). |tot
mehanizm pozvolyaet vnosit' ispravleniya i dopolneniya, nap-
rimer, v dokumentaciyu tipa pisem. V sisteme DEMOS stan-
dartnymi sredstvami vvoda mogut byt' klaviatura pol'zova-
telya, liniya peredachi ili fajl. Ispol'zuyutsya sleduyushchie ko-
mandy:
rd - chitat' vstavku so standartnogo vvoda. Forma vy-
zova komandy rd - .rd podskazka, nachal'noe zna-
chenie - net. net argumentov - BEL, primechanie -
net. CHitat' vstavku s ustrojstva standartnogo
vvoda do teh por, poka ne budut najdeny podryad
dva znaka novoj stroki. Esli standartnym ustroj-
stvom vvoda yavlyaetsya klaviatura pol'zovatelya, na
terminal pol'zovatelya vyvoditsya "podskazka". S
komandoj rd mozhno obrashchat'sya kak s makrokomandoj
i pomeshchat' posle "podskazki" argumenty;
ex - vyhod iz sistemy pif. Forma vyzova komandy ex -
.ex, nachal'noe znachenie - net, net argumentov -
net, primechanie - net. Po etoj komande osu-
shchestvlyaetsya vyhod iz sistemy pif. Obrabotka
69
APK.00322-01 33 01-15
teksta prekrashchaetsya, kak v sluchae zaversheniya
vsego vvoda.
Esli izmeneniya dolzhny byt' vvedeny s klaviatury ter-
minala, v to vremya kak vyhodnoj tekst vyvoditsya na termi-
nal, parametr komandnoj stroki - q budet otmenyat' otobra-
zhenie na terminale vvodimoj s klaviatury informacii i
podskazki, za isklyucheniem signala "zvonok" (BEL).
Regulyarnyj vvod i vvod vstavok ne mozhet proizvodit'sya
odnovremenno s ustrojstva standartnogo vvoda.
Naprimer, mnogochislennye kopii tipovogo pis'ma mozhno
podgotovit', zapisyvaya izmeneniya ko vsem kopiyam v odin
fajl, ispol'zuemyj v kachestve standartnogo vvoda, i za-
stavlyaya fajl, soderzhashchij pis'mo, neodnokratno vyzyvat'
sebya s pomoshch'yu komandy nx (sm. razd.19). Process v konce
koncov zakonchitsya po komande eh v fajle ispravlenij.
70
APK.00322-01 33 01-15
19.