DataMuseum.dk

Presents historical artifacts from the history of:

RC4000/8000/9000

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about RC4000/8000/9000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦75cbdf6e1⟧ TextFile

    Length: 129024 (0x1f800)
    Types: TextFile
    Names: »contents«

Derivation

└─⟦a41ae585a⟧ Bits:30001842 SW-save af projekt 1000, Alarm-system
    └─⟦72244f0ef⟧ 
        └─⟦this⟧ »contents« 

TextFile

▶8c◀
                                         i

        INDHOLD                                                           SIDE▶8d◀        ______________________________________________________________________

        1.  INDLEDNING ....................................................  1
            1.1  Fyldning af linierne .....................................  2
            1.2  Denne manuals inddeling ..................................  3

        2.  ROFF TIL HVERDAGSBRUG .........................................  4
            2.1  Nummerering ..............................................  4
                 2.1.1  Afsnitsnummerering ................................  4
                 2.1.2  Bilagsnummerering .................................  5
                 2.1.3  Figurnummerering ..................................  5
                 2.1.4  Eksempel-nummerering ..............................  5
                 2.1.5  Indholdsfortegnelse ...............................  6
            2.2  Kontrol af linieskift og sideskift .......................  6
                 2.2.1  sp ................................................  6
                 2.2.2  ne ................................................  7
                 2.2.3  Sideskift .........................................  8
            2.3  Understregning ...........................................  8
            2.4  Fikserede mellemrum ......................................  9
            2.5  Kontrol af indrykning ....................................  9
                 2.5.1  Temporær indrykning ............................... 10
                 2.5.2  Total liniekontrol ................................ 10
            2.6  Ord-deling ............................................... 11

        3.  ROFF FOR VIDEREKOMNE .......................................... 13
            3.1  Tabulation ............................................... 13
                 3.1.1  Højre- og centertabulation ........................ 13
                 3.1.2  Visning af positionerne ........................... 14
                 3.1.3  Tabulations register .............................. 14
            3.2  Rammer ................................................... 15
                 3.2.1  Ramme-tabulation .................................. 16
            3.3  Blokke ................................................... 17
                 3.3.1  Simple blokke ..................................... 17
                 3.3.2  Tekstede blokke ................................... 18
            3.4  Stikordsregister ......................................... 18
                 3.4.1  Markering af stikord .............................. 18
                 3.4.2  Stikord med stort begyndelsesbogstav .............. 19
                 3.4.3  Stikordskommando .................................. 20
                 3.4.4  Henvisninger ...................................... 20
                 3.4.5  f- og ff-markeringer .............................. 20
            3.5  Registre ................................................. 21
                 3.5.1  Dynamiske registre ................................ 22
                 3.5.2  Værditildeling til registre ....................... 22
                        3.5.2.1  Regning ved hjælp af registre ............ 23
            3.6  Kontrol af sideparametre ................................. 23
            3.7  Valg af specialtegn ...................................... 24
            3.8  Kontrol af lige højre-margen ............................. 27
            3.9  Centrering ............................................... 28
            3.10 Hoveder og fødder ........................................ 28
            3.11 Messages ................................................. 29
            3.12 Konkatenering ............................................ 29
            3.13 Korrektionslinier ........................................ 30
            3.14 Kontrol af linieafstand .................................. 31
            3.15 Kontrol af numre ......................................... 32
                 3.15.1 Sidenumre ......................................... 32
                 3.15.2 Afsnitsnumre ...................................... 32
                 3.15.3 BOSS-linie-numre .................................. 33▶8c◀
                                         ii

        INDHOLD                                                           SIDE▶8d◀        ______________________________________________________________________

        4e indrykning^en
.ix reset indrykning
.ix redefiner indrykning
.ix indrykning, redefinering
til standardværdien (d.v.s. 8).
.cl-2
   
  
.a3 Bilagsnummerering^
.ix $nummerering af bilag$se bilagsnummerering
Nummerering af bilag^ og afsnit indenfor bilag foretages nøjagtig som
afsnits_nummerering, altså ved benyttelse af kommandoerne:
       
>a1, >a2, >a3 og >a4
     
Blot skal man inden det første bilag give kommandoen:
   
>ap^
     
alene først på en linie ("ap" for appendix^).
.a3 Figurnummerering^
.ix $nummerering af figurer$se figurnummerering
Figurer nummereres fortløbende begyndende med 1.

ROFF-kommandoen:

>fg^ Figurtekst

udfører automatisk nummereringen.

Da dette er den første figur i dette skrift vil ovenstående kommando efter
"roffning" blive til

.fg Figurtekst

Bemærk at ROFF centrerer teksten under figuren.
.ix centrering

.a3 Eksempel-nummerering^
.ix $nummerering af eksempler$se eksempel-nummerering
Eksempler nummereres fortløbende begyndende med 1.

ROFF-kommandoen

>ex Eksempel-overskrift

udfører automatisk nummereringen.

Da der tidligere har været to eksempler, vil ovenstående kommando efter
roffning blive til:

.ex Eksempel-overskrift.

.a3 Indholdsfortegnelse^
ROFF producerer automatisk en indholdsfortegnelse som vist i ref. 1.

Se f.eks. indholdsfortegnelsen til dette skrift.

.a2 Kontrol af linieskift^ og sideskift^
.ix blanke linier
.ix nyt afsnit
Blanke linier i input-teksten vil også i den roffede tekst fremstå som 
blanke linier, dvs. når der i input-teksten forekommer en "tom linie"
vil ROFF lave et linieskift, der "afbryder" den linie, der er ved at blive
udfyldt, og derefter vil ROFF lave en tom linie.

