Linje oversættelse

Linjeskift , eller linjeskift , er fortsættelsen af ​​udskrivning af tekst fra en ny linje, det vil sige fra venstre kant til linjen under, eller allerede på næste side. På computere gøres dette med Enter - tasten .

Linjeseparator , der angiver stedet for linjeskiftet, i tekst er data et eller et par kontroltegn , og i markeret tekst er det også et bestemt tag (i HTML - <br>  -tagget  , fra engelsk  break  - " pause"). Linjeseparatoren kaldes også bare en nylinje, når der ikke er behov for at skelne dem.

Sammen med andre handlinger udføres der også et linjeskift før næste afsnit eller side.

Terminologi

Linjefeed forkortes som NEL (fra engelsk  næste linje  - "fra næste linje, gå til næste linje", eller ny linje  - "fra en ny linje, gå til en ny linje").

Carriage return ( CR ) eret ASCII  -kontroltegn ( 0x 0D , 13 10 , '\r'), der flytter markøren til venstre kant af feltet. Dette kontroltegn indtastes med Enter-tasten . Når den skrives til en fil , behandles den som en ny linje alene på Macintosh -systemer .

Feed per line eller Translation per line (fra den engelske  linjefeed , LF  - "feed [paper] per line") er et ASCII-kontroltegn ( 0x0A , 10 i decimalnotation, '\n'), når den vises, flyttes markøren til næste linje. I tilfælde af en printer betyder det at flytte papiret op, i tilfælde af et display , at flytte  markøren ned, hvis der stadig er plads, og at rulle teksten op, hvis markøren var på den nederste linje. Hvorvidt dette returnerer markøren til venstre kant eller ej, afhænger af implementeringen.

Således garanterer outputtet af CR + LF -sekvensen i terminalens semantik handlingen "opret en ny linje".

Terminaler (og deres emulatorer) kan også udføre forskellige tegntransformationer (f.eks . LF → CR + LF , CR → CR + LF ) på tekstinput og -output.

Hard return , nogle gange en hardware return  , er en brugerleveret linjeseparator. I maskinrepræsentation af tekst udtrykkes en hard return eksplicit, normalt ved kontroltegn eller et tag .

En blød retur  er en linjeskift udført af en tekstbehandler på det punkt i teksten, som den har valgt. En blød retur adskiller tekstlinjer i sin visuelle (brugersynlige) repræsentation, men må ikke udtrykkes på nogen måde i den maskinelle repræsentation af denne tekst.

I ASCII

Systemer baseret på ASCII eller et kompatibelt tegnsæt bruger enten LF (line feed, 0x 0A ) eller CR (carriage return, 0x0D ) alene eller sekvensen CR + LF ; se nedenfor for den historiske årsag til CR + LF- konventionen . Disse navne er baseret på printerkommandoer: en linjeskift fremfører tromlen en linje, og en vognretur betyder, at printervognen skal vende tilbage til begyndelsen af ​​den aktuelle linje.

I Unicode

Som standard bør enhver Unicode -kompatibel applikation behandle hvert af følgende tegn som en ny linje:

Sekvensen CR + LF ( U+000D U+000A ) skal behandles som en ny linje, ikke to [1] .

Vanskeligheder

Der er ingen almindeligt accepterede forkortelser for russiske udtryk. VK ( Tilbage til vognen ) falder i stavemåden sammen med forkortelsen fra engelsk.  BreaK ("break [line]", - det samme som line feed), og PS'en skelner ikke mellem Feed from the line og Transfer from the line .

Forskel på repræsentationer

Manglen på en enkelt almindeligt accepteret line feed-repræsentation i forskellige operativsystemer komplicerer udvekslingen af ​​tekstdata mellem dem. Unicode forsøger at forene denne forskel ved at udligne CR , LF , og CR + LF , men er i konflikt med dens nedarvede ASCII ved behandling af LF + CR -sekvensen , der ikke er forudgået af CR : ifølge ASCII er dette en ny linje, og ifølge Unicode , to.

Linjefeed ved indtastning fra tastaturet er repræsenteret ensartet i alle systemer - med CR -tegnet , og i systemer med en anden linjeskift-repræsentation skal tekstdata omkodes til det påkrævede format.

Historie

hulkortlagringssystemer blev en linje skrevet til et hulkort, så linjen havde en given længde i henhold til antallet af kolonner (normalt 80). Kortere linjer blev opnået med mellemrum, og linjer længere blev skåret af. Der var ingen linjeseparator, og en implicit ny linje blev antaget for hver 80 tegn. Nogle tidlige mainframe -operativsystemer brugte dette til at gemme tekst i filer, hvor der ikke længere var en naturlig grænse for linjelængde.

CR + LF

