Makropaket -me Proizvodstvenno-vnedrencheskij kooperativ "I N T E R F E J S" Dialogovaya Edinaya Mobil'naya Operacionnaya Sistema Demos/P 2.1 Makropaket -me. (Spravochnoe rukovodstvo) Moskva 1988 |tot dokument soderzhit opisanie makropaketa -me dlya programm formatirovaniya dokumentov nroff/troff. Predpolaga- etsya, chto chitatel' znakom s etimi programmami, v chastnosti s ponyatiyami razryva formata, shrifta, punktorazmera, s priemami opredeleniya i ispol'zovaniya chislovyh registrov, strok i mak- rosov, a takzhe s zadaniem masshtabiruyushchih mnozhitelej pri chis- lovyh parametrah, pozvolyayushchih rabotat' v razlichnyh edinicah izmereniya, takih kak punkty, edinicy EN (shirina bukvy 'n'), vertikal'naya razryadka , i t.p. Bolee dostupnoe opisanie metodiki ispol'zovaniya -me soderzhitsya v dokumente "Podgotovka tekstov s pomoshch'yu prog- rammy nroff i makropaketa -me." V sisteme formatirovaniya dokumentov sushchestvuet nabor makroparametrov, znacheniya kotoryh dolzhny byt' pravil'no ustanovleny. Tak naprimer, nomeru shrifta dolzhen byt' pris- voeno odno iz dopustimyh znachenij. V nroff'e shrift 8 zadaet podcherkivanie teksta, a v troff'e ustanavlivaet zhirnyj shrift (v to zhe vremya shrift 3 , yavlyayushchijsya zhirnym shriftom v troff'e, ne vydelyaetsya podcherkivaniem v nroff'e). Ustanovka shrifta 0 voobshche ne vyzyvaet izmeneniya shrifta, vmesto nego ispol'zuetsya shrift ustanovlennyj v dannyj moment. Sleduet pomnit', chto shrifty 0 i 8 yavlyayutsya "psevdo-shriftami"; to est', ih ustanovka imitiruetsya s pomoshch'yu makrosov. |to oznachaet, chto hotya prisvaivanie registru shrifta znachenij 0 i 8 yavlyaetsya korrektnoj operaciej, vypolnenie ustanovki shrif- tov s etimi nomerami s pomoshch'yu pereklyuchayushchej posledovatel'- nosti, podobnoj: \f8 vyzovet oshibku. Vse rasstoyaniya predpolagayutsya zadannymi v bazovyh edi- nicah, poetomu masshtabiruyushchie mnozhiteli prihoditsya ukazyvat' prakticheski vsegda. Naprimer, zapros na ustanovku abzacnogo otstupa shirinoj 8 edinic EN imeet vid: .nr pi 8n a ne .nr pi 8 chto privedet k ustanovke otstupa shirinoj 8 bazovyh edinic, to est' shirinoj okolo 0.02 dyujma. Dalee vezde znacheniya parametrov, prisvaivaemye po umolchaniyu budut privoditsya v tekste v kvadratnyh skobkah. Registry i stroki vida $x mozhno ispol'zovat' v vyrazhe- niyah, no ih ne sleduet izmenyat'. Makrosy vida $x vypolnyayut opredelenye funkcii (opisannye nizhe) i mogut byt' - 1 - pereopredeleny dlya izmeneniya etih funkcij. Pereopredelenie mozhet povlech' za soboj nepredskazuemye effekty, poetomu predvaritel'no stoit prosmotret' telo original'nogo makrosa. Vse imena v -me podchineny zhestkomu soglasheniyu. Pol'zo- vatel' mozhet opredelyat' chislovye registry, stroki i makrosy, ispol'zuya dlya ih imenovaniya odnu zaglavnuyu latinskuyu bukvu ili dvuhsimvol'nye imena, sostoyashchie iz bukv i cifr, prichem odin iz dvuh simvolov obyazatel'no dolzhen byt' zaglavnoj buk- voj latinskogo alfavita. V protivnom sluchae v imenah sle- duet ispol'zovat' special'nye simvoly. Flag -rx1 mozhet byt' ispol'zovan dlya ustanovki rezhima pechati s intervalom shirinoj odna vos'maya dyujma, chto yavlyaetsya standartom dlya pechatayushchih ustrojstv nekotoryh tipov. Odnako etot interval obychno slishkom mal dlya horoshej razborchivosti teksta, poetomu po umolchaniyu ustanavlivaetsya mezhstrochnyj interval shirinoj 1/6 dyujma Nizhe, v tekste dokumenta oboznacheniya parametrov nekoto- ryh makrosov soderzhat znak +, naprimer: .sx +N. |to ozna- chaet, chto dannyj parametr yavlyaetsya chislovym i mozhet byt' ispol'zovan, kak so znakom (+ ili -) tak i bez nego. Ispol'- zovanie bez znaka, sootvetstvuet prisvaivaniyu absolyutnogo znacheniya, nekotoromu chislovomu registru, a so znakom, prira- shcheniyu znacheniya etogo registra (sootvetstvenno polozhitel'nomu ili otricatel'nomu). 1. Razbienie teksta na paragrafy Makrosy etogo razdela, ispol'zuyutsya dlya razbieniya teksta na paragrafy. Standartnym makrosom dlya zadaniya paragrafa yavlyaetsya .pp; ostal'nye ispol'zuyutsya dlya zadaniya paragrafov special'nyh vidov. Pervyj vyzov lyubogo makrosa iz etogo razdela ili vyzov makrosa .sh (sm. sleduyushchuyu glavu) inicializiruet makropro- cessor. Posle inicializacii nel'zya ispol'zovat' ni odin iz sleduyushchih zaprosov: .sc, .lo, .th, .ac. Krome togo posle inicializacii, neopredelen effekt ot izmeneniya parametrov, opredelyayushchih rezhim formatirovaniya stranicy (v osobennosti dliny stranicy i granic verhnego i nizhnego kolontitulov), poetomu podobnyh dejstvij sleduet izbegat'. .lp Nachat' paragraf vyrovnennyj po levomu krayu. Centrirovanie teksta na stranice i podcherki- vanie vyklyuchayutsya esli eti rezhimy byli usta- novleny, ustanavlivaetsya shrift \n(pf [1] raz- mer simvolov ustanavlivaetsya ravnym \n(pp [10p], pered paragrafom propuskaetsya interval shirinoj \n(ps [0.35v v troff'e, 1v ili 0.5v v nroff'e v zavisimosti ot razreshayushchej sposob- nosti ustrojstva]. Ves' paragraf sdvigaetsya - 2 - ot levogo kraya na velichinu \n($i [0] plyus \n(po [0] esli tol'ko pargraf ne razmeshchen vnutri nekotorogo bloka. (smotri .ba). Po krajnej mere dve pervye stroki paragrafa raz- meshchayutsya vmeste na odnom stranice. .pp Analogichen .lp, za isklyucheniem togo, chto delaet abzacnyj otstup velichinoj \n(pi [5n]. |to standartnyj makros dlya zadaniya paragrafa. .ip T I Smeshchennyj vpravo paragraf s podzagolovkom. Tekst etogo paragrafa smeshchen ot levogo kraya dopolnitel'no na I probelov (ili \n(ii [5n] probelov esli I ne zadano), po sravneniyu s nesmeshchennym paragrafom (takim kak naprimer .pp). Osnovnoj tekst paragrafa vyrovnen po svoemu levomu krayu, podzagolovok raspolaga- etsya T, v levoj chasti pervoj stroki parag- rafa. Esli podzagolovok T ne umeshchaetsya v levoj chasti pervoj stroki paragrafa (s uchetom ego dlinny i velichiny sdviga osnovnogo teksta paragrafa) .ip, to on pechataetsya na otdel'noj stroke pered pervoj strokoj teksta paragrafa. Vse probely v podzagolovke T dolzhny byt' nezapolnyaemymi. .jp T I Variant .ip, otlichayushchijsya ot nego tem, chto posle podzagolovka vstavlyaetsya znak -. Sme- shchenie ot levogo kraya hranitsya v registre \n(ji. .np Variant .ip, kotoryj numeruet paragrafy. Numeraciya nachinaetsya kazhdyj raz snachala posle vyzova makrosov .lp, .pp, ili .sh. Tekushchij nomer paragrafa hranitsya v \n($p. 2. Zagolovki razdelov Numerovannye razdely podobny paragrafam za isklyucheniem togo, chto nomer razdela avtomaticheski sozdaetsya dlya kazhdogo iz nih. Nomera razdelov imeyut vid 1.2.3. Vlozhennost' raz- dela opredelyaetsya kolichestvom chisel, razdelennyh desyatichnoj tochkoj, v nomere razdela. Nenumerovannye razdely pohozhi na numerovannye, za isk- lyucheniem togo, chto ego zagolovok ne svyazyvaetsya ni s kakim nomerom. .sh +N T a b c d e f Nachat' numerovannyj raz- del vlozhennosti N. Esli N otsutstvuet, pred- polagaetsya tekushchaya vlozhennost', znachenie kotoroj soderzhitsya v chislovom registre \n($0. Znacheniya velichin, sostavlyayushchih nomer razdela - 3 - soderzhatsya v registrah s imenami, nachinaya s \n($1 i konchaya \n($6. Pered nachalom razdela propuskaetsya interval shirinoj \n(ss [1v]. T pechataetsya v kachestve zagolovka razdela shrif- tom \n(sf [8] s razmerom simvolov \n(sp [10p]. K "Imeni" razdela mozhno poluchit' dos- tup cherez strochnyj registr \*($n. Esli \n(si ne ravno 0, bazovoe smeshchenie razdela ustanav- livaetsya ravnym \n(si umnozhennym na vlozhen- nost' razdela, zagolovok razdela pri etom raspolagaetsya s pozicii, sootvetstvuyushchej prezhdnemu bazovomu smeshcheniyu (Smotri .ba). Zagolovok razdela mozhno sdvinut' vpravo ot ustanovlennoj dlya nego granicy (nezavisimo ot teksta). |ta velichina opredelyaetsya znacheniem registra \n(so [0]. Posle pechati zagolovka ustanavlivaetsya shrift \n(pf. Esli nepos- redstvenno posle vyzova makrosa sh sleduet tekst, to on budet raspolozhen za zagolovkom razdela i v toj zhe samoj stroke. Ispol'zova- nie makrosa .sh garantiruet, chto zagolovok razdela i nachalo ego pervogo paragrafa, budut razmeshcheny na odnoj stranice (vsego okolo 3 strok). Esli zadany parametry ot a do f, to nomer razdela ustanavlivaetsya v sootvetstvii s etimi znacheniyami, a ne avtomaticheskim uve- licheniem odnogo iz razryadov nomera na 1. Esli odno iz znachenij ot a do f otsutstvuet, to sootvetstvuyushchij razryad nomera razdela ne pereustanavlivaetsya. Esli zhe znachenie soot- vetstvuyushchee odnomu iz etih parametrov ne yavlyaetsya chislovym, to sootvetstvuyushchemu raz- ryadu nomera razdela prisvaivaetsya znachenie 0. Esli T predstavlyaet soboj simvol podcherkiva- niya ("_"), to proishodit tol'ko izmenenie urovnya vlozhennosti i nomera razdela, bazovoe smeshchenie pri etom ostaetsya neizmennym i nichego ne pechataetsya. |to byvaet polezno pri privedenii v sootvetstvie nomerov razdelov razlichnogo urovnya vlozhennosti. .sx +N Perehod k urovnyu vlozhennosti N [-1], bez pechati nomera razdela i zagolovka, i bez izmeneniya nomera razdela na urovne N. Rezul'tat vypolneniya takoj zhe, kak esli by byl nachat novyj paragraf na urovne vlozhen- nosti N. .uh T Nenumerovannyj zagolovok razdela. Zagolovok T pechataetsya v tochnosti po tem zhe pravilam chto i v makrose .sh. - 4 - .$p T B N Pechataet zagolovok razdela. Mozhet byt' pere- opredelen dlya pechati zagolovkov v ekzotiches- kom vide. T Sobstvenno zagolovok razdela, peredaetsya dannomu makrosu makrosami .sh i .uh. B Nomer dannogo razdela, a N glubina vlozhennosti dannogo razdela. CHast' paramet- rov mozhet otsutstvovat', naprimer: .sh pere- daet dannomu makrosu vse tri parametra; .uh peredaet tol'ko odin pervyj; .sx peredaet tri, no pervye dva iz nih yavlyayutsya pustymi strokami. Sleduet proyavlyat' ostorozhnost' pri pereopredelenii etogo makrosa, on dovol'no slozhnyj i zaputannyj. .$0 T B N |tot makros vyzyvaetsya avtomaticheski posle kazhdogo obrashcheniya k .$p. On obychno neoprede- len, no mozhet byt' ispol'zovan dlya avtomati- cheskogo sbora zagolovkov razdelov i formiro- vaniya soderzhaniya dokumenta. T zagolovok raz- dela, kotoryj tol'ko chto byl napechatan; B nomer razdela; i N uroven' vlozhennosti raz- dela. .$1 - .$6 Makrosy-lovushki, vyzyvayutsya vsyakij raz pered pechat'yu razdelov sootvetstvuyushchego im urovnya vlozhennosti. Mogut byt' pereopredeleny, nap- rimer dlya togo, chtoby propustit' nuzhnoe chislo strok pered ocherednym razdelom. |ti makrosy vyzyvayutsya iz .$p, poetomu pri pereopredele- nii poslednego vy mozhete poteryat' ukazannuyu vozmozhnost'. 3. Verhnij i nizhnij kolontituly Verhnij i nizhnij kolontituly avtomaticheski razmeshchayutsya na kazhdoj stranice. Oni pechatayutsya shriftom \n(tf [3] punk- torazmer simvolov \n(tp [10p]. Kazhdoe iz opredelenij kolon- titulov nachinaet rabotat' so sleduyushchej stranicy. Trehele- mentnye kolontituly dolzhny zaklyuchat'sya v kavychki esli oni soderzhat gde-libo dva podryad idushchih probela ili v obshchej slozhnosti bolee vos'mi probelov. Raspolozhenie verhnego i nizhnego kolontitulov opredelya- etsya chetyr'mya chislovymi registrami. \n(hm [4v] rasstoyanie ot verha stranicy do verhnego kolontitula. \n(fm [3v] rass- toyanie ot nizhnego kraya stranicy do nizhnego kolontitula, \n(tm [7v] rasstoyanie ot verha stranicy do pervoj stroki teksta na nej. I \n(bm [6v] rasstoyanie ot nizhnego kraya stranicy do poslednej stroki, gde mozhet raspolagat'sya tekst. .he 'l'm'r' Opredelyaet trehelementnyj kolontitul, kotoryj budet pechatat'sya v verhnej chasti kazhdoj - 5 - stranicy. .fo 'l'm'r' Opredelyaet nizhnij kolontitul, kotoryj budet pechatat'sya v nizhnej chasti kazhdoj stranicy. .eh 'l'm'r' Opredelyaet verhnij kolontitul, kotoryj budet pechatat'sya na kazhdoj stranice s chetnym nome- rom. .oh 'l'm'r' Opredelyaet verhnij kolontitul, kotoryj budet pechatat'sya na kazhdoj stranice s nechetnym nomerom. .ef 'l'm'r' Opredelyaet nizhnij kolontitul, kotoryj budet pechatat'sya na kazhdoj stranice s chetnym nome- rom. .of 'l'm'r' Opredelyaet nizhnij kolontitul, kotoryj budet pechatat'sya na kazhdoj stranice s nechetnym nomerom. .hx Zadaet otsutstvie pechati kolontitulov na sle- duyushchej stranice. .m1 +N Ustanovit' rasstoyanie mezhdu verhnej granicej stranicy i verhnim kolontitulom. [4v]. .m2 +N Ustanovit' rasstoyanie mezhdu verhnim kolonti- tulom i pervoj strokoj teksta. [2v]. .m3 +N Ustanovit' rasstoyanie mezhdu nizhnim kolontitu- lom i poslednej strokoj, gde mozhet byt' ras- polozhen tekst. [2v]. .m4 +N Ustanovit' rasstoyanie mezhdu nizhnej granicej stranicy i nizhnim kolontitulom. [4v]. .ep Zakonchit' tekushchuyu stranicu, ne nachinaya sledu- yushchuyu. Ispol'zuetsya dlya prinuditel'nogo vytalkivaniya snosok, dlya drugih celej prakti- cheski ne ispol'zuetsya. Za etim makrosom dol- zhen sledovat' vyzov .bp ili konec vvoda. .$h Vyzyvaetsya na kazhdoj stranice dlya pechati verhnego kolontitula. Mozhet byt' pereoprede- len dlya pechati kolontitulov bolee slozhnogo vida (naprimer, mnogostrochnyh), no pri etom perestayut rabotatX makrosy: .he, .fo, .eh, .oh, .ef, i .of, a takzhe makros .+c pechatayu- shchij zagolovki glav. .$f Pechat' nizhnego kolontitula, spravedlivy te zhe zamechaniya, chto i dlya .$h. - 6 - .$H Obychno eto makros ne opredelen, on vyzyvaetsya pri pechati verhnej chasti stranicy (posle vyvoda verhnego kolontitula) to est' nepos- redstvenno pered nachalom vydachi teksta na ocherednuyu stranicu. Mozhet byt' ispol'zovan dlya razmeshcheniya na stranicy zagolovkov stolb- cov v dvuhkolonochnom rezhime i drugih podobnyh celej. 4. Bloki Pered nachalom lyubogo bloka i posle ego konca (za isklyu- cheniem centrirovannyh, plavayushchih blokov i blokov citat) vstavlyaetsya interval shirinoj \n(bs [etot chislovoj registr podoben \n(ps]. Razmery analogichnyh intervalov dlya blokov citat i plavayushchih blokov hranyatsya v drugih registrah. Dlya centrirovannyh blokov nikakie intervaly po umolchaniyu voobshche ne vstavlyayutsya. Velichina vertikal'noj razryadki dlya vseh blokov za isklyucheniem centrirovannyh blokov i blokov citat hranitsya v registre \n($R, a ne v registre \n($r. .(l m f Nachat' spisok. Spiski predstavlyayut soboj tekst pechataemyj cherez odin interval, v rezhime bez zapolneniya. Esli parametr f imeet znachenie F, spisok budet pechatat'sya v rezhime s zapolneniem. Esli parametr m [I] raven I spisok sdvigaetsya vpravo na \n(bi [4n] probe- lov; esli on raven M, to spisok pechataetsya po levoj krayu stranicy; esli on raven L, to spi- sok pechataetsya s tem zhe bazovym sdvigom, s kotorym pechataetsya osnovnoj tekst. (otlichie ot M proyavlyaetsya tol'ko v tom sluchae, esli bazovoe smeshchenie, hranimoe v \n($i i ustanav- livaemoe s pomoshch'yu .ba, ne ravno 0); esli zhe ukazannyj parametr raven C, to kazhdaya stroka spiska centriruetsya po otdel'nosti. Spisok pechataetsya shriftom \n(df [0]. Spisok obyaza- tel'no dolzhen zakryvat'sya makrosom .)l. Blok tipa spisok ochen' pohozh na blok tipa .(b za isklyucheniem togo, chto ne proizvoditsya popytka razmestit' ego ves' celikom na odnoj stra- nice. .)l Konec spiska. .(q Nachat' citatu. |to blok pechataetsya cherez odin interval, s zapolneniem i szhat s obeih storon po sravneniyu s osnovnym tekstom na velichinu \n(qi [4n]. Pered nachalom bloka i posle nego propuskaetsya interval shirinoj \n(qs [podoben registru \n(bs], tekst bloka pechataetsya simvolami razmerom \n(qp [na odin "punkt" men'she okruzhayushchego teksta]. - 7 - .)q Konec bloka citat. .(b m f Otkryt' prostoj blok. Prostoj blok predstav- lyayut soboj tekst, kotoryj po vozmozhnosti raz- meshchaetsya celikom na odnoj stranice (podobnye bloki neobhodimy dlya pechati tablic i risun- kov, kotorye ne sleduet razryvat', esli po tekstu oni popadayut na konec stranicy). Esli blok ne umeshchaetsya na tekushchej stranice, to otkroetsya novaya stranica, esli tol'ko pri etom ne potrebuetsya propustit' bolee \n(bt [0] pustyh strok. Esli \n(bt ravno nulyu, to proverka na chislo propuskaemyh pustyh strok ne vypolnyaetsya. Pechataetsya bez zapolneniya, esli tol'ko parametr f ne raven F, chto vklyu- chaet rezhim zapolneniya. Blok budet pechatat'sya s otstupom ravnym bazovomu sdvigu okruzhayushchego blok teksta, esli m raven L, ili budet sdvi- nut vpravo ot teksta na \n(bi [4n], esli m ravno I ili otsutstvuet, ili budet centriro- van (kazhdaya stroka otdel'no), esli m ravno C, ili zhe budet sdvinut k levomu krayu stranicy, esli m ravno M. Blok pechataetsya shriftom \n(df [0]. .)b Konec prostogo bloka. .(z m f Otkryt' plavayushchij blok. |tot makros podoben .(b za isklyucheniem togo, chto ego tekst vsegda pomeshchaetsya v konce tekushchej stranicy ili v nachale sleduyushchej. Takim obrazom, mestopolo- zhenie etogo bloka chuvstvitel'no k vnosimym v tekst izmeneniyam. Pered nachalom plavayushchego bloka i posle ego zaversheniya vstavlyaetsya interval shirinoj \n(zs [1v]. Krome togo, znachenie parametra m po umolchaniyu predpolaga- etsya ravnym M. .)z Konec plavayushchego bloka. .(c Nachat' centrirovannyj blok. Posleduyushchij tekst centriruetsya, kak odno celoe, a ne kazh- daya ego stroka v otdel'nosti, kak pri ispol'- zovanii .(b C. |tot blok mozhet byt' vlozhen vnutr' drugih blokov. .)c Konec centrirovannogo bloka. 5. Nakoplenie teksta dlya posleduyushchej vydachi .(d Otkryt' blok zaderzhannogo teksta. |tot tekst ne pechataetsya v tom meste dokumenta, gde on neposredstvennno raspolozhen, a sohranyaetsya s - 8 - pomoshch'yu mehanizma otvedenij. Ego mozhno ras- pechatat' vposledstvii, ispol'zuya makros .pd, v vide pohozhem na stranichnye snoski. .)d Konec zaderzhannogo teksta. CHislovoj registr zaderzhannogo teksta \n($d i sootvetstvuyushchij emu strochnyj registr \*# uvelichivayutsya na 1 pri obrashchenii k \*# mezhdu dvumya blokami zaderzhannogo teksta. .pd Pechat' zaderzhannogo teksta. Ves' tekst nakoplennyj s pomoshch'yu komand .(di .)d forma- tiruetsya i pechataetsya. |tot makros mozhet ispol'zovat'sya v konce kazhdoj glavy. .(f n Otkryt' tekst stranichnoj snoski. Tekst stra- nichnoj snoski peremeshchaetsya vniz tekushchej stra- nicy i pechataetsya shriftom \n(ff [1] s razme- rom simvolov \n(fp [8p]. Kazhdoj snoske pred- shestvuet interval shirinoj \n(fs [0.2v]. Snoska pechataetsya so sdvigom \n(fi [3n] ot levogo kraya stranicy, i so sdvigom \n(fu [0] ot pravogo kraya. Esli v kachestve parametra zadan simvol podcherkivaniya, to snoska pechata- etsya bez sdviga ot levogo kraya stranicy. Stranichnye snoski vsegda pechatayutsya v odnko- lonochnom rezhime. Esli tekst snoski polnost'yu ne umeshchaetsya na tekushchej stranice, to on pro- dolzhaetsya na sleduyushchej. .)f Konec stranichnoj snoski. CHislovoj registr \n($f i sootvetstvuyushchij emu strochnyj registr \** uvelichivayutsya na 1 esli k nim imeetsya obrashchenie. Esli zhelatel'no, chtoby na kazhdoj stranice byla svoya vnutrennyaya numeraciya sno- sok, nachinayushchayasya s 1, sleduet opredelit' makros .$H tak, chtoby on soderzhal sleduyushchuyu posledovatel'nost' komand: .nr $f 1 1 .ds \\*[1\\*]\k* .$s Makros pechatayushchij liniyu-razdelitel' dlya stra- nichnyh snosok. Mozhet byt' pereopredelen dlya zadaniya drugoj dlinny etoj linii ili dlya pechati razdelitelya inogo vida. Makros v ego tekushchem sostoyanii pechataet liniyu dlinnoj 1.5 dyujma. .(x x Otkryt' indeksirovannyj tekst. Indeksirovan- nyj tekst zapisyvaetsya i hranitsya v indekse x [x] do teh por poka ne budet napechatan s - 9 - pomoshch'yu makrosa .xp. Kazhdomu indeksirovan- nomu tekstu predshestvuet interval shirinoj \n(xs [0.2v]. Kazhdyj indeksirovannyj tekst "sdvinut vlevo" ot pravoj granicy stranicy na \n(xu [0.5i]; etot registr soderzhit razmer polya, vydelyaemogo ot pravogo kraya stranicy dlya pechati parametrov makrosa (v chastnosti nomera stranicy). .)x P A Zakonchit indeksirovannyj tekst. Indeksiro- vannyj tekst zakanchivaetsya liniej iz tochek so strokoj A [pustaya stroka] prizhatoj k pravomu krayu stranicy (naprimer imya avtora stat'i), i strokoj P pered nej [\n%]. Esli prisutstvuet parametr A, dolzhen prisutstvovat' i parametr P. \n% mozhno ispol'zovat' dlya pechati teku- shchego nomera stranicy. Esli P simvol podcher- kivaniya, to ni liniya iz tochek, ni nomer stra- nicy ne pechatayutsya. .xp x Napechatat' indeksirovannyj tekst x [x]. Indeksirovannyj tekst formatiruetsya s uchetom parametrov (shrift, razmer simvolov i t.d.) ustanovlennyh v tom meste, gde on pechataetsya, a ne teh, kotorye byli ustanovleny vo vremya nakopleniya teksta. 6. Vyvod po kolonkam .2c +S N Perehod v dvuhkolonochnyj rezhim. Rasstoyanie mezhdu kolonkami ustanavlivaetsya ravnym +S [4n, 0.5i dlya pechati v stile ACM] (eto znache- nie hranitsya v \n($s) SHirina kolonki vychis- lennaya ishodya iz shiriny stranicy i rasstoyaniya mezhdu kolonkami, hranitsya v \n($l. Nomer tekushchej kolonki zapisan v \n($c. CHtoby uznat' vo skol'ko kolonok budet pechatat'sya tekst sleduet posmotret' soderzhimoe registra \n($m [1]. V obshchem sluchae dannyj makros ustanavlivaet vyvod v N [2] kolonok. .1c Vozvrashchenie v odnokolonochnyj rezhim. .bc Nachat' kolonku. |tot makros podoben .bp za isklyucheniem togo, chto novaya kolonka nachina- etsya na novoj stranice tol'ko pri neobhodi- mosti, kogda na tekushchej stranice uzhe ne osta- los' svobodnyh stolbcov. 7. SHrifty i razmery .sz +P Puknktorazmer simvolov ustanavlivaetsya ravnym P [10p], proporcional'no emu ustanavlivaetsya - 10 - i mezhstrochnyj interval. Otnoshenie velichiny intervala k punktorazmeru hranitsya v registre \n($r. Analogichnoe otnoshenie ispol'zuemoe vnutri blokov i snosok hranitsya v registre \n($R (ono ne ispol'zuetsya pri obrashcheniii k makrosu .sz). .r W X Pechataet tekst W obychnym shriftom, i nepos- redstvenno za nim tekst X ranee ustanovlennym shriftom. Dlya zadaniya bolee slozhnogo upravle- niya shriftami mozhno ispol'zovat' v kachestve X upravlyayushchuyu posledovatel'nost' \c. Esli parametry otsutstvuyut, to obychnyj shrift usta- navlivaetsya tekushchim. .i W X Pechataet tekst W kursivom, i neposredstvenno za nim tekst X ranee ustanovlennym shriftom. Esli parametry otsutstvuyut, to kursiv usta- navlivaetsya tekushchim shriftom. V nroff tekst vydelyaetsya podcherkivaniem. .b W X Pechataet tekst W zhirnym shriftom, i nepos- redstvenno za nim tekst X ranee ustanovlennym shriftom. Esli parametry otsutstvuyut, to zhir- nyj shrift ustanavlivaetsya tekushchim. V nroff tekst vydelyaetsya podcherkivaniem. .rb W X Pechataet tekst W zhirnym shriftom, i nepos- redstvenno za nim tekst X ranee ustanovlennym shriftom. Esli parametry otsutstvuyut, to zhir- nyj shrift ustanavlivaetsya tekushchim. .rb otli- chaetsya ot .b tem, chto .rb ne vydelyaetsya pod- cherkivaniem v nroff. .u W X Pechataet s podcherkivaniem tekst W i dobavlyaet za nim X. |to istinnoe podcherkivanie, v otlichie ot zaprosa .ul, kotoryj proizvodit perehod k "podcherknutomu shriftu" (v troff eto obychno kursiv). |tot makros ne budet rabo- tat' pravil'no esli tekst W slishkom dlinnyj ili razryvaetsya kakim-libo obrazom (vklyuchaya perenos s ispol'zovaniem defisa). Drugimi slovami, ispol'zovanie etogo shrifta kor- rektno, tol'ko pri rabote v rezhime bez zapol- neniya strok. .q W X Vzyat' v kavychki tekst W i dobavit' za nim X. V nroff etot makros zaklyuchaet tekst W v dvoj- nye kavychki (`"'), a v troff v parnye otkry- vayushchie i zakryvayushchie kavychki. .bi W X Pechataet tekst W zhirnym kursivom, i nepos- redstvenno za nim tekst X. |tot effekt - 11 - dostigaetsya pechat'yu W obychnym kursivom s dvojnoj probivkoj kazhdogo simvola. V nroff prostoe podcherkivanie. |tot makros ne budet rabotat' pravil'no esli tekst W slishkom dlin- nyj ili razryvaetsya kakim-libo obrazom (vklyu- chaya perenos s ispol'zovaniem defisa). Dru- gimi slovami, ispol'zovanie etogo shrifta kor- rektno, tol'ko pri rabote v rezhime bez zapol- neniya strok. .bx W X Pechataet tekst W zaklyuchennym v ramku i dobav- lyaet k nemu tekst X. V nroff prostoe podcher- kivanie. |tot makros ne budet rabotat' pra- vil'no esli tekst W slishkom dlinnyj ili raz- ryvaetsya kakim-libo obrazom (vklyuchaya perenos s ispol'zovaniem defisa). Drugimi slovami, ispol'zovanie etogo shrifta korrektno, tol'ko pri rabote v rezhime bez zapolneniya strok. 8. Makrosy v stile programmy roff .ix +N Smeshchenie teksta vpravo bez razryva formata. |kvivalent 'in N. .bl N Ostavlyaet nezapolnennymi N pustyh strok, esli na tekushchej stranice dlya nih ne hvataet mesta, to etot zhe interval propuskaetsya na sleduyushchej stranice. |kvivalentno .sp N vnutri bloka. .pa +N |kvivalentno .bp. .ro Ustanovka pechati nomerov stranic rimskimi ciframi. |kvivalentno .af % i. .ar Ustanovka pechati nomerov stranic arabskimi ciframi. |kvivalentno .af % 1. .n1 Nachat' numerovat' stroki, nachinaya s edinicy, na kazhdoj stranice. .n2 N Nachat' numerovat' stroki, nachinaya s N. Prek- ratit' numeraciyu strok esli N = 0. .sk Ostavit' sleduyushchuyu stranicu pustoj, pechataya tol'ko kolontituly. Ispol'zuetsya dlya rezer- virovaniya stranicy i posleduyushchego ruchnogo razmeshcheniya na nej razlichnyh risunkov i diag- ram, poluchaemyh vneshnim po otnosheniyu k sis- teme formatirovaniya obrazom. Dlya rezerviro- vaniya chasti stranicy v analogichnyh celyah ispol'zujte .sv N, gde N razmer rezerviruemoj oblasti. Sootvetstvuyushchee chislo strok propus- kaetsya neposredstvenno na tekushchej stranice, - 12 - esli na nej ostalos' dostatochno mesta, ili esli mesta ne tekushchej stranice ne hvataet, rezervirovanie proizvoditsya v nachale sleduyu- shchej stranicy. Odnako, sleduet pomnit', chto esli N prevyshaet kolichestvo strok razmeshchaemyh na stranice, rezervirovanie mesta ne budet proizvoditsya voobshche. 9. Rabota s preprocessorami .EQ m T Nachalo uravneniya. Uravnenie centriruetsya esli m ravno C ili otsutstvuet, sdvigaetsya vpravo na \n(bi [4n] esli m ravno I, ili ras- polagaetsya s levogo kraya stranicy esli m ravno L. T zagolovok, pechataemyj v pravoj chasti stranicy srazu zhe posle samogo uravne- niya. .EN c Konec uravneniya. Esli c ravno C, to predpo- lagaetsya, chto za dannym uravneniem nepos- redstvenno sleduet drugoe, nachinayushcheesya s ocherednogo .EQ, tekst kotorogo centriruetsya vmeste s tekstom dannogo uravneniya. V pro- tivnom sluchae, pered uravneniem i posle nego vstavlyayutsya intervaly shirinoj \n(es [0.5v in troff, 1v in nroff], tekst uravneneniya raspo- lagaetsya vsegda celikom na odnoj stranice. .TS h Nachalo tablicy. Tablicy pechatayutsya cherez odin interval i esli eto vozmozhno razmeshchayutsya na odnoj stranice. Esli neobhodimo napecha- tat' tablicu, kotoraya ne umeshchaetsya na odnoj stranice, ispol'zujte h = H s posleduyushchim opisaniem zagolovka tablicy (kotoryj pechata- etsya na kazhdoj stranice, gde raspolagaetsya tablica) s pomoshch'yu .TH. Smotri dokument Preprocessor dlya podgotovki tablic tbl. .TH Pri ispol'zovanii .TS H, zakanchivaet opisanie zagolovka tablicy. .TE Konec tablicy. Sleduet pomnit', chto tablica sama po sebe raspolagaetsya v tom meste teksta, gde ona byla opredelena, i ne obla- daet svojstvami analogichnymi plavayushchemu bloku. Krome togo esli v tekste tablicy vstrechayutsya zaprosy tipa .sp, to ee razmeshche- nie na odnoj stranice ne garantiruetsya. Esli zhelatel'no, chtoby tablica peremeshchalals' po tekstu (ili esli vnutri teksta tablicy ime- yutsya zaprosy), to sleduet vsyu tablicu (vklyu- chaya stroki s zaprosami .TS i .TE) pomestit' - 13 - vnutr' skobok plavayushchego bloka: .(z i .)z. 10. Drugie vozmozhnosti .re Ustanovka standartnogo shaga tabulyacii. Usta- navlivaetsya ravnym 0.5i v troff i 0.8i v nroff. .ba +N Ustanovka bazovogo smeshcheniya ravnym +N [0] (hranitsya v registre \n($i). Vse paragrafy, razdely i bloki raspolozhennye nizhe budut pechatat'sya sdvinutymi na etu velichinu. Na format verhnego i nizhnego kolontitulov etot makros dejstviya ne okazyvaet. Makros .sh obrashchaetsya k .ba esli \n(si [0] soderzhit ne 0 i ustanavlivaet bazovoe smeshchenie ravnym \n(si*\n($0. .xl +N Dlinna stroki ustanavlivaetsya ravnoj N [6.0i]. Otlichaetsya ot .ll tem, chto vliyaet tol'ko na tekushchee okruzhenie. .ll +N Ustanavlivaet dlinu stroki ravnoj N [6.0i] v kazhdom okruzhenii. |tot makros ne sleduet ispol'zovat' posle nachala vyvoda teksta, v osobennosti eto kasaetsya dvuhkolonochnogo vyvoda. Tekushchaya dlina stroki hranitsya v \n($l. .hl Provodit gorizontal'nuyu chertu po vsej shirine stranicy. |to byvaet polezno pri ispol'zova- nii plavayushchih blokov dlya otdeleniya osnovnogo teksta ot teksta bloka. .lo Podgruzhaet dopolnitel'nyj nabor makrosov (iz /usr/lib/me/local.me), podrazumevaetsya, chto eto makrosy mestnogo znacheniya, mnozhestvo kotoryh opredelyat'sya v kazhdoj konkretnoj sis- teme po svoemu. Imena etih makrosov dolzhny imet' vid: .*X, gde X lyubaya bukva (bol'shaya ili malen'kaya) ili cifra. 11. Standartnoe oformlenie dokumentov .tp Nachat' titul'nyj list. Verhnyaya chast' stra- nicy ostaetsya svobodnoj, pechat' kolontitulov podavlyaetsya. Krome togo, ne proishodit uve- licheniya nomera stranicy. .th Ustanovka rezhima pechati dokumenta v vide tezisov. Pechat' vedetsya cherez dva intervala, nomer stranicy pechataetsya na meste verhnego kolontitula. Sovmestno s etim makrosom - 14 - predpolagaetsya ispol'zovanie .++ i .+c. K etomu makrosu sleduet obrashchat'sya pered pervym obrashcheniem k makrosu nachala paragrafa ili makrosu .sh. .++ m H Opredelyaet tip nizhesleduyushchej chasti formatiru- emogo dokumenta. Pod chast'yu ponimaetsya pos- ledovatel'nost' glav, prilozhenij ili vspomo- gatel'nyh razdelov. Kazhdaya chast' imeet opre- delennyj tip, ot kotorogo zavisit sposob oformleniya otnosyashchihsya k nej stranic. Tip chasti opredelyaetsya parametrom m. C oznachaet, chto dalee budet sledovat' osnovnaya chast' dokumenta, razbitaya na glavy, A oznachaet, chto dalee raspolagayutsya razlichnye prilozheniya, P oznachaet, chto dalee raspolagayutsya takie vspo- mogatel'nye razdely dokumenta, kak vvedenie, soderzhanie, i t.p., AB oznachaet, chto nizhe raspolagayutsya vspomogatel'nye razdely s neza- visimoj numeraciej, nachinayushchejsya s 1, B ozna- chaet, razdel bibliografii, kotoryj neobhodimo razmeshchat' v konce dokumenta. Takzhe vozmozhno ispol'zovanie variantov RC i RA kotorye opre- delyayut chast' dokumenta, sostoyashchuyu iz posledo- vatel'nosti glav (ili sootvetstvenno prilozhe- nij) vnutri kazhdoj iz kotoryh vedetsya svoya numeraciya stranic, nachinaya s 1. Parametr H opredelyaet tekst zagolovka, kotoryj budet ispol'zovat'sya v kachestve kolontitulov na stranicah, da