Når man således laver "nyt afsnit" er det nok at lave en blank linie som man plejer.

.a3 sp
.ix space
Skal man have flere tomme linier efter hinanden, kan man naturligvis lave 
dem i input-teksten.

Man kan også få ROFF til at lave dem.

ROFF-kommandoen >sp^ ("space") efterfulgt af et tal vil generere dette 
antal blanke linier.

.ex Tomme linier.
.nf
Input-teksten:
abc
.sp3
def

er ækvivalent med:

abc
>sp3
def
.fi

.ix liniebrud
.ex Liniebrud
Kommandoen >br^ (for "break") vil afbryde den linie, man er i gang med, men vil ikke
.ix $break$se br
lave en blank linie.

Således vil input-teksten:

.ne 10
.nf
dette
>br
er
>br
en 
>br
prøve

efter roffning blive til:

.ne 8
dette
er
en 
prøve
.fi
 
>br virker på samme måde som >sp0.

Se også det tidligere eksempel "tekst uden liniedeling" samt omtalen af 
kommandoerne >nf og >fi i eksempel 2.

.a3 ne
Skal man f.eks. lave plads til en figur, kan man bruge sp-kommandoen.
.ix figurer

Imidlertid er man interesseret i, at 
.ul
alle
de tomme linier kommer til at stå på 
.ul
samme
side i den roffede tekst.

Dette opnås ved >ne^-kommandoen ("need"). F.eks. betyder
.ix $need$se ne

>ne 7

at såfremt der er mindre end 7 linier tilbage på siden (efter roffning)
skal ROFF begynde på en ny side.

.ex Figurer^.
.ix beregning af figurplads
.ix figurplads, beregning af
 
Skal man afsætte plads til en figur ved navn "konfiguration", som 
fylder 9 linier gøres således:

.nf
>ne 11
>sp 9
>fg Konfiguration.
.fi

Læg mærke til, at der behøves ("need") to linier mere end figuren fylder.
Det er for at være sikker på, at figurteksten kan komme med på samme
side som figuren.

.a3 Sideskift^
Vil man explicit skifte til en ny side bruges >np^ ("new page").
>np kan eventuelt efterfølges af et tal, der angiver hvor mange
tomme sider, man ønsker.

.a2 Understregning^
Ønskes en del af teksten understreget, benyttes >ul^-kommandoen ("under-line"). 
.ix $underline$se ul

Denne kommando sørger for at den næste linie i
.ul
input-teksten vil blive understreget
i den roffede tekst.

.ex Understregning.
 
Ovenstående sætning så således ud i input-teksten:

.nf

Denne kommando sørger for
at den næste linie i
>ul
input-teksten vil blive understreget
i den roffede tekst.
.fi

.ix understregning af mellemrum
Bemærk, at ROFF ikke understreger mellemrum ("blanke").
(At de faktisk bliver understreget i eksempel- og
afsnits_overskrifter skyldes at der her er brugt
fikserede mellemrum (se næste afsnit)).

.a2 Fikserede mellemrum^
.ix liniedeling
.ix fikseret mellemrum
.ix $mellemrum, fikseret$se fikseret mellemrum
ROFF vil dele linier ved mellemrum, men hvis man ikke ønsker, at der skal
være liniedeling ved et mellemrum, kan man benytte et såkaldt "fikseret
mellemrum".

.ms insæt snabel_a
Det er tegnet: @ ("snabel-a").

    
Et fikseret mellemrum behandles af ROFF som et almindeligt tegn, men
vil i den roffede tekst fremtræde som et  mellemrum.
   
.ex Fikseret mellemrum.
 
Lad os se på følgende input-tekst:

.nf
Til attention bruges escape-tasten
( ESC ).
.fi

Der er mellemrum mellem ESC og parentesen fordi der skal tegnes en ramme
om ESC i den roffede tekst. Dette mellemrum er imidlertid ikke fikseret,
så den roffede tekst kan komme til at se således ud:
.nf
 
Til attention bruges escape-tasten ( ESC
).
 
Input-teksten burde have set således ud:
 
.ms indsæt 2 snabel_a'er
Til attention bruges escape-tasten (@ESC@).
.fi

.a2 Kontrol af indrykning^
.ix kontrol af indrykning
Positionen af tekstens venstre margen ("indryk_ningen") kan styres
.ix venstre-margen
.ix $margen, venstre$se venstre-margen
med >in^ kommandoen.

>in skal efterfølges af et tal, der angiver den relative indrykning
i forhold til den aktuelle.

F.eks. vil input-teksten:
.ne8
.nf
>nf
>in2
a
b
c
>in-2
>fi
.fi

efter roffning blive til:

.ne4
  a
  b
  c

Eventuelle indrykninger redefineres ved brug af >a1, >a2, >a3 og >a4.

.a3 Temporær indrykning
.ix temporær indrykning
.ix indrykning, temporær
Hvis indrykningen kun skal gælde for den
.ul
næste roffede linie
benyttes >ti^ kommandoen ("temporary indention").

F.eks. vil input-teksten:
.ne9
.nf
>nf
>in 4
>ti-2
a
b
c
>in-4
>fi
.fi

i den roffede version blive til:

.ne4
  a
    b
    c

.a3 Total liniekontrol^
.ix total liniekontrol
Indledes en linie i input_teksten med et mellemrum^
.ul
kopieres denne linie uændret
til den roffede tekst.

Dette kan f.eks. bruges ved opstilling af tabeller o.l.
.ix tabeller, opstilling af

.ex Total liniekontrol.


Følgende input_tekst

 Dette  er    en prøve

vil i den roffede tekst blive til

 Dette  er    en prøve

