Hvad er DVI-filformatet?
En .dvi-fil er det binære typesatte dokument produceret af TeX- og LaTeX-typesætningssystemerne. Navnet står for «Device Independent» (enhedsuafhængig), hvilket afspejler designmålet: formatet koder præcist hver glyf-position og regel på hver side uden at binde sig til en specifik outputenhed - printer, skærm eller fotosætter.
DVI-filer er sekventielle opcode-strømme. Den første byte er altid 0xF7 (pre-præambel-opkoden), og den anden byte er formatversionen: 0x02 for standard DVI eller 0x03 for Omega/Lambda-udvidet variant med understøttelse af bidirektionel tekst. Sideblokke afgrænset af bop- og eop-opkoder registrerer absolutte glyf-positioner, skrifttypevalg og boksregler. En postambel følger efter, som indeholder skrifttypetabellen og sidedimensionerne, og afsluttende 0xDF-bytes udfylder filen til en fire-byte grænse.
En kritisk egenskab: DVI-filer refererer til skrifttyper ved navn og TFM-kontrolsum, men indlejrer dem ikke. Fremviseren eller konverteren skal have de refererede skrifttyper tilgængelige lokalt - typisk gennem en TeX-distribution. Dette adskiller sig fra PDF, som indlejrer skrifttype-undersæt for selvstændig gengivelse.
Moderne TeX-motorer går i stigende grad helt udenom .dvi: pdfLaTeX og LuaLaTeX producerer PDF direkte; XeTeX udsender en mellemliggende .xdv udvidet DVI-fil. Den klassiske kæde - .tex → .dvi → dvips → .ps → PDF - forbliver fuldt funktionel under TeX Live og MiKTeX. Plain TeX og standard LaTeX (ikke-PDF-motorer) fortsætter med at udsende .dvi som deres oprindelige output.
Sikkerhed og tryghed
RISIKO: LOWDVI-filer indeholder ingen indlejrede scripts eller makroer. «xxx» (special)-kommandoerne indlejrer driver-specifikke strenge (f.eks. PostScript-specials via dvips), men disse fortolkes kun af DVI-driveren og eksekveres ikke som kode. Lavrisiko-format der udelukkende bruges i akademiske og TeX-sammenhænge.
Formatdetaljer
kort fortalt- Digital Video Interface (hardware-stik) - DVI refererer også til skærmstik-standarden (DVI-D, DVI-I, DVI-A) - fuldstændig urelateret; hardware, ikke et filformat.
Programmer der åbner DVI-filer
Tekniske detaljer
dyb specifikation| Kodning | Binær opcode-strøm; multi-byte heltal er big-endian |
| Magic bytes | 0xF7 ved offset 0 (pre-præambel-opcode); 0x02 ved offset 1 for standard DVI-formatversion |
| Formatvarianter | Version-byte 0x02 = standard DVI; 0x03 = Omega/Lambda udvidet DVI (RTL/LTR bidirektionel); XDV = XeTeX-udvidelse |
| Filstruktur | Præambel → sideblokke (bop/eop-opkoder) → postambel (skrifttypetabel, sidetal, dimensioner) → 0xDF padding-bytes |
| Håndtering af skrifttyper | Skrifttyper refereres ved navn og TFM-kontrolsum; ikke indlejret - fremviser kræver lokal skrifttypeinstallation |
| Skrifttype-kontrolsum | TFM-kontrolsum indlejret pr. skrifttype-definitionsrecord; uoverensstemmelse udløser en advarsel i fremviseren |
| Filafslutning | Afsluttende 0xDF-bytes udfylder den samlede fillængde til et multiplum af 4 bytes |
| Typisk filstørrelse | 10 KB - 5 MB (fra akademisk artikel til hel bog) |
| Koordinatsystem | Dimensioner i DVI-enheder (1 DVI-enhed = 100 nm ved standard 1000-enheds forstørrelse); absolut sidepositionering |
| Associeret OS | Linux, Windows, macOS, Unix (platformsuafhængig via TeX Live, MiKTeX, MacTeX) |
| Efterbehandlingskæde | dvips konverterer til PostScript; dvipdfm/dvipdfmx konverterer til PDF; dvisvgm konverterer til SVG |
| Byte-orden | Big-endian for alle multi-byte heltal i DVI-opkoder |
| Udgivet | 1979 (with TeX; first described in TUGboat 1982) |
| Seneste version | DVI format 2 (standard); format 3 = DVItype with mixed RTL/LTR (Omega/Lambda); XDV = extended DVI used by XeTeX |
| Åben standard | Ja · royaltyfri |
| Specifikation | www.mn.uio.no |
DVI-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om DVI-filer.