Hopp til hovedinnhold
SubtitleMatrix

Endre plassering av undertekster

Tekst og stilFlytt undertekster på skjermen
Eller lim inn underteksttekst

Innstillinger

Ni forhåndsinnstilte celler pluss en fjerning. Markøren som skrives, er {\anN} i numerisk tastaturrekkefølge — 7/8/9 er øverste rad, 4/5/6 midten, 1/2/3 nederst — og den settes foran den første linjen i hver tekstblokk. ASS og SSA leser den tilbake som en ekte justeringskode; i SRT er den bokstavelig tekst som libass, VLC og mpv respekterer og enklere spillere skriver ut. Eksisterende \pos-koordinater røres aldri. Velg det siste alternativet for å fjerne posisjonsmarkører i stedet for å legge til en.

Denne siden flytter hver tekstblokk i en undertekstfil til én av ni skjermposisjoner, eller fjerner posisjonsmarkøren fra en fil som allerede har en. Den skriver en `{\anN}`-justeringskode først på første linje i hver blokk, der N nummererer rutene slik et numerisk tastatur gjør: `7` `8` `9` langs toppen, `4` `5` `6` nedover midten, `1` `2` `3` langs bunnen. Den inndelingen er ikke en leserekkefølge, og sidens egne eksempler finnes hovedsakelig for å gjøre det umulig å velge øverst til venstre og få nederst til venstre ved et uhell.

Markøren er det ene plasseringselementet tre formater er enige om. I ASS og SSA er den en lovlig override-kode, lest tilbake inn i blokken som et eget felt og skrevet ut igjen i den dokumenterte rekkefølgen bak en eventuell `\pos` — så en fil som aldri forlater ASS, overlever rundturen eksakt. I SRT finnes det ingen plasseringssyntaks i det hele tatt, så markøren skrives som bokstavelig tekst fremst i linjen: libass-baserte avspillere som VLC og mpv følger den, og en avspiller som ikke kjenner den, vil skrive de fire tegnene på skjermen. Siden sier dette rett ut i stedet for å love en plassering den ikke kan garantere.

Posisjon behandles som en egenskap ved hele blokken, så markøren settes bare foran første linje, også når blokken er to eller tre linjer lang. En eksisterende `\pos(x,y)` får stå i fred: en pikselkoordinat fester blokken til én skjermstørrelse og ryker på alle andre, mens en justeringskode lar avspilleren regne ut posisjonen selv, og å flytte en blokk noen har plassert for hånd, er ikke det denne siden ble bedt om.

Å velge Fjern fra posisjonslisten er en reell instruks, ikke en tiende posisjon. Den fjerner den ledende markøren og den lagrede justeringen fra hver blokk — den eneste veien tilbake til en vanlig SRT uten markører — mens en markør som står midt i en linje, blir stående, fordi den er replikk og ikke plassering. Ingenting lastes opp, og timekodene røres aldri.

Eksempler

To enkle SRT-tekstblokker flyttet til øverst i midten

Inndata

1
00:00:01,000 --> 00:00:02,000
Hello there.

2
00:00:03,000 --> 00:00:04,000
Second line.

Resultat

1
00:00:01,000 --> 00:00:02,000
{\an8}Hello there.

2
00:00:03,000 --> 00:00:04,000
{\an8}Second line.

`\an8` er ruten øverst i midten — midtasten på øverste rad i et numerisk tastatur. Markøren settes fremst i teksten og ikke på en egen linje, og timekodene, blokknumrene og de tomme linjene er urørt, så filen er fortsatt en gyldig SRT som bare bærer fire ekstra tegn per blokk.

Den samme filen i øvre venstre og nedre venstre hjørne

Inndata

1
00:00:01,000 --> 00:00:02,000
Hello there.

Resultat

1
00:00:01,000 --> 00:00:02,000
{\an7}Hello there.

Øverst til venstre er `7`, mens nederst til venstre er `1` — seks fra hverandre, fordi nummereringen følger et tastatur og ikke en leserekkefølge. Det er tilordningen folk oftest tar feil av for hånd, og grunnen til at hver av de ni forhåndsvalgene har sitt eget tilfelle på denne siden: ett ombyttet siffer er ellers usynlig til noen ser videoen.

Flytting av en ASS-blokk som allerede sto øverst til venstre

Inndata

[Script Info]
ScriptType: v4.00+

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:02.00,Default,,0,0,0,,{\an7\i1}Hello there{\i0}

Resultat

[Script Info]
ScriptType: v4.00+

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:02.00,Default,,0,0,0,,{\an2}{\i1}Hello there{\i0}