altså uændret.

For øvrigt vil

.nf
>in 1
>nf
Dette  er    en prøve
>fi
>in -1
.fi

give samme resultat.

At indlede en linie med mellemrum^ er altså det samme som at lave
en implicit "no fill" på denne ene linie.

.a2 Ord-deling^
.ix automatisk orddeling
.ix lange ord
ROFF laver ikke automatisk orddeling, d.v.s. hvis et ord ikke kan
stå på en linie flyttes det ned på den næste, og mellemrummene
på linien udvides, så linien får samme længde som alle de andre 
linier.
.ix højre-justering

Hvis det er et meget langt ord, der lige akkurat ikke kan være på
linien, bliver der således meget plads, der skal fordeles på
liniens ord_mellemrum, og disse kan derfor blive meget lange:

"ROFF-programmet er et computertekstbehandlingsprogram"

.tc +
illustrerer problemet!
.tc !

Man kan "hjælpe" ROFF ved at indsætte 
.ms indsæt snabel-a
ord_delings_forslag (ved hjælp af
.hc ;
tegnet "_", dvs. understreg;ning) i lange ord. F.eks. vil
input_teksten

.nf
.ne7
"ROFF-programmet er et
.ms indsæt 3 snabel-a'er
computer_tekst_behandlings_program".
.fi
.hc _

give resultatet:

"ROFF-programmet er et
computer_tekst_behandlings_program".

.a1 ROFF FOR VIDEREKOMNE
.ix ROFF for viderekomne
I dette kapitel vil vi beskrive nogle af de mere sophistikerede
anvendelser af ROFF, f.eks.:

 - tabulation^
 - rammer^
 - blokke^
 - styring af sideparametre^
 - valg af funktionstegn^

.a2 Tabulation^
Til brug ved f.eks. kolonne_opstilling af tabeller findes mulighed
for tabulation.

Man angiver tabulations_positioner^ne ved kommandoen >ta^ efterfulgt
.ix udråbstegn
af positionerne:

>ta 10 20 45
.ta 10 20 45

.tc ;
Tabulations_tegn^et er "!" (udråbstegn).

Med ovenstående definition af tabulations_positionerne vil input_teksten:

.ne 10
.nf
!7!9!13
!777!999!1313
.fi

give resultatet:

.nf
.tc !
!7!9!13
!777!999!1313
.fi

.a3 Højre- og centertabulation^
.ix højretabulation
Ovenstående kolonner er venstre_justerede, startende i
tabulations_positionen.

Det er også muligt at få teksten højre_justeret eller centreret omkring
tabulations_positionen.
.ix centrering

Dette gøres ved at taste et R eller et C umiddelbart efter positions_angivelsen 
i >ta-kommandoen. L for "left" er default.

Således vil inputteksten:

.ne 10
.nf
>nf
.tc 
>ta 10L 20C 45R
.ta 10L 20C 45R
!7!9!13
!77!999!1313
!777!99999!131313
>fi

give resultatet:

.tc !
!7!9!13
!77!999!1313
!777!99999!131313
.fi

.a3 Visning af positionerne
.ix visning af positioner
Det er muligt at få de gældende tabulations_positioner vist
øverst på siden.

Kommandoen:

>td^

("tab display") vil give udskriften øverst på denne side.
.ix $tab display$se td

.td

.a3 Tabulations register
.ix tabulationsregister
.ix register, tab
Det er muligt at gemme alle tabulations_positioner i et
register, f.eks. hvis man hyppigt anvender et sæt tabu_lations_positioner,
men ind imellem gerne vil sætte nogle andre.

Det gøres ved

>ts^

for "tabs save".

>tl^

for "tabs load" vil retablere de gemte tabulations_positioner fra registret.

.a2 Rammer^
.ix indramning af tabeller
.ix tabeller, indramning af
.ix tabeller, opstilling af
Rammer bruges f.eks. til indramning af tabeller med lodrette og
vandrette streger:

.ne 10
.nf
.ta  14R  20R  26R
.fd  10  16  22  28
.fb
!A!B!C
.fb
!11!18!12
!10!19!33
!8!114!321
.fe
.fi

Til dette formål benyttes de fire kommandoer:

.cl2
 >fd^ eller >fv^  (frame definition)
.cl-2
 >fb^  (frame begin)
 >fe^  (frame end)

>fd definerer positionerne 
for de lodrette streger i rammen. Ovenstående ramme er defineret af

.tc ;
>fd 10 16 22 28
    
.cl2
Hvor positionerne defineres absolut ved >fd kan de defineres relativt
ved >fv ("frame visual definition").
     
Ovenstående ramme kunne være defineret af:
    
.nf
>fv 10 !   A !   B !   C !
.fi
     
Tallet umiddelbart efter >fv angiver positionen for den første lodrette
streg i rammen. De efterfølgende udråbs_tegn markerer positionerne
for rammens øvrige lodrette streger. Teksten ind imellem er kun
med af "tælle-hensyn".
.cl-2
        
>fb laver de vandrette streger (undtagen den sidste).

>fe laver den sidste vandrette streg og afslutter rammen.
.ix vandrette streger

Ovenstående ramme er fremkommet ved følgende input_tekst:

.nf
.tc ;
>ne 10
>nf
>ta 14R  20R  26R
>fd 10  16  22  28
>fb
!A!B!C
>fb
!11!18!12
!10!19!33
!8!114!321
>fe
.tc !
>fi
.fi

.a3 Ramme-tabulation
.ix rammetabulation
Det er muligt at definere tabulations_positioner, der "passer"
til en ramme, f.eks. venstre-tabulations_positioner, der alle
ligger to positioner til højre for rammens lodrette streger
(undtagen den sidste). Hertil bruges:

>tf^

for "tab frame".

.nf
F.eks vil input-teksten:

.ne10
>ne10
>nf
>fd 12 22 42 52
>tf
>fb
.tc %
!7!9!13
>fe
>fi
.ne10

give følgende resultat:

.tc !
.fd 12 22 42 52
.tf
.fb
!7!9!13
.fe
.fi

>tf er altså i dette tilfælde det samme som

>ta 14 24 44

Det er også muligt at definere tabulations_positioner, der ligger
hhv. til højre i kolonnerne og i midten. Det gøres ved:

.ix tf R, tf L, tf C
>tf R
          og
>tf C

.cl2
Med >tf@C i ovenstående eksempel ville vi få:

.nf
.tf C
.fb
!7!9!13
.fe
.fi
.cl-2

.a2 Blokke^

ROFF kan hjælpe med at lave to slags "blokke", d.v.s. indrykkede
tekstklumper^:

 - simple blokke
 - tekstede blokke

.a3 Simple blokke
.ix simple blokke
Følgende er et eksempel på en simpel blok:

- En klump tekst, der er indrykket, og hvor
der står en binde_streg^ til venstre for første
linie er en simpel blok.

Ovenstående blok blev lavet af følgende input-tekst:

.in-1
 - En klump tekst, der er indrykket, og hvor
 der står en binde_streg til venstre for første
 linie er en simpel blok.

.in1
Blok-tegnet er en bindestreg pr. default, men kan redefineres
af brugeren (se senere under "special_tegn").
.ix bloktegn

Blokken afsluttes af en tom linie i input-teksten.
Ønsker man tomme linier i blokken uden at afslutte den, kan man bruge

>sp1

For at summere:
.br
En linie, der indledes med "-@" (eller et bruger_defineret bloktegn) er det samme som:

.ne2
>in5
.br
>ti-2

.a3 Tekstede blokke
.ix tekstede blokke
Et eksempel på en tekstet blok er:

.tb 18 Tekstede blokke
er en klump tekst, der er indrykket, og hvor der står en tekst
til venstre for første linie.

Ovenstående blev lavet af følgende input_tekst:

.nf
>tb^ 18 Tekstede blokke
er en klump tekst, der er indrykket,
og hvor der står en tekst
til venstre for første linie.

.fi

Blokken sluttes af en tom linie i input_teksten.
Der må derfor ikke stå en tom linie umiddelbart efter >tb-kommandoen.

Tallet 18 i >tb-kommandoen angiver at indrykning^en af blokken skal
være 18 tegn. Den efterfølgende tekst må ikke være længere end
denne indrykning.

.cl2
.a2 Stikordsregister^
Ønsker man sit skrift forsynet med et stikords_register (fx som det,
der findes bagest i denne manual) kan man få ROFF til at lave dette
automatisk.

Det gøres dels ved at mærke de ord i teksten, der skal optræde i
stikords_registret og dels ved hjælp af ROFF-kommandoen >ix.

.a3 Markering af stikord
.xc #
De ord, der skal optræde som stik_ord skal mærkes med tegnet "^"
umiddel_bart efter
.ms pil-op
ordet (eller den del af ordet, der skal være stik_ord).

.ne18
.ex Markering af stikord
Følgende input-tekst:
 
.hc
.nf
Ønsker man sit skrift^ forsynet
med stikordsregister^ kan man
mærke de ord, der skal optræde
som stikord^. Stik_ord^ene må
gerne begynde med stort og
de må gerne indeholde ord_delings_tegn^.

vil give følgende stikordsregister:

.ne5
.rc$
.ms pil-op'er i eksempel $e
orddelingstegn ................ $p
skrift......................... $p
stikord........................ $p
stikordsregister............... $p

.fi
.hc _
.rc
.xc ^

Stikordet bestemmes ud fra stikords_tegnet på følgende måde:

Når stikordstegnet mødes søges tilbage indtil der mødes en blank
(eller til starten af input-linien).

Herefter søges
.ul
frem
til der mødes et bogstav. Stikordet er da ordet fra og med dette bogstav
til stikords_tegnet.

F.eks. vil input-teksten

 "roff^"
.ms pil-op i "ROFF^"

give stikordet

.rc$
.nf
ROFF........................... $p

og ikke

"ROFF.......................... $p
.fi
.rc
.a3 Stikord med stort begyndelsesbogstav
.ix stort begyndelsesbogstav
Hvis et stikord begynder med stort vil det komme til at indgå
i stikords_registret med lille begyndelses_bogstav. Dette gælder
dog
.ul
kun såfremt der ikke er andre store bogstaver i ordet.
Hvis fx ordet ROFF var markeret som stik_ord ville det også
indgå i stikords_registret som ROFF.

Denne facilitet kan slås fra med kommandoen

>xs^ -

("index small first-letter") og slås til igen med

>xs +

.a3 Stikordskommando
.ix $stikordskommando$se ix
Hvis et "stikord" består af flere ord (fx "margen, højre") eller
hvis man vil have et stik_ord, der ikke står i teksten, kan man
benytte en speciel stikords_kommando:

>ix <text>

<text> vil da komme til at indgå i stikords_registret.

.a3 Henvisning^er
Ønsker man en indgang i stikords_registret som denne:

index.......................... se stikordsregister

kan man benytte >ix-kommandoen til at lave en henvisning:

>ix $index$se stikordsregister

Det ord, der ønskes benyttet som indgang (her ordet "index") skal
omgives af dollartegn.