Mekaniske skrivemaskiner havde et håndtag, der førte slæden tilbage til venstre kant af siden og drejede skaftet og flyttede papiret op ad en linje. På teletyper og senere alfanumeriske printenheder (ATsPU), i stedet for en vogn, var der et hoved, i laserprintere holdt det op med at være materiale, men i udtrykket carriage return blev alt dette fortsat kaldt en vogn for ikke at ændre sig det. På fjernskrivere blev vognretur og linefeed adskilt, hvorfra traditionen med at repræsentere linefeed som CR + LF overgik til tekstfiler.

Slut på linje

Teletyper blev først trykt på rullepapir, og meddelelser begyndte og sluttede med en linefeed, så hver begyndte helt sikkert på en ny linje. Derfor er det skik at inkludere en beskedseparator i selve beskeden.

En interaktiv driftstilstand dukkede op på computere, når brugerens inputkontrolmeddelelser og svarprogrammeddelelser blev udskrevet på skift. Brugeren efter beskeden oversatte altid linjen, da det samtidig betød, at kommandoen skulle udføres, men programmerne oversatte nogle gange ikke linjen efter deres besked, på trods af recepten. Output-enheden var ikke oprindeligt tilpasset til at sikre, at terminalen kunne overvåge linjeskift, og det var vanskeligt at implementere dette, derfor ville den terminal, der styrer dialogen, for at brugerens input kunne starte på en ny linje også oversætte linje efter programmeddelelsen. Det blev også foreskrevet at placere et linjeskift i slutningen af ​​tekstfilen.

Bekymringen om adskillelse af meddelelser faldt på terminalen, og de holdt op med at tænke på det, og linjeskift i slutningen af ​​teksten blev gentænket som slutningen af ​​den sidste linje, sammen med hvilken, som linjeafslutning, alle linjeskift i almindelighed blev nytænket, hvilket blev lettet af bekvemmeligheden ved at arbejde med regelmæssigt afsluttede linjer fra et synspunkt programmering, beslægtet med nul-terminerede strenge . Så skikken med at inkludere meddelelsesseparatoren i meddelelsen er gået over til skik med at inkludere linjeseparatoren i strengen.

En ekstra linje i slutningen af ​​en fil er normalt ikke noget besvær, så linjeskift kaldes stadig slutningen af ​​linjen, og linjeseparatoren er slutningen af ​​linjens tegn (EOL, engelsk  end of line ).

Strømmen af ​​en separator ind i en trailer og tilbage er ikke kun en line feed. For eksempel afslutter et semikolon kommandoer i C , men adskiller dem i Pascal . I skriftlig tale sættes der næsten altid et punktum efter flere sætninger, og efter en enkelt sætning oftere ikke. Denne tøven er tydeligt synlig i lister , hvor enkelte sætninger nogle gange begynder med et stort bogstav og nogle gange med et lille bogstav.

Afsnit

På fjernskrivere, og så i de første redaktører, havde opdelingen af ​​tekst i afsnit ikke sin egen særlige repræsentation, til dette brugte de tomme linjer eller et indrykning af flere mellemrum, og linjeskift i et afsnit blev sat ned manuelt.

Senere dukkede der automatisk indpakning op i redaktørerne, som udføres i farten, når teksten tegnes på ny hver gang. For at skelne det fra en manuel, blev det kaldt en blød retur, og en manuel blev kaldt en hård retur (overførslen blev også kaldt blot en returnering, se afsnittet Repræsentationsforskel ). Samtidig blev linjeseparatoren overført som før, men den fik også betydningen af ​​en paragrafseparator - for de linjer, hvor auto-orddeling fungerede, og som blev til afsnit. Omskifteren til denne tilstand kaldes ordombrydning .  Med auto-orddeling brød manuel orddeling afsnittet, afstanden mellem afsnittene blev udført som før (i nye vendinger - ved at sammenflette med et tomt afsnit), men hovedkvaliteten af ​​afsnittet - uafhængighed af linjeskift - blev opnået.

Den automatiske overførselstilstand blev tændt og slukket manuelt af brugeren, det var vanskeligt at bestemme dette programmæssigt, det vil sige, efter at have sluppet af med manuel overførsel, fik vi en anden manuel betjening. Det blev klart, at mere automatiseret afstand mellem linje- og afsnitsadskilleren var uundværlig, det vil sige, at de havde brug for to forskellige tegn.

For ikke at bekymre sig om kompatibilitet med den allerede eksisterende linje-/afsnitseparator i ASCII , brugte udviklerne ikke ASCII-tegn til linjeseparatoren og afsnitsseparatoren. I HTML blev <br /> - og <p> -taggene brugt , i Unicode  blev henholdsvis U+2028 og U+2029- tegnene brugt . I Wikipedia kan afsnit adskilles af tomme linjer, som vises med fuld afstand.

Se også

Noter

  1. Unicode Standard Annex #14: Unicode Line Breaking Algorithm Arkiveret 17. februar 2009 på Wayback Machine 

Links