Den gamle `\an7` ryddes bort før `\an2` skrives, så blokken bærer én justering og ikke to — en duplikat ville latt avspilleren ta den som kommer sist, som er en verdi ingen i denne kjøringen valgte. Kursivparet står nøyaktig der det sto. I ASS er markøren en ekte override-kode, så ingenting her dukker opp som tekst på skjermen.

Fjerning av markører fra en fil som har to forskjellige

Inndata

1
00:00:01,000 --> 00:00:02,000
{\an8}Hello there.

2
00:00:03,000 --> 00:00:04,000
{\an2}Second line.

Resultat

1
00:00:01,000 --> 00:00:02,000
Hello there.

2
00:00:03,000 --> 00:00:04,000
Second line.

Fjern fjerner det som sto der, ikke bare det forhåndsvalget du ville ha valgt, og skriver ingenting tilbake. En fil som kommer ut av denne kjøringen, spilles av på avspillerens egen standardposisjon, og det er poenget: det er den eneste veien fra en markør tilbake til ren tekst, siden ingen posisjon uttrykkes som fraværet av en.

Ofte stilte spørsmål

Hvilken skjermposisjon er `{\an1}`, og hvorfor begynner det ikke øverst til venstre?

`1` er nedre venstre hjørne. De ni verdiene følger det numeriske tastaturet: `7` `8` `9` er øverste rad med ruter, `4` `5` `6` midtraden, `1` `2` `3` nederste rad. Øverst til venstre er altså `7`, midten er `5`, og nederst til høyre er `3`. Posisjonslisten på denne siden er skrevet i leserekkefølge og oversatt til disse tallene for deg, som er den viktigste grunnen til å bruke den framfor å redigere markøren for hånd.

Virker denne posisjonssiden på WebVTT-, SAMI- eller TTML-filer?

Nei, og listen over godtatte formater er kort med vilje: bare SRT, ASS og SSA. WebVTT og TTML har sin egen plasseringssyntaks — tekstblokkinnstillinger som `line:` og `align:`, eller `tts:`-attributter — og denne siden skriver dem ikke; å ta dem imot ville betydd at kjøringen rapporterte en posisjonsendring mens filen kom ut uendret. Samme resonnement utelukker JSON, hvis posisjonsfelt har fem horisontale verdier og ikke ni ruter.

Blir markøren synlig som tekst i en SRT-fil?

Det avhenger av avspilleren, og denne siden kan ikke endre det. SRT har ingen plasseringssyntaks, så `{\an8}` lagres som vanlige tegn fremst i linjen. Avspillere bygget på libass — blant dem VLC og mpv — leser det som en justeringsinstruks og plasserer blokken deretter; enklere avspillere behandler det som tekst og vil vise de fire tegnene på skjermen. Trenger du en garantert plassering på hver enhet, må blokken brennes inn i bildet, som ligger utenfor det en undertekstfil kan gjøre.

Blir en eksisterende `\pos(x,y)` overskrevet av den nye posisjonen?

Nei — `\pos` står nøyaktig som den var. En pikselkoordinat og en justeringskode er forskjellige instrukser: `\an` ber avspilleren regne ut posisjonen for skjermen den står på, mens `\pos` fester blokken til ett punkt i én oppløsning. Å fjerne en håndplassert `\pos` ville angre bevisst arbeid, så denne siden skriver bare justering og fjerner bare en tidligere justering, aldri en koordinat.

En tekstblokk er to linjer lang — får hver linje sin egen markør?

Bare første linje får en, fordi en posisjon hører til blokken og ikke til linjen. En markør på hver linje ville i beste fall vært overflødig, og i ASS ville den vært en andre override-blokk som gjorde det samme som den første. Når markøren fjernes, gjelder samme regel omvendt: bare en markør helt fremst på første linje strippes, og en som står midt i en setning, behandles som en del av replikken.

Hva skjer hvis jeg bruker den samme posisjonen to ganger?

Ingenting — andre kjøring gir en byte-identisk fil og rapporterer at ingen blokk ble endret. Siden fjerner en eventuell eksisterende markør før den skriver den nye, så å bruke et forhåndsvalg den allerede har, fjerner og legger tilbake de samme fire tegnene. Det betyr noe når en fil går gjennom en runde med gjennomlesing: å kjøre siden igjen for å være sikker på at posisjonen er brukt, kan ikke forskyve noe, og nedlastingen er den samme filen og ikke en kopi med noe stille annerledes i seg.

Relaterte verktøy