.a3 f- og ff-markeringer
.ix f- og ff-markering
Hvis man vil markere, at et ord fore_kommer på "denne og den
følgende side" kan man give det en "f"-markering i stikords_registret:

.ne6
>ix@@stikord
.ms nummertegn i >ix

Dette kommer til at se således ud:

.rc $
stikord........................ $p f.

.ne9
Forekommer ordet på "denne og de følgende sider" kan det "ff"-markeres
med to nummertegn:

>ix @@stikord

giver

stikord........................ $p ff.
.rc

.a2 Registre^
Registre bruges til at ind_sætte tal_værdier i input_teksten.

.rc$
.ex Eksempel-nummer-register^
Dette er eksempel $e.
.rc

.ne4
Ovenstående er lavet med input_teksten:

.nf
>rc^$
Dette er eksempel $e.
.fi

For at markere det sted i teksten, hvor registret skal ind_sættes,
skrives register_tegnet umiddel_bart efter_fulgt af registret.

Registertegn^et sættes med >rc-komman_doen ("register char"). Der
findes
.ul
ikke
noget default register_tegn.

En eventuel register_ind_sættelse i teksten evalueres
.ul
før nogen anden behandling.

.ul
Alle
tegn kan bruges som registre.

.a3 Dynamiske registre
.ix dynamiske registre
En række registre er reserve_ret til at inde_holde specielle
tal_værdier.

.ne 12
Det drejer sig om:

 1 kapitelnummer
 2 afsnitsnummer
 3 underafsnitsnummer
 4 underunderafsnitsnummer
 e sidste eksempelnummer
 E næste eksempelnummer
 f sidste figurnummer 
 F næste figurnummer
 p dette sidenummer
 P næste sidenummer

.rc$
Angående brug se f.eks. eksempel $e og $E.

.rc

.a3 Værditildeling til registre
.ix værditildeling til registre
Et register (der ikke må være dyna_misk) kan til_deles værdi med
>ar^-komman_doen ("assign to register"):

>ar <register> <tal 1> ... <tal n>

Ovenstående svarer til

<register>:=<tal 1>+...+<tal n>

d.v.s registret til_deles vær_dien af summen af de efter_følgende tal.

.ex Værditildeling^
Ønsker man at referere til næste kapitel kan følgende kon_struktion
bruges:

.nf
>rc$
>ar x $1 1
I kapitel $x omtales....
.fi

>ar-komman_doen benyttes altså til at tillægge register "x" værdien
af "nuværende kapitel_nummer" plus een.

Man kan også bruge >ar-komman_doen til at "huske" værdien af et af
de dyna_miske registre, f.eks. hvis man senere vil referere til det.
Det er altså muligt at lave 
.ul
bagudgående
referencer.

.ix bagudgående referencer
.ix referencer, bagudgående

.a4 Regning ved hjælp af registre
.ix beregning i registre
.ix registre, regning i
Generelt er syntaksen for ar-kommandoen:

>ar <register>  <beregningsudtryk^>

hvor <beregnings_udtryk> er en række tal_værdier
(evt. registre) adskilt af +, -, * eller /.

Alle fire operatorer har
.ul
samme prioritet^
og
.ul
parenteser^ kan ikke anvendes.

Det bemærkes, at alle talværdier er heltal^ og at
division^ som følge heraf er heltals_division^.

.ex Beregningsudtryk

.nf
>ar R 7*17
.ar R 7*17

.rc#
tillægger register R værdien #R.
.rc

>rc @
.ms nummertegn i >rc og >ar
>ar K 2
>ar R 20-2*@K
.rc$
.ar K 2
.ar R 20-2*$K

tillægger register R værdien $R.

>ar R 10*105/100+1
.ar R 10*105/100+1

tillægger register R værdien $R.
.rc
.fi


.cl-2

.a2 Kontrol af sideparametre^
.ix global indrykning
Følgende sideparametre kan kontrolleres:

.tb 14 position
som er en slags global indrykning. Den bruges til at positionere
siden rigtigt på papiret.
.br
Kommando: >po^ <tal>
.br
Default = 8

 
.tb 14 øvre margen
som er antal tomme linier mellem hovedet og tekstens start.
.br
Kommando:@>tm@<tal> ("tm" for top margin).
.ix top margin
.ix tm
.ix øvre margen
.ix margen, kontrol af
.br
Default = 5


.tb 14 nedre margen
er antal tomme linier fra tekstens slutning til foden.
.br
Kommando:@>bm@<tal> ("bm" for bottom margin)
.ix bottom margin
.ix bm
.ix nedre margen
.br
Default = 5

 
.tb 14 linie længde
er længden af en højrejusteret linie (incl. evt. indrykning^).
.ix højre-justering
.br
Kommando: >ll^ <tal>
.ix linielængde
.br
OBS.: opdateringen er relativ til gældende linielængde.
.br
Default = 61

  
.tb 14 side længde
er max. antal tekstlinier på en side (excl. øvre og nedre margen).
.br
Kommando: >pl^ <tal> ("pl" for page length)
.ix page length
.ix sidelængde
.br
Default = 60

.a2 Valg af specialtegn^
ROFF kender forskellige tegn, der bliver brugt
til specielle formål, f.eks.:

  - tabulationstegn
  - fikseret mellemrum
  - orddelingstegn

Det er muligt selv at bestemme disse tegn.

.cl2
Det gøres ved at taste en kommando efterfulgt af
evt. mellemrum og tegnet. Vil man således
ændre tabulationstegnet til ":" benyttes >tc^
.cl-2
("tabulation character"):

>tc :

.cl2
Ønskes tegnet slettet skrives kommandoen alene.
Vil man således slet ikke have noget tabula_tions_tegn skrives:

