Sistema podgotovki dokumentacii (formater teksta) PIF 5 APK.00322-01 33 01-15 1. VYZOV PIF Obshchaya forma dlya vyzova pif imeet sleduyushchij format: pif [parametry] [fajly] gde [parametry] oznachaet lyuboe chislo vozmozhnyh parametrov, a [fajly] opredelyaet spisok fajlov, soderzhashchih formatiru- emyj dokument. Esli imena fajlov ne zadany ili ukazan pa- rametr, sostoyashchij iz odnogo znaka minus (``-''), to chtenie proizvoditsya iz standartnogo fajla vvoda. Nizhe privodyatsya parametry, kotorye mogut byt' zadany v lyubom poryadke pered spiskom fajlov: -ospisok - Pechatat' tol'ko te stranicy, nomera kotoryh prisutstvuyut v "spiske", soderzhashchem nomera i intervaly nomerov, razdelennye zapyatymi. Inter- val nomerov imeet vid N-M i oznachaet: stranicy s N po M; esli v kachestve pervogo parametra ukazano -N, to eto oznachaet: pechatat' s pervoj po N-yu stranicu, a, esli poslednij parametr N-, to eto oznachaet: pechatat' s N-j stranicy i do konca; -nN - Prisvoit' nomer N pervoj sformirovannoj strani- ce; -sN - Delat' ostanovki cherez kazhdye N stranic. CHerez kazhdye N stranic (po umolchaniyu N=1) pif budet ostanavlivat' rabotu dlya togo, chtoby dat' voz- 6 APK.00322-01 33 01-15 mozhnost' zapravit' ili zamenit' bumagu, i vo- zobnovit ee pri poluchenii simvola novoj stroki; -mimya - Prisoedinyaet vhodnye fajly k fajlu makro /usr/lib/tmac.mimya; -raN - V registr a (imya iz odnogo simvola) pomeshchaetsya N (celoe chislo). -i - posle togo, kak vhodnye fajly prochitany, chitat' dannye so standartnogo ustrojstva vvoda; -q - vyzvat' rezhim odnovremennogo vvoda/vyvoda pri komande rd; -Timya - Zadaet imya tipa ustrojstva vyvoda; -c - Vyvodit vyrovnennye stroki slov s odinakovymi intervalami mezhdu slovami, ispol'zuya polnuyu razreshayushchuyu sposobnost' terminala. 7 APK.00322-01 33 01-15 2. OBSHCHIE SVEDENIYA 2.1. Struktura vhodnyh dannyh Vhodnaya informaciya sostoit iz strok teksta, prednaz- nachennogo dlya vydachi na pechat', sredi kotoryh soderzhatsya stroki komand, upravlyayushchie posleduyushchej obrabotkoj teksta. Komandnye stroki nachinayutsya s upravlyayushchego simvola (po umolchaniyu tochki ``.'' ili apostrofa `` ' ''), za kotorym sleduet imya iz odnogo ili dvuh simvolov, opredelyayushchee os- novnuyu komandu ili makrokomandu pol'zovatelya. Upravlyayushchij simvol `` ' '' (apostrof) blokiruet funkciyu preryvaniya (vynuzhdennoe preryvanie zapolneniya chastichno zapolnennoj stroki), proishodyashchego pri vypolnenii nekotoryh komand. Upravlyayushchij simvol mozhno otdelyat' ot imeni komandy (makro- komandy) pustym promezhutkom s pomoshch'yu probelov ili simvo- lov tabulyacii. Za imenami dolzhny sledovat' libo simvol ``novaya stroka'' libo probel, za kotorym sleduyut paramet- ry. Komandnye stroki s neraspoznannymi imenami ignoriruyut- sya. Ispol'zuya znak pereklyucheniya koda, obychno ``\'', mozhno vstavit' razlichnye special'nye funkcii v lyuboe mesto is- hodnogo teksta. Naprimer, funkciya \nr vyzyvaet podstanovku soderzhimogo chislovogo registra r na mesto funkcii, zdes' r imya registra, sostoyashchee libo iz odnogo simvola, naprimer 8 APK.00322-01 33 01-15 \nx, libo, sostoyashchee iz dvuh simvolov s levoj krugloj skobkoj pered nim, naprimer \n(hh. 2.2. Razreshayushchaya sposobnost' ustrojstv i sistemy Razreshayushchaya sposobnost' sistemy pif sostavlyaet 240 edinic/dyujm (94,5 edinic/sm), chto sootvetstvuet naimen'she- mu obshchemu mnozhitelyu razreshayushchih sposobnostej razlichnyh pe- chatayushchih ustrojstv. Sistema pif proizvodit okruglenie vvo- dimyh chislovyh parametrov (gde eto trebuetsya po smyslu) do velichiny fakticheskoj razreshayushchej sposobnosti konkretnogo ustrojstva. 2.3. Vvod chislovyh parametrov Sistema pif mozhet vosprinimat' chislovye parametry, ukazannye v razlichnyh edinicah izmereniya. V dannom doku- mente chashche ispol'zuetsya dyujmovaya shkala, potomu chto bol'- shinstvo pechatayushchih ustrojstv imeet razreshayushchuyu sposobnost' kratnuyu dyujmu ili dolyam dyujma. No esli dyujmovaya shkala ne ustraivaet, mozhno pol'zovat'sya metricheskoj, ukazyvaya pri etom sootvetstvuyushchie edinicy izmereniya soglasno tabl. 1, v kotoroj V - velichina tekushchej razryadki po vertikali v bazo- vyh edinicah, a C - shirina simvolov v bazovyh edinicah. 9 APK.00322-01 33 01-15 Tablica 1 --------------------------------------------------- | ukazatel'| znachenie | chislo bazovyh | | shkaly | | edinic | |----------|----------------------|---------------- | i | Dyujm | 240 | | c | Santimetr | 240*50/127 | | P | Pika=1/6 dyujma | 240/6 | | n | En=C bazovyh edinic | C | | p | Punkt=1/72 dyujma | 240/72 | | u | Bazovaya edinica | 1 | | v | Vertikal'naya razryad- | V | | | ka | | | nichego | Po umolchaniyu | | --------------------------------------------------- Edinica En - eto, fakticheski, shirina pechataemyh zna- kov, no v sisteme pif vstrechayutsya "sverhshirokie" simvol'- nye konstrukcii vida ``->'' , ``<-'' ili ``3/4'', otobra- zhaemye pri pechati neskol'kimi simvolami. Po umolchaniyu, masshtab beretsya v edinicah En dlya gorizontal'no- orientirovannyh komand ll, in, ti, ta, lt, mc i funkcij \h i \l; v edinicah vertikal'noj razryadki (v) dlya vertikal'no-orientirovannyh komand pl, wh, ch, dt, sp, sv, ne, rt i funkcij \v, \x i \L; v punktah (p) dlya komandy vs i v bazovyh edinicah (u) dlya komand nr, if i ie. Pri vseh drugih komandah ukazanie masshtabnyh koefficientov ignori- ruetsya. Sleduet zametit', chto pri opredelenii chislovogo 10 APK.00322-01 33 01-15 registra s kakim-libo masshtabnym koefficientom znachenie etogo registra perevoditsya v bazovye edinicy, i, esli etot registr ispol'zuetsya v komandah, trebuyushchih chislennyh argu- mentov, mozhet potrebovat'sya ukazanie masshtabnogo koeffici- enta ``u'' vo izbezhanie dopolnitel'nogo oshibochnogo masshta- birovaniya po umolchaniyu. Dopustim, registr byl opredelen komandoj .nr AA 40n togda, esli ukazat' .ll \n(AA to dlina stroki budet vzyata iz registra AA (gde ona hra- nitsya v bazovyh edinicah) i umnozhena na koefficient ``En'' (po umolchaniyu). CHtoby izbezhat' oshibki nuzhno ukazat' sledu- yushchim obrazom .ll \n(AAu CHislo N mozhet ukazyvat'sya v forme desyatichnoj drobi, no pri zapominanii ono okruglyaetsya do celogo chisla bazovyh edinic. Dlya polucheniya rasstoyaniya ot tekushchego mesta do verti- kal'noj ili gorizontal'noj pozicii N mozhno ispol'zovat' indikator absolyutnogo polozheniya ``|'', kotoryj ukazyvaetsya pered chislom. Dlya vertikal'no-orientirovannyh komand i funkcij |N stanovitsya rasstoyaniem ot tekushchego mesta do vertikal'noj pozicii N, a dlya vseh ostal'nyh komand i funkcij |N stanovitsya rasstoyaniem ot tekushchej gorizontal'- noj pozicii na stroke vyvoda do gorizontal'noj pozicii N. Naprimer, v rezul'tate vypolneniya komandy 11 APK.00322-01 33 01-15 .sp |3.2c poluchitsya sdvig na poziciyu, raspolozhennuyu na 3,2 santimet- ra ot verhnego kraya stranicy. 2.4. CHislennye vyrazheniya Vezde, gde predpolagaetsya vvod chislovyh dannyh, mozhno ispol'zovat' vyrazheniya, soderzhashchie skobki, arifmeticheskie operatory +, -, /, *, % i logicheskie operatory <, >, <=, >=, =/ ili ==/, &/ i /, :/ ili /. Vychislenie vyrazhenij vy- polnyaetsya sleva napravo za isklyucheniem vyrazhenij, gde po- ryadok vypolneniya operacij zavisit ot nalichiya skobok. Dlya nekotoryh komand pervyj simvol + ili - otdelyaetsya i in- terpretiruetsya sootvetstvenno kak indikator uvelicheniya ili umen'sheniya. 2.5. Sistema oboznachenij CHislovye parametry zapisyvayutsya dvumya sposobami. Zapis' _N oznachaet, chto argument mozhet imet' vid N, +N, -N i, chto sootvetstvuyushchee dejstvie sostoit v zadanii nuzhnomu parametru znacheniya N, uvelichenii ego na N ili umen'shenii na N, sootvetstvenno. Prostaya zapis' N oznachaet, chto na- chal'nyj algebraicheskij znak ne yavlyaetsya indikatorom prira- shcheniya, a prosto znakom N. Obychno nepriemlemye chislovye vhodnye dannye libo ignoriruyutsya, libo usekayutsya do priem- lemyh znachenij. Naprimer, bol'shinstvo komand predpolagayut zadanie parametram neotricatel'nyh znachenij; k isklyucheniyam 12 APK.00322-01 33 01-15 otnosyatsya komandy sp, wh, sn, nr i if. Komandy ft, vs, ls, ll, in i lt pri otsutstvii argumenta vosstanavlivayut pre- dydushchee znachenie parametra. Argumenty, soderzhashchie odin simvol, oboznachayutsya v vide odnoj strochnoj bukvy, a argumenty iz odnogo ili dvuh simvolov oboznachayutsya v vide dvuh strochnyh bukv. Argumen- ty, predstavlyayushchie soboj cepochku simvolov, oboznachayut us- lovnymi sokrashcheniyami iz neskol'kih simvolov. Pri opisanii komand v kolonke primechanij ispol'zuyutsya sleduyushchie oboznacheniya: B - Komanda obychno vyzyvaet preryvanie; D - Rezhim ili sootvetstvuyushchie parametry otnosyatsya k tekushchemu urovnyu otvedeniya v makro; E - Sootvetstvuyushchie parametry yavlyayutsya chast'yu sovo- kupnosti parametrov, opredelyayushchih tekushchee okru- zhenie; O - Dolzhen dejstvovat' do logicheskogo vyvoda; P - Rezhim dolzhen prodolzhat' dejstvovat' ili byt' snova podklyuchen vo vremya fizicheskogo vyvoda. v,p,n,u - Masshtabnyj ukazatel' po umolchaniyu. Esli on ne zadan, to masshtabnye ukazateli ignoriruyutsya. 13 APK.00322-01 33 01-15 3. UPRAVLENIE STRANICAMI Polya v verhnej i nizhnej chasti stranicy (verhnij i nizhnij tituly) avtomaticheski ne formiruyutsya. Dlya etogo ne- obhodimo opredelit' dve makrokomandy i ustanavit' dlya nih "lovushki" v vertikal'nyh poziciyah (Sm. podrazd. 7.5). |to: 0 (verhnij kraj stranicy) i -N (N ot nizhnego kraya). Perehod ot pervoj psevdostranicy k pervoj stranice osushchestvlyaetsya libo, kogda proishodit pervyj obryv zapol- neniya, libo, kogda proishodit obrabotka pervogo ne otve- dennogo v makro teksta (Sm. podrazd. 7.4). Ustanovka preryvanij, kotorye budut proishodit' pri dostizhenii "lovushki" v verhnem pole pervoj stranicy, dolzhna byt' zakonchena do etogo perehoda. Dlya upravleniya stranicej pol'zuyutsya sleduyushchimi koman- dami: pl - ustanovit' dlinu stranicy. Forma vyzova komandy pl - .pl _N, nachal'noe znachenie - 66, net argu- mentov -66, primechanie - V. Dlina stranicy usta- navlivaetsya ravnoj _N. Tekushchaya dlina stranicy hranitsya v registre .r; bp - nachat' novuyu stranicu. Forma vyzova komandy bp - .bp _N, nachal'noe znachenie - 1, net argumentov - net, primechanie - B, V. Tekushchaya stranica vyvo- 14 APK.00322-01 33 01-15 ditsya i nachinaetsya novaya stranica. Esli _N zada- no, to nomerom novoj stranicy budet _N; pn - prisvoit' nomer sleduyushchej stranice. Forma vyzova komandy pn - .pn _N, nachal'noe znachenie - 1, net argumentov - ignoriruetsya. Sleduyushchaya stranica, esli ona poyavitsya, budet imet' nomer _N. CHtoby mozhno bylo prisvoit' nomer pervoj stranice, ko- manda pn dolzhna vstretit'sya do nachal'nogo pere- hoda ot psevdo-stranicy k stranice. Nomer teku- shchej stranicy nahoditsya v registre %; ne - trebuetsya mesto po vertikali. Forma vyzova ko- mandy ne - .ne _N, nachal'noe znachenie - net, net argumentov - 1v, primechanie - D, V. Esli rassto- yanie D do sleduyushchej pozicii "lovushki" men'she N, to budet propushcheno rasstoyanie D, a zatem pro- izojdet preryvanie. Esli na ostavshejsya chasti stranicy net "lovushek", to D - rasstoyanie do nizhnego kraya stranicy. Esli D<V, to vyvod eshche odnoj stroki vse zhe vozmozhen i vyzovet preryva- nie. Dlya "otvedeniya" D - eto rasstoyanie do "lo- vushki" otvedennogo teksta, esli ona voobshche ime- etsya, libo ochen' bol'shoe chislo, esli "lovushki" net; mk - zapomnit' vertikal'nuyu poziciyu. Forma vyzova ko- mandy mk - .mk R, nachal'noe znachenie - net, net argumentov - vnutrennij, primechanie - D. Zasyla- 15 APK.00322-01 33 01-15 et mesto tekushchej vertikal'noj pozicii vo vnut- rennij registr ili, esli ukazan R, to v registr R; rt - vernut'sya k vertikal'noj pozicii. Forma vyzova komandy rt - .rt _N, nachal'noe znachenie -net, net argumentov - vnutrennij, primechanie - D, V. Osushchestvlyaet vozvrat tol'ko vverh k pomechennoj vertikal'noj pozicii v tekushchem otvedennom tekste. Esli parametr _N, otnosyashchijsya k tekushchej pozicii, zadan, to eta poziciya nahoditsya na rasstoyanii _N ot verhnego kraya stranicy ili ot- vedennogo teksta. Esli N otsutstvuet, proishodit vozvrat k mestu, otmechennomu predydushchej komandoj mk. Sleduet imet' v vidu, chto vmesto komandy .rt v lyubyh sluchayah mozhet byt' ispol'zovana komanda .sp (sm. razd.5) zadaniem promezhutka do absolyut- nogo mesta, uchtennogo v registre, yavno ukazannom v komande .mk, to est' pri pomoshchi posledovatel'- nosti .mk R ...... ...... .sp |\n(Ru 16 APK.00322-01 33 01-15 4. FORMIROVANIE, VYRAVNIVANIE I CENTRIROVANIE TEKSTA 4.1. Formirovanie i vyravnivanie Obychno slova nabirayutsya iz strok vhodnogo teksta i sobirayutsya v stroku vyhodnogo teksta do teh por, poka dlya kakogo-to slova ne budet hvatat' mesta. Togda delaetsya po- pytka perenesti slovo dlya togo, chtoby pomestit' v vyhodnoj stroke ego chast'. Zatem mezhslovnye intervaly v vyhodnoj stroke uvelichivayutsya dlya togo, chtoby "rastyanut'" stroku do tekushchej dliny stroki bez ucheta tekushchego otstupa. Slovom yavlyaetsya lyubaya cepochka simvolov, otdelennaya simvolami pro- bela ili priznakom nachala/konca vhodnoj stroki. Lyubye smezhnye dva slova, kotorye dolzhny hranit'sya vmeste (t.e. ne dolzhny perenosit'sya na druguyu vyhodnuyu stroku i ne ot- dalyat'sya drug ot druga v processe vyravnivaniya), mogut byt' soedineny vmeste s pomoshch'yu razdeleniya ih simvolom ne- zapolnyaemogo probela ``\'' (obratnaya kosaya cherta i pro- bel). V pif mezhslovnye promezhutki ne odinakovy iz-za ma- len'koj razreshayushchej sposobnosti ustrojstv po shirine simvo- lov. Odnako ispol'zovanie parametra -e komandnoj stroki daet vozmozhnost' poluchit' postoyannyj interval s polnoj razreshayushchej sposobnost'yu ustrojstva vyvoda. Formirovaniem, vyravnivaniem i perenosom slov na druguyu stroku mozhno up- ravlyat' ili voobshche otmenit' ih. Dlina teksta poslednej vy- hodnoj stroki hranitsya v registre .n, a poziciya linii 17 APK.00322-01 33 01-15 shrifta (osnovaniya stroki) teksta na stranice hranitsya v registre nl. Mesto bazisnoj linii poslednej stroki teksta na tekushchej stranice (samoj nizhnej pozicii) nahoditsya v re- gistre .h. Neskol'ko probelov mezhdu slovami, obnaruzhennye v is- hodnom tekste, sohranyayutsya za isklyucheniem koncevyh probe- lov. Nachal'nye probely (v nachale vhodnoj stroki) vyzyvayut preryvanie zapolneniya vyhodnoj stroki. CHtoby vyzvat' pre- ryvanie zapolneniya posle opredelennogo slova i poluchit' vyhodnuyu stroku, rastyanutuyu do tekushchej dliny stroki, pri zapolnenii stroki mozhno vstavit' v slovo ili prisoedinit' k nemu posledovatel'nost' \r. Stroka ishodnogo teksta, kotoraya nachinaetsya s uprav- lyayushchego simvola, ne budet rassmatrivat'sya kak upravlyayushchaya stroka, esli pered nej ukazat' nepechataemyj priznak zapol- neniya \&. 4.2. Preryvanie teksta Dve stroki ishodnogo teksta v rezhime "nezapolneniya" mozhno "skleit'" v rezul'tiruyushchem tekste, zakonchiv pervuyu stroku posledovatel'nost'yu \s. Analogichnym obrazom, slova vnutri "zapolnyaemogo" teksta mozhno "skleit'", esli slovo (ili stroku) takzhe zakonchit' posledovatel'nost'yu \s. Pos- leduyushchij tekst budet vosprinyat kak prodolzhenie teksta, okanchivayushchegosya etim slovom. Esli v tekste (mezhdu \c i posleduyushchim slovom (ili strokoj)) vstretilis' upravlyayushchie 18 APK.00322-01 33 01-15 stroki, vyzyvayushchie preryvanie zapolneniya, to "skleivaniya" ne proizojdet, i nakoplennye stroki budut vydany v vyhod- noj tekst. Dlya formirovaniya i vyravnivaniya strok ispol'zu- yutsya sleduyushchie komandy: br - prekratit' zapolnenie stroki. Forma vyzova ko- mandy br - .br, nachal'noe znachenie - net, net argumentov - net, primechanie - B. Zapolnenie formiruemoj v dannyj moment stroki prekrashchaetsya i stroka vyvoditsya bez vyravnivaniya. Stroki teksta, nachinayushchiesya s probelov, i pustye stroki teksta takzhe vyzyvayut preryvanie; fi - vklyuchit' rezhim zapolneniya. Forma vyzova komandy fi - .fi, nachal'noe znachenie - vklyuchit', net ar- gumentov - net, primechanie - B, E. Posleduyushchie stroki budut obrabatyvat'sya avtomaticheski s vy- ravnivaniem. Registr .u soderzhit 1 esli rezhim zapolneniya vklyuchen i 0 esli vyklyuchen; nf - vyklyuchit' rezhim zapolneniya. Forma vyzova komandy nf - .nf, nachal'noe znachenie - vklyuchit', net ar- gumentov - net, primechanie - B, E. Posleduyushchie stroki ishodnogo teksta ne budut obrabatyvat'sya i kopiruyutsya neposredstvenno v stroki vyhodnogo teksta bez ucheta tekushchego znacheniya dliny stroki; ad - ustanovit' tip vyravnivaniya. Forma vyzova koman- dy ad - .ad c, nachal'noe znachenie - oba, net ar- gumentov - vyravnivanie, primechanie - E. Vklyu- 19 APK.00322-01 33 01-15 chit' vyravnivanie strok. Esli rezhim zapolneniya teksta vyklyuchen, to vyravnivanie budet otlozheno do teh por, poka on opyat' ne budet vklyuchen. Esli prisutstvuet ukazatel' tipa s, to tip vyravniva- niya izmenyaetsya v sootvetstvii s tabl. 2. Tablica 2 ---------------------------------------- | ukazatel' | tip vyravnivaniya | |-------------|------------------------| | l | tol'ko po levomu krayu | | r | tol'ko po pravomu krayu | | s | po centru | | b ili n | po oboim krayam | | otsutstvuet | ne izmenyaetsya | ---------------------------------------- na - otklyuchit' vyravnivanie strok. Forma vyzova ko- mandy na - .na, nachal'noe znachenie - net, net argumentov - net, primechanie - E. Otmenit' rezhim s vyravnivaniem. Pri zapolnenii stroki vyravni- vanie ne delaetsya. Tip vyravnivaniya dlya komandy ad ne menyaetsya. Esli rezhim zapolneniya vklyuchen, to zapolnenie vyhodnoj stroki vse zhe proishodit; ce - otcentrovat' sleduyushchie N vhodnyh strok. Forma vyzova komandy ce - .ce N, nachal'noe znachenie - net, net argumetov - 1, primechanie - E. Raspolo- zhit' po centru sleduyushchie N strok ishodnogo teksta v predelah tekushchego razmera teksta (dlina 20 APK.00322-01 33 01-15 stroki minus otstup). Esli N=0 schetchik ostavshih- sya dlya centrirovaniya strok obnulyaetsya (vyklyucha- etsya rezhim centrirovaniya). Esli vhodnaya stroka yavlyaetsya slishkom dlinnoj, ona budet vyrovnena sleva. 21 APK.00322-01 33 01-15 5. VERTIKALXNYE RAZMERY 5.1. Interval mezhdu strokami Interval po vertikali (V) mezhdu osnovaniyami vseh pos- leduyushchih strok vyhodnogo teksta mozhno zadat' s pomoshch'yu ko- mandy vs, pri etom maksimal'naya razreshayushchaya sposobnost' opredelyaetsya tipom ustrojstva vyvoda. Ispol'zuemaya v dannyj moment velichina mezhstrochnogo intervala V hranitsya v registre .v. Vozmozhno takzhe poluchenie uvelichennogo (napri- mer, udvoennogo) mezhstrochnogo intervala putem ispol'zova- niya komandy ls. 5.2. Dopolnitel'noe mezhstrochnoe rasstoyanie Imeetsya vozmozhnost' zadat' dopolnitel'noe vremennoe (na odnu vyhodnuyu stroku) mezhstrochnoe rasstoyanie. Dlya eto- go ispol'zuyut funkciyu \x'N', kotoraya vstraivaetsya v neob- hodimoe slovo ili pristraivaetsya k nemu. V dannoj funkcii, kak i v drugih funkciyah, parametr kotoroj zaklyuchen mezhdu simvolami-ogranichitelyami (zdes' simvol '), mogut ispol'zo- vat'sya proizvol'nye ogranichiteli. Esli N otricatel'no, to budet vertikal'nyj progon na velichinu N pered strokoj. Esli N polozhitel'no, to verti- kal'nyj progon na velichinu N budet posle stroki. Esli ne- skol'ko sleduyushchih drug za drugom ukazatelej dopolnitel'no- go mezhstrochnogo rasstoyaniya otnosyatsya k odnoj i toj zhe vy- 22 APK.00322-01 33 01-15 hodnoj stroke, to budet ispol'zovana maksimal'naya velichi- na. Velichina ispol'zovannogo v poslednij raz dopolnitel'- nogo mezhstrochnogo rasstoyaniya hranitsya v registre .a. 5.3. Bloki vertikal'nyh promezhutkov Blok pustyh strok obychno formiruetsya s pomoshch'yu koman- dy sp, pri etom dejstvuet rezhim "bez progonov", esli on vklyuchen. Esli vnutri trebuemogo vertikal'nogo prostranstva imeetsya "lovushka", to prostranstvo posle nee ne formiruet- sya. Sploshnoj blok pustyh strok mozhno sohranit', ispol'zuya komandu sv. Dlya opredeleniya vertikal'nyh razmerov ispol'- zuyutsya sleduyushchie komandy: vs - ustanovit' interval mezhdu strokami. Forma vyzova komandy vs - .vs N, nachal'- noe znachenie - 1/6i., net argumentov - predydushchee, primechanie - E, R. Ustano- vit' interval mezhdu strokami V (ot linii shrifta odnoj stroki do linii shrifta dru- goj). Vremennyj dopolnitel'nyj interval po vertikali ustanavlivaetsya s pomoshch'yu funkcii \h'n'; ls - ustanovit' mezhstrochnoe rasstoyanie. Forma vyzova komandy ls - .ls _N, nachal'noe znachenie - N=1, net argumentov - predy- dushchee, primechanie - E. Mezhstrochnoe rasstoyanie (ot niza odnoj stroki do niza 23 APK.00322-01 33 01-15 drugoj) ustanavlivaetsya v _N. N-1 dopol- nitel'nyh intervalov dlinoj V (pustyh strok) dobavlyaetsya k kazhdoj stroke vy- hodnogo teksta. Dopolnitel'nye pustye stroki ne dobavlyayutsya, esli tekst ili ranee dobavlennaya pustaya stroka dostiga- et pozicii "lovushki"; sp - progon po vertikali na velichinu N v lyubom napravlenii. Forma vyzova komandy sp - .sp N, nachal'noe znachenie - net, net argumentov - N=1V, primechanie - B,V. Esli N otricatel'no, proishodit dvizhenie nazad (vverh) i ogranichivaetsya rassto- yaniem do verha stranicy. Dvizhenie vpered (vniz) ogranichivaetsya rasstoyaniem do blizhajshej "lovushki". Esli dejstvuet rezhim "bez progonov", nikakih promezhut- kov ne poyavitsya; sv - sohranit' vertikal'nyj promezhutok. Forma vyzova komandy sv - .sv N, nachal'noe znachenie - net, net argumenov - N=1V, primechanie - V. Sohranit' blok pustyh strok razmera N. Esli rasstoyanie do sle- duyushchej "lovushki" bol'she N, osushchestvlyaet- sya progon na velichinu N v vyhodnom tekste. Rezhim "bez progonov" na etu ko- mandu ne dejstvuet. Esli rasstoyanie do 24 APK.00322-01 33 01-15 sleduyushchej "lovushki" men'she N, to progon ne osushchestvlyaetsya srazu, no N zapomina- etsya dlya posleduyushchego ispol'zovaniya (ko- mandoj os). Pri posleduyushchih komandah sv zapominaemaya ranee velichina N budet ob- novlyat'sya; os - vvesti sohranennyj vertikal'nyj promezhu- tok. Forma vyzova komandy os - .os, na- chal'noe znachenie - net, net argumentov - net, primechanie - net. Osushchestvit' pro- gon, velichina kotorogo byla ustanovlena po komande .sv. Rezhim "bez progonov" na etu komandu ne dejstvuet. Obychno ispol'- zuetsya dlya vyvoda v nuzhnom meste pustogo mesta, zaproshennogo v predshestvuyushchej ko- mande sv; ns - vklyuchit' rezhim "bez progonov". Forma vy- zova komandy ns - .ns, nachal'noe znache- nie - vyklyuchit', net argumentov - net, primechanie - D. Pri etom ignoriruyutsya komandy sp i bp, bez nomera sleduyushchej stranicy. Rezhim "bez progonov" otmenyaet- sya pri poyavlenii stroki vyvoda ili po komande rs; rs - vyklyuchit' rezhim "bez progonov". Forma vyzova komandy rs - .rs, nachal'noe zna- 25 APK.00322-01 33 01-15 chenie - vyklyuchit', net argumentov - net, primechanie - D. Razreshit' progony. Rezhim "bez progonov" vyklyuchaetsya; pustaya stroka - to zhe samoe, chto i .sp 1. Forma vyzova komandy "pustaya stroka" - pustaya stroka, nachal'noe znachenie - net, net argumentov - net, primechanie - B. Vyzyvaet preryva- nie zapolneniya i vyvodit pustuyu stroku tak zhe, kak i komanda .sp 1. 26 APK.00322-01 33 01-15 6. DLINA STROK I OTSTUPY Maksimal'naya dlina stroki pri vklyuchennom rezhime za- polneniya mozhet byt' ustanovlena s pomoshch'yu komandy ll. Velichina otstupa mozhet byt' ustanovlena ispol'zovaniem ko- mandy in; otstup, dejstvuyushchij tol'ko na sleduyushchuyu stroku vyhodnogo teksta, mozhno ustanovit' komandoj ti. Dlina stroki vklyuchaet abzacnyj otstup. Dlina stroki za vychetom otstupa yavlyaetsya bazovoj velichinoj pri centrirovanii teksta po komande .se. Pri nalichii chastichno sobrannoj stroki dejstvie komand ll, in ili ti (v sluchae vyzova ih s upravlyayushchim simvolom, ne vyzyvayushchim obryva) zaderzhivaetsya do teh por, poka eta stroka ne budet vyvedena. V rezhime zapolneniya dlina teksta v vyhodnoj stroke men'she ili ravna dline stroki minus otstup. Tekushchie znacheniya dliny stroki i otstupa hranyatsya sootvetstvenno v registrah .l i .i. Dlina zagolovkov, sostoyashchih iz treh chastej, poluchaemyh pri is- pol'zovanii komandy tl, ustanavlivaetsya nezavisimo s po- moshch'yu komandy lt. Ispol'zutsya sleduyushchie komandy ustanovki dliny stroki i formirovaniya otstupa: ll - ustanovit' dlinu stroki. Forma vyzova komandy ll - .ll _N, nachal'noe znachenie - 65n, net argumen- tov - predydushchee, primechanie - E,n. Dlina stroki ustanavlivaetsya ravnoj _N; 27 APK.00322-01 33 01-15 in - ustanovit' postoyannyj otstup. Forma vyzova ko- mandy in - .in _N, nachal'noe znachenie - N=0, net argumentov - predydushchee, primechanie - B,E,n. Otstup ustanavlivaetsya ravnym _N. Otstup pred- shestvuet kazhdoj vyhodnoj stroke do teh por, poka ne budet izmenen; ti - ustanovit' vremennyj otstup. Forma vyzova koman- dy ti - .ti _N, nachal'noe znachenie - net, net argumentov - ignoriruetsya, primechanie - B,E,n. Ustanavlivaetsya vremennyj otstup. Sleduyushchaya stroka vyhodnogo teksta budet imet' otstup _N po otnosheniyu k tekushchemu otstupu. Poluchayushchijsya sum- marnyj otstup ne mozhet byt' otricatel'nym. Teku- shchij otstup ne izmenyaetsya. 28 APK.00322-01 33 01-15 7. MAKROKOMANDY, CEPOCHKI, OTVEDENIYA I "LOVUSHKI" 7.1. Makrokomandy i cepochki Makrokomanda (makro) - eto imeyushchaya opredelennoe imya posledovatel'nost' proizvol'nyh strok, kotoruyu mozhno vyzvat' po imeni ili s pomoshch'yu mehanizma zahvata ("lovush- ki"). Cepochka - eto imeyushchaya opredelennoe imya posledova- tel'nost' simvolov, ne vklyuchayushchaya simvol novoj stroki, ko- toruyu s pomoshch'yu imeni mozhno vstavit' v lyuboe mesto teksta. Imena komand, makro i cepochek hranyatsya v odnom spiske imen. Imena makro i cepochek mogut soderzhat' odin ili dva simvola i mogut sovpadat' s imenami komand, makro ili ce- pochek, opredelennyh ranee (v etom sluchae prezhnij variant ob'ekta s etim imenem ignoriruetsya). Imena makro ili cepo- chek ne mogut soderzhat' russkie bukvy. Lyuboj iz etih ob'ek- tov mozhet byt' pereimenovan s pomoshch'yu komandy .rn ili isklyuchen s pomoshch'yu komandy .rm. Makro sozdayutsya po koman- dam de i di, a dlya vneseniya k nim dobavlenij ispol'zuyutsya komandy am i da. V rezul'tate komand di i da normal'nyj vyhodnoj tekst dolzhen byt' zapisan v makrokomandu. Cepochki sozdayutsya po komande ds a dlya dobavleniya k nim ispol'zuet- sya komanda as. Makro vyzyvaetsya takim zhe obrazom, kak i komanda; upravlyayushchaya stroka, nachinayushchayasya s .hh budet vstavlyat' v tekst soderzhimoe makro hh. Posleduyushchaya chast' upravlyayushchej stroki mozhet soderzhat' do devyati argumentov. 29 APK.00322-01 33 01-15 Cepochki h i hh vstavlyayutsya v lyuboe nuzhnoe mesto teksta posredstvom funkcij \*h i \*(hh sootvetstvenno. Ssylki na cepochki i vyzovy makro mogut byt' vlozhennymi. 7.2. Interpretaciya vvoda v rezhime kopirovaniya V processe opredeleniya i rasshireniya cepochek i makro (no ne v sluchae otvedeniya) ishodnyj tekst schityvaetsya v rezhime kopirovaniya. Vhodnoj tekst kopiruetsya bez interpre- tacii za isklyucheniem sleduyushchih sluchaev, kogda: - soderzhimoe chislovyh registrov vstavlyaetsya s pomoshch'yu funkcii \n; - vstavlyayutsya cepochki, ukazannye funkciej \*; - vstavlyayutsya argumenty, ukazannye funkciej \$; - isklyuchayutsya skrytye simvoly novoj stroki, ukazannye funkciej \(simvol novoj stroki); - isklyuchayutsya kommentarii, ukazannye funkciej \"; - posledovatel'nosti \t i \a sootvetstvenno interpretiru- yutsya kak ASCII simvoly HT (gorizontal'naya tabulyaciya) i SOH (nachalo zagolovka); - \\ interpretiruetsya kak \; - \. interpretiruetsya kak ".". 30 APK.00322-01 33 01-15 |ti interpretacii mogut byt' otmeneny dobavleniem pered sootvetstvuyushchej funkciej obratnoj kosoj cherty \. Naprimer, tak kak \\ otobrazhaetsya v \, to \\n budet kopi- rovat'sya kak \n, chto pri posleduyushchem schityvanii makro ili cepochki budet interpretirovat'sya kak ukazatel' chislovogo registra. 7.3. Argumenty Vo vremya vyzova makrokomandy po imeni predpolagaetsya, chto ostavshayasya chast' stroki mozhet soderzhat' do devyati ar- gumentov. Razdelitelem argumentov yavlyaetsya simvol probela i argumenty, soderzhashchie simvoly probela, dolzhny byt' zak- lyucheny v dvojnye kavychki ("). CHtoby vvesti v argument, zaklyuchennyj v dvojnye kavychki, simvol dvojnoj kavychki, nuzhno v etom meste vvesti paru dvojnyh kavychek (""). Esli nuzhnye argumenty ne pomeshchayutsya v stroke, to dlya prodolzhe- niya zapisi na sleduyushchej stroke mozhno ispol'zovat' simvol skrytoj novoj stroki (\(simvol novoj stroki)). Pri vyzove makrokomandy uroven' vvoda zanositsya v stek i lyubye argumenty dostupnye na predydushchem urovne sta- novyatsya nedostupnymi do teh por, poka makrokomanda ne budet polnost'yu vypolnena i ne budet vosstanovlen predydu- shchij uroven'. Sobstvennye argumenty makrokomandy mozhno vstavit' v lyuboe mesto vnutri makro s pomoshch'yu funkcii \$N, na mesto kotoroj vstavlyaetsya znachenie N-go argumenta 31 APK.00322-01 33 01-15 (1<=N<=9). Esli vyzvannyj argument ne sushchestvuet, to re- zul'tatom budet nulevaya cepochka. Naprimer, makrokomandu xx mozhno opredelit' sleduyushchim obrazom: .de xx \"nachalo opredeleniya Segodnya \\$1,\\$2. .. \"konec opredeleniya i vyzvat': .hh Ponedel'nik 14-e chtoby poluchit' vyhodnoj tekst Segodnya Ponedel'nik,14-e. Zametim, chto argument byl zamaskirovan v makro s pomoshch'yu dopolnitel'noj obratnoj kosoj cherty. Kolichestvo imeyushchihsya v dannyj moment argumentov nahoditsya v registre .$. V dannoj realizacii na verhnem urovne (ne makro) nikakih ar- gumentov net. Tak kak ssylki na cepochki realizovany v vide makrovyzova nulevogo urovnya (urovnya vvoda), vnutri cepochki ne mozhet byt' nikakih argumentov. Makro, vyzyvaemye po dostizhenii pozicii "lovushki", takzhe ne mogut soderzhat' ni- kakih argumentov. Argumenty zapisyvayutsya v rezhime kopirovaniya v stek, otkuda oni mogut byt' izvlecheny. Takoj mehanizm ne pozvo- lyaet ispol'zovat' v argumentah pryamye ssylki na dlinnye cepochki (vstavlennye vo vremya kopirovaniya argumenta) i, poetomu, rekomenduetsya skryvat' ssylki na cepochki (s po- moshch'yu dopolnitel'nogo simvola ``\'') dlya togo chtoby otlo- zhit' podstanovku cepochki do momenta ssylki na dannyj argu- ment. 32 APK.00322-01 33 01-15 7.4. Otvedeniya Obrabotannyj vyhodnoj tekst mozhno otvesti v makro, naprimer dlya obrabotki snoski ili opredeleniya razmera po gorizontali i vertikali nekotorogo teksta dlya izmeneniya stranic ili kolonok v sootvetstvii s opredelennymi uslovi- yami. V otvedenii mozhno ustanovit' edinstvennuyu lovushku po opredelennoj vertikal'noj pozicii. V chislovyh registrah dn i dl soderzhatsya sootvetstvenno vertikal'nyj i gorizontal'- nyj razmery poslednego otvedeniya. Pri posleduyushchem schityva- nii otvedennogo teksta v rezhime "bez zapolneniya" verti- kal'nyj razmer kazhdoj iz ego strok sohranyaetsya, nezavisimo ot tekushchego znacheniya intervala mezhdu strokami (V). Tekst, pri otvedenii kotorogo byla ustanovlena postoyannaya razryad- ka, ili tekst s vydelennymi simvolami, mozhet byt' pravil'- no schitan tol'ko v tom sluchae, esli eti rezhimy budut snova zadejstvovany vo vremya posleduyushchego schityvaniya. Odnim iz sposobov dostizheniya etogo yavlyaetsya vstraivanie v tekst ot- vedeniya sootvetstvuyushchih komand s pomoshch'yu "mehanizma proz- rachnogo vyvoda" (Sm. podrazd.10.4). Otvedennye v makro teksty mogut byt' vlozheny drug v druga, i nekotorye parametry i registry svyazany s tekushchim urovnem otvedeniya (verhnij, ne otnosyashchijsya k otvedeniyu, uroven' mozhno schitat' nulevym urovnem otvedeniya). K nim (parametram i registram) otnosyatsya: "lovushka" po otvedeniyu i sootvetstvuyushchee ej makro, rezhim "bez progonov", sohranya- emaya vo vnutrennem registre otmechennaya vertikal'naya pozi- 33 APK.00322-01 33 01-15 ciya (sm. razd. 3), tekushchaya vertikal'naya poziciya (registr gistr .h) i imya tekushchego otvedeniya (registr .z). 7.5. "Lovushki" Sushchestvuet tri tipa "lovushek": lovushki po mestu na stranice, lovushki po mestu v otvedenii i lovushki po chislu vhodnyh strok. Lovushki dlya vyzova makrokomandy mozhno po- mestit', ispol'zuya komandu wh, v lyubuyu poziciyu stranicy, vklyuchaya verhnij kraj. Poziciyu takoj lovushki mozhno izmenit' s pomoshch'yu zaprosa ch. Lovushki, pozicii kotoryh raspolozheny na osnovanii stranicy ili nizhe, ne dejstvuyut do teh por, poka oni ne budut smeshcheny vnutr' stranicy ili ne budet uvelichen razmer stranicy. Dve lovushki mogut okazat'sya na odnoj pozicii tol'ko v rezul'tate pervonachal'nogo pomeshche- niya ih v raznye pozicii i posleduyushchego peremeshcheniya odnoj iz nih; pervaya iz dvuh lovushek, pomeshchennyh v odnu i tu zhe poziciyu budet "skryvat'" vtoruyu, do teh por, poka ona ne peremestitsya. Esli pervaya lovushka vozvrashchaetsya obratno, ona snova "skryvaet" vtoruyu lovushku. Makrokomanda, svyazan- naya s lovushkoj po mestu na stranice, vyzyvaetsya avtomati- cheski kak tol'ko vyvodimaya stroka teksta perekryvaet kakuyu-nibud' lovushku (to est' poziciya lovushki popadaet v ocherednoj vertikal'nyj interval). Pri dostizhenii osnovaniya (niza) stranicy proishodit pereklyuchenie na lovushku po na- chalu (verhnej chasti) stranicy, esli voobshche sushchestvuet ta- kaya lovushka. Rasstoyanie do pozicii sleduyushchej lovushki hra- nitsya v registre .t. Esli mezhdu tekushchej poziciej i osnova- 34 APK.00322-01 33 01-15 niem stranicy lovushek net, to soderzhimoe registra .t ravno rasstoyaniyu do osnovaniya stranicy. Makrovyzov po lovushke, dejstvuyushchej v tekushchem otvede- nii, mozhno ustanovit' s pomoshch'yu komandy dt. Registr .t takzhe ispol'zuetsya v sluchae otvedeniya teksta v makro. Esli ne imeetsya posleduyushchih lovushek, to v registr zasylaetsya dostatochno bol'shoe chislo. Opisanie lovushki po kolichestvu vhodnyh strok privoditsya nizhe v poyasneniyah k komande it. Ispol'zuyutsya sleduyushchie komandy "lovushek": de - opredelit' ili pereopredelit' makroopredelenie Forma vyzova komandy de - .de xx yy, nachal'noe znachenie - net, net argumentov - .yy=.., prime- chanie - net. Opredelit' ili pereopredelit' makro xx. Tekst makro nachinaetsya so sleduyushchej stroki vhodnogo teksta. Stroki vhodnogo teksta zapisy- vyutsya v rabochij fajl v rezhime kopirovaniya do teh por, poka v opredelenii makro ne vstretitsya stroka, nachinayushchayasya s .yy, kotoraya vyzyvaet makro yy. Esli argument yy otsutstvuet, oprede- lenie makro zakanchivaetsya strokoj, nachinayushchejsya s "..". Makro mozhet soderzhat' vlozhennye komandy de pri uslovii, chto imena makrokomand, zaversha- yushchih opredelenie, razlichny ili priznak konca op- redeleniya yavlyaetsya neyavnym. Priznak konca ".." mozhno zamaskirovat' s pomoshch'yu dopolnitel'nyh 35 APK.00322-01 33 01-15 simvolov ``\'' - \\.., kotorye pri zapisi vnesh- nego makroopredeleniya budut preobrazovany v \.. i pri posleduyushchem schityvanii v ".."; am - dobavit' k makrokomande. Forma vyzova komandy am - .am xx yy, nachal'noe znachenie - net, net argu- mentov - .yy=.., primechanie - net. Versiya koman- dy de dlya dobavleniya teksta v makro; ds - opredelit' cepochku. Forma vyzova komandy ds - .ds xx cepochka, nachal'noe znachenie - net, net argumentov - ignoriruetsya, primechanie - net. Opredelyaet cepochku xx, soderzhashchuyu "cepochku". Cepochka opredelena ot pervogo neprobel'nogo sim- vola posle ukazaniya imeni cepochki do konca stro- ki (ili nachala kommentariya). Simvol dvojnoj ka- vychki ( " ) pered "cepochkoj" ne zapisyvaetsya i sluzhit dlya razresheniya nachal'nyh probelov v "ce- pochke"; as - dobavit' k cepochke. Forma vyzova komandy as - .as xx cepochka, nachal'noe znachenie - net, net argumentov - ignoriruetsya, primechanie - net. Dobavlyaet "cepochku" k cepochke xx (versiya komandy ds dlya dobavleniya k cepochke); rm - udalit' komandu, makro ili cepochku. Forma vyzova komandy rm - .rm xx, nachal'noe znachenie - net, net argumentov - ignoriruetsya, primechanie - net. Imya xx udalyaetsya iz spiska imen i lyubaya, svyazan- 36 APK.00322-01 33 01-15 naya s nim oblast' pamyati, osvobozhdaetsya.