>tc
.cl-2

Kommandoerne ses af følgende tabel, hvor kommando-kode
og default-værdi er angivet:

.in-5
.ta 25 30
.fd 1 23 28 32 70
.ll 5
.ne40
.tc #
.fb
 
.tb 30 tabulationstegn^#tc#!
tabulations_tegnet bruges til at positionere
til den næste tabulationsposition.
 
.fb

.tc !
.tb 30 kommandotegn^!cc!>
det er dette tegn der - når det står først på
en linie - fortæller ROFF, at de efter_følgende to tegn
er en ROFF-kommando.
cc betyder "command charac_ter".

.fb
 
.hc
.tb 30 deletegn^!hc!_
.hc _
dette tegn bruges til at fortælle ROFF, at den
må lave ord-deling^ på det sted, hvor det står,
.ul
hvis det er nødvendigt.
Ellers slettes det.
hc betyder "hyphe_nation charac_ter".
.ix $hyphenation character$se hc

.fb
 
.tb 30 fast mellemrum!sc!@
.ix fikseret mellemrum
.ix mellemrumstegn
.ms indsæt snabel a
dette tegn bruges som fikseret mellem_rum, altså
et tegn som skal op_fattes af ROFF som et alminde_ligt
tegn, men som skal trykkes som et mellem_rum.
sc betyder "space charac_ter".
   
.xc #
.fb

.cl2
.tb 30 stikordstegn#!xc!^
.xc ^
.ms indsæt pil op
dette tegn bruges til at markere at den del af ordet, der er skrevet før
dette tegn, skal indgå i stikordsregisteret.

.fe
(fortsættes)

.ne 30
.fb
 
.tb 30 registertegn!rc
registertegnet markerer, at der på dette sted skal indsættes
værdien af et register. Registret bestemmes af det tegn, der følger
umiddel_bart efter register_tegnet i input_teksten. Bemærk, at der
ikke findes noget default register_tegn.
.ix $registertegn$se rc
.ix rc

.fb

.tb 30 bloktegn^!bc!-
tegnet markerer starten af en simpel blok.
.cl-2

.fe
.ll -5
 
.in5
.ne 18
For de interesserede kan nævnes at ovenstående tabel
er lavet med input-teksten:
.ix tabeller, opstilling af

.nf
>in -5
>ta 25 30
>fd 1 23 28 32 70
>ll 5
>ne 40
>tc @
.ms nummertegn
>fb

.tc &
>tb 30 tabulationstegn@tc@!
.tc !
tabulationstegnet bruges til at positionere
til den næste tabulations_position.

>fb

osv........
.fi

.a2 Kontrol af lige højre-margen^
.ix højre-justering
ROFF justerer automatisk teksten så den får lige højre-margen.
Denne justering slås fra når man kører i "no fill" mode.
Ønsker man at slå den fra i "fill"-mode, således at linierne
"fyldes", men ikke højre-justeres, bruges kommandoen:

>nj^

for "no justify".

Justering af højre-margen^ slås til igen med:

>ju^

.a2 Centrering^
Ønskes en tekst
.ce
centreret
midt på linien bruges kommandoen >ce^.

Ovenstående blev lavet med:

>ce
.br
centreret

Ce-kommandoen virker altså på den næste  input-linie.

.a2 Hoveder og fødder
.ix hoveder
.ix fødder
Det er muligt at få ROFF til at sætte faste hoveder
og/eller fødder på hver side.

Hertil bruges kommandoerne >he^ og >fo^.
    
.cl2
Formatet for disse to kommandoer er ens.
.cl-2

Kommandoens format er:

>he <text>

hvis man ønsker <text> centreret,

>he <text1>@<text2>
.ms bølgelinie

hvis man ønsker <text1> venstre-stillet og <text2> højre-stillet, og

>he <text1>@<text2>@<text3>

hvis man ønsker <text1> venstre-stillet, <text2> centreret
og <text3> højre-stillet.

.ix side-numre
Ønsker man side-nummeret til at indgå tastes et "@"
.ms nummertegn for sidenummer
på det sted, hvor side-nummeret ønskes placeret.

Fødderne i denne manual er lavet med:

>fo Introduktion til ROFF

>he @
.ms nummertegn i >he

Dvs. hovedet er ikke skrevet, det er ROFF's standard-hoved^.

.a2 Message^s
Kommandoen:

>ms^ <text>

vil udskrive <text> på current output med markering af
side-nummer og linie-nummer. Kommandoen bruges f.eks.
hvis en manual kræver efter_behandling i form af
hånd_tegning af special_tegn^.
    
.ix håndtegning af specialtegn

Lige før de steder i denne manual, hvor "snabel-a"
("@")
.ms snabel a
er tegnet er der skrevet:

>ms indsæt snabel-a

.cl2
.a2 Konkatenering
Når man starter på en ny input-linie vil ROFF antage, at man også
starter på et nyt ord, og derfor indsætte mellemrum før det første
ord på input_linien.

Dette kan være uheldigt fx i forbindelse med under_stregning. Ønskes
således kun en del af ordet under_streget (fx "input" i ordet
"inputlinie") vil konstruktionen

.nf
>ul
input
linie
.fi

give resultatet:

.ul
input
linie

Man kan i disse situationer benytte konkate_nerings_komman_doen

>jo

("jo^" for join^) til at "sammenføje" linierne:

.ne 5
.nf
>ul
input
>jo
linie
.fi

giver da resultatet:

.ul
input
.jo
linie

som ønsket.

.a2 Korrektionslinier^
Når et skrift udgives i en ny version^, bør de
ændrede/til_føjede steder markeres med
.ix markering af rettelser
.ix rettelser, markering af
en korrektions_linie i venstre margen (se ref. 1).

Hertil benyttes >cl-kommandoen ("cl^" for correction line).

>cl-kommandoen har en parameter, der angiver hvilken
version af skriftet, rettelsen vedrører.
Versions_nummer^et er positivt når korrektions_linien
skal starte og negativt, når den skal slutte.

Versions_nummeret sættes med >ve^-kommandoen og skal
altid være større end 0.

.ex Korrektionslinier
Inputteksten:
.ne10
.nf
 
>ve 7
 .
 .
>cl 7
  <rettelse>
>cl -7
.fi

vil bevirke, at <rettelse> vil blive markeret med en
korrektions_linie. Rettes første linie i en senere version
til

.nf
>ve 8
.fi

vil korrektions_linien ikke blive lavet mere.

Det er altså kun cl-kommandoer med det aktuelle versions_nummer
(sat af >ve), der giver anledning til korrektions_linier.

Der er derfor ingen grund til at fjerne "gamle" >cl-kommandoer.

Endelig skal det bemærkes, at da korrektions_linien laves
.ul
uden for
tekst_feltet, skal "po^" - altså positionen på papiret, som
sættes med >po-kommandoen - være mindst 2 de steder, hvor
der ønskes korrektions_linier. Den er default 8.
.cl-2

.a2 Kontrol af linieafstand^
.ix kontrol af linieafstand
.ds
Normal linieafstand er 1, men det er også muligt at
få ROFF til at køre med dobbelt linie_afstand,
som det f.eks. er sket i dette afsnit. Lige før
afsnittet er givet kommandoen:

>ds^

for "double spacing".
.ss
.ix $single spacing$se ss

Man vender tilbage til normal linie_afstand ved

>ss^

for "single spacing".

Generelt kan linieafstanden sættes med:

>ls^ <tal>

for "line spacing".
.ix $line spacing$se ls

.nf
>ds svarer altså til >ls 2 og
>ss svarer til >ls 1
.fi

.a2 Kontrol af numre
.ix kontrol af numre
Det er muligt at kontrollere

  - sidenumre  
  - afsnitsnumre og
.cl2
  - BOSS-linie-numre

.a3 Sidenumre
.ix sidenummerering
Sidenumre kan sættes med

>pn^ <t1> <t2> .... <tn>

for "page number". Sidenummeret sættes til summen af tallene
t1..tn.

Ønskes sidenummeret fx talt op med 17 kan man bruge:
.nf
>rc $
>pn $p 17
.fi
idet register "p" indeholder det øjeblikkelige side_nummer.

Opdatering af sidenummeret skal udføres
.ul
efter
man har skiftet til den side, der skal have det ønskede nummer.
.ix $page number$se pn

Formatet for sidenumrene, dvs. det antal positioner, der
afsættes til det i hoveder eller fødder, sættes med:

>pf^ <tal>

Default er 3.
.cl-2

.a3 Afsnitsnumre
.ix afsnitsnummerering
Afsnitsnumre kan sættes med kommandoen >aa^ efterfulgt af
1 til 4 tal.

Således vil

>aa^ 7 4

bevirke, at >a2 starter ved afsnit 7.4.

.cl2
Ønskes kapitel_nummeret talt op med 3 kan følgende in_put bruges:

.nf
>rc $
>ar x $1 3
>aa $x
>rc
.fi

hvor register^ x gives værdien af det øjeblik_kelige
kapitel_nummer plus 3.

Herefter kan register x benyttes til at sætte kapitel_nummeret
i >aa-kommandoen

.ix optælling af kapitelnummer
.ix kapitler, optælling af

.a3 BOSS-linie-numre^
.ix bosslines

Med kommandoen:

>bl <tal>

kan man sætte BOSS-linie_nummeret til en ønsket værdi. Dette kan
fx være nyttigt, hvis input_teksten ligger på flere filer^
(der så kopieres sammen før roffning).
.ix flere filer

Med

>bl^ 0

først på hver fil vil BOSS-linie_numrene komme til at passe.
.cl-2

.a1 KØRSEL AF ROFF
.ix kørsel af ROFF
.ix udprintning af tekst
.ix $qume-printer$se qume
ROFF-programmet har følgende kald-parametre:
.ix kald-parametre til ROFF

.ta 21 34
.nf
navn!default!virkning
.fi

.tb 25 english^!no
De steder hvor ROFF skriver tekst (f.eks i indholds_forteg_nelse^n)
skrives teksten på engelsk.

.tb 25 clock^!no
ROFF vil hvert sekund udskrive forbrugt cputid på current output.

.tb 25 level^!4
Level angiver hvor mange niveauer, der ønskes i
indholds_fortegn_else^n.

.tb 25 first^!1
Nummeret på den første side, der skal skrives ud.
Nummeret må ikke være 0.
.cl2
Synonym er "f".
.cl-2
.ix f

.tb 25 last^!1000000
Nummeret på den sidste side, der skal skrives ud.
First og last bruges hvis man kun vil have en del
af manualen skrevet ud.
.cl2
Nummeret må ikke være 0.
Synonym er "l".
.cl-2
.ix l

.tb 25 test^!no
Bruges til debug af ROFF-programmet selv.

.tb 25 bosslines^!no
Vil udskrive de tilhørende BOSS-linie_numre til højre
på siden. Bruges ved korrektur^_læsning.
Synonym er "bl".
.ix bl

.tb 25 lineno^!no
Vil udskrive linie-numre inden for siden til venstre for teksten.
Bruges ved korrektur_læsning.

.ne10
.cl2
.tb 25 message^!yes
Vil udskrive >ms-tekster på current output.
.cl-2
Synonymt er "ms" og "mess".
.ix ms
.ix mess

.tb 25 qume^!no
Producerer output i format beregnet til qume^-printer.

.cl2
.tb 25 index!no
Der genereres et stikords_register.
Bruges denne option skal man sikre sig, at der er
tilstrækkelig mange areal-proces_ser (med "area").
.cl-2

Roff-programmet kaldes således:

 <out>=roff <in> <kald-parametre>

Indholds_fortegn_else^n kommer altid ud på filen "contents".

.ne 20
Følgende job^ kan bruges til korrektur^:

.fd 7 64
.fb

.nf
.cl2
10 job stb 200 area 10 size 50000 time 11 0 
20 message start proofjob
30 contents=set 1 disc
40 ud=set 1 disc
50 index=set 1 disc     ; hvis der laves stiksordsreg.
60 helplist=set 1 disc  ; do.
70 outlist=set 1 disc   ; do.
80 ; en linies fyld
90 ud=roff,
100 ; her skrives filnavnet efterfulgt af komma
110 lineno.yes bosslines.yes
120 proofoutput=copy contents ud
130 convert proofoutput
140 finis
.cl-2
 
.fe

En korrekturudskrift fås da ved:

.ne 4
 get proofjob^
 100 <filnavn>,
 run

.cl2
Ønskes stikordsregister skrives naturligvis

.ne4
get proofjob^
100 <filnavn> index.yes,
run
.cl-2


.ne20
Ønskes den roffede tekst skrevet ud på f.eks.
Qume^-printer kan dette job bruges:

.fb
 
.cl2
10 job stb 200 area 10 devi 50 size 50000 time 11 0
20 message start roffjob
30 contents=set 1 disc
40 ud=set 1 disc
50 index=set 1 disc      ; hvis der laves stikordsreg.
60 helplist=set 1 disc   ; do.
70 outlist=set 1 disc    ; do.
80 ; fyld
90 ud=roff,
100 ;her indsættes filnavnet efterfulgt af komma
110 qume.yes
120 qume=copy contents
130 qume=copy ud
140 finis
.cl-2
 
.fe
.fi

"qume" må først være sat, f.eks. med

qume^=set tw terminal5

eller lignende.

Teksten skrives da ud med:

 get roffjob^
 100 filnavn,
 run

.ap
.a1 REFERENCER

.tb 8 ref. 1
RCSL-no: 43-GL7390
.sp1
.ul
Standard for opbygning, skrivning og trykning
.ul
af klasse 2 manualer.
.sp1
oktober 1978
.br
Jens Falkenberg Andersen m.fl.
.sp1
Denne manual definerer standarder for RC klasse 2
manualer. Den henvender sig til forfattere, skrive_personale
og trykkere. Der bringes detaljerede beskrivelser
af arbejds_fordeling og ansvar.

.a1 MÅLEARK

Dette ark kan bruges dels til at måle hvor
mange linier, der skal afsættes til figurer,
.ix figurplads, beregning af
dels til bestemmelse af tabulations- og ramme_positioner.

.tm 0
.a1 OVERSIGT OVER KOMMANDOER
.ta 16 24
.nf
.in-2
.fd 4 12 22 61
.fb
Komm   default!betydning
.in2
.fb
aa!!sæt afsnitsnumre
a1!!start nyt kapitel
a2!!start nyt afsnit
a3!!start nyt underafsnit
a4!!start nyt underunderafsnit
ap!!start bilags-sektion
.cl2
ar!!giv register værdi
bc!-!bloktegn
bl!!sæt boss-linienummer
.cl-2
bm!5!sæt nedre margen
br!!bryd linie
cc!>!kommando tegn
ce!!centrer næste input-linie
.cl2
cl!!korrektions linie
.cl-2
ds!nej!dobbelt linieafstand
ex!!start eksempel
fb!!start ramme
fd!!definer ramme
fe!!slut ramme
fg!!figur-tekst
fi!ja!start fyldning af linier
fo!!sæt fod
.cl2
fv!!visuel rammedefinition
.cl-2
.hc %
hc!_!orddelingstegn
.hc _
he!!sæt hoved
.ms he, nummertegn
in!8!indrykning
.cl2
ix!!stikords_register_kommando
jo!!ingen blank før næste input linie
.cl-2
ju!ja!start lige højre margen
ll!61!sæt linielængde
ls!1!sæt linieafstand
ms!!meddelelse
ne!!behøver n linier
nf!nej!ingen fyldning af linier
nj!nej!ingen lige højre-margen
np!!ny side
pf!3!sæt side-nummer-format
pl!60!sæt sidelængde
pn!!sæt sidenummer
po!8!sæt position på siden
.cl2
rc!!sæt register tegn
.cl-2
sc!!fikseret-mellemrums tegn
.ms snabel a
sp!!lav n tomme linier
ss!ja!sæt linieafstand til een

.fe
(fortsættes)
.np
.fb

ta!!sæt tabulationspositioner
tb!!tekst blok
.tc %
tc%!%tabulationstegn
.tc !
td!!vis tabulationspositioner
tf!!tabuler i ramme
ti!!temporær indrykning
tl!!hent fra tab register
tm!5!sæt øvre margen
ts!!gem i tab register
ul!!understreg næste input-linie
.cl2
ve!!versions nummer
.xc
xc!^!stikordstegn
.xc ^
xs!ja!lille begyndelsesbogstav i stikord
.cl-2
.ms pil-op i xc
.fi
  
.fe
.bm 4
.tm 4

▶EOF◀