DVI (fájlformátum)
| Ezt a szócikket át kellene olvasni, ellenőrizni a szöveg helyesírását és nyelvhelyességét, a tulajdonnevek átírását. Esetleges további megjegyzések a vitalapon. |
|
|
Ez a szócikk vagy szakasz lektorálásra, tartalmi javításokra szorul. |
| DeVice Independent (DVI) | |
| Fájlkiterjesztés | .dvi |
| MIME-típus | application/x-dvi |
| Fejlesztő | David Raymond Fuchs, Donald Erwin Knuth[1] |
| Formátum típusa | bináris dokumentum fájlformátum |
A DVI fájl (DeVice Independent, magyarul eszközfüggetlen) a TeX program kimeneti fájlformátuma, amit Donald Knuth, a Stanford University professzora írt, PhD hallgatói közreműködésével.[2] A fájlformátum egy dokumentum vizuális tulajdonságait írja le (például font, margók, de NEM tartalmazza az esetleges beszúrt médiafájlokat, fontokat közvetlenül) olyan módon (ahogy a neve is sugallja), hogy ne függjön semmilyen megjelenítő eszköztől. A fájl tipikusan egy másik program (DVI driver) bemenete, ami vizuálisan megjeleníthető alakra hozza (pl. egy DVI viewer alkalmazás, direkt nyomtatás).[3] DVI driver lehet egy másik fájlformátumba konvertáló program is. A DVI driverek szabványosításával a TeX Users Group's Technical Working Group on DVI Driver Implementation and Standardization Issues (röviden TWG-DVI) foglalkozik.[4][5]
Felépítés
[szerkesztés]Fizikai felépítés
[szerkesztés]A DVI fájl egy bájtstream, ami gépi kódszerű utasítások sorozatának feleltethető meg. Minden utasítás első bájtja egy műveleti kód (opcode), amelyet 0 vagy több bájt követ, ezek reprezentálják a műveleti kód paramétereit. A paraméterek maguk több bájtosak is lehetnek. A paraméterek rendszerint nemnegatív egészek, de a négy bájt hosszú, és a távolságot reprezentáló kisebb paraméterek negatív értékeket is felvehetnek, ezeket kettes komplemenssel ábrázolják. A több bájtos paraméterekhez a big-endian ábrázolást használják.
Logikai felépítés
[szerkesztés]A DVI fájl áll egy "preambulumból", amit egy vagy több "oldal" követ, majd egy "posztambulummal" záródik. A preambulum egy egyszerű pre utasítás. Minden oldal egy bop eop utasításokkal keretezett tetszőleges számú utasításból álló sorozat. Minden eop utasítást egy bop vagy egy post utasítás követ (ha eltekintünk a nop és az fnt_def utasításoktól), az utóbbi eset azt jelenti hogy nincs több oldal, a posztambulum következik.
A DVI utasítások listája (angol)
[szerkesztés]Bővebb referenciáért és az utasítások részletes leírásáért lásd a DVI fájlformátum specifikációját[6]
| Opcode | Instruction Name | Parameters | Description |
|---|---|---|---|
| 0...127 | set_char_i
|
typeset a character and move right | |
| 128 | set1 |
c[1]
|
typeset a character and move right |
| 129 | set2 |
c[2]
| |
| 130 | set3 |
c[3]
| |
| 131 | set4 |
c[4]
| |
| 132 | set_rule |
a[4], b[4]
|
typeset a rule and move right |
| 133 | put1 |
c[1]
|
typeset a character |
| 134 | put2 |
c[2]
| |
| 135 | put3 |
c[3]
| |
| 136 | put4 |
c[4]
| |
| 137 | put_rule |
a[4], b[4]
|
typeset a rule |
| 138 | nop |
no operation | |
| 139 | bop |
c_0[4]..c_9[4], p[4]
|
beginning of page |
| 140 | eop |
ending of page | |
| 141 | push |
save the current positions | |
| 142 | pop |
restore previous positions | |
| 143 | right1 |
b[1]
|
move right |
| 144 | right2 |
b[2]
| |
| 145 | right3 |
b[3]
| |
| 146 | right4 |
b[4]
| |
| 147 | w0 |
move right by w
| |
| 148 | w1 |
b[1]
|
move right and set w
|
| 149 | w2 |
b[2]
| |
| 150 | w3 |
b[3]
| |
| 151 | w4 |
b[4]
| |
| 152 | x0 |
move right by x
| |
| 153 | x1 |
b[1]
|
move right and set x
|
| 154 | x2 |
b[2]
| |
| 155 | x3 |
b[3]
| |
| 156 | x4 |
b[4]
| |
| 157 | down1 |
a[1]
|
move down |
| 158 | down2 |
a[2]
| |
| 159 | down3 |
a[3]
| |
| 160 | down4 |
a[4]
| |
| 161 | y0 |
move down by y
| |
| 162 | y1 |
a[1]
|
move down and set y
|
| 163 | y2 |
a[2]
| |
| 164 | y3 |
a[3]
| |
| 165 | y4 |
a[4]
| |
| 166 | z0 |
move down by z
| |
| 167 | z1 |
a[1]
|
move down and set z
|
| 168 | z2 |
a[2]
| |
| 169 | z3 |
a[3]
| |
| 170 | z4 |
a[4]
| |
| 171...234 | fnt_num_i
|
set current font to i
| |
| 235 | fnt1 |
k[1]
|
set current font |
| 236 | fnt2 |
k[2]
| |
| 237 | fnt3 |
k[3]
| |
| 238 | fnt4 |
k[4]
| |
| 239 | xxx1 |
k[1], x[k]
|
extension to DVI primitives
|
| 240 | xxx2 |
k[2], x[k]
| |
| 241 | xxx3 |
k[3], x[k]
| |
| 242 | xxx4 |
k[4], x[k]
| |
| 243 | fnt_def1 |
k[1], c[4], s[4], d[4],
|
define the meaning of a font number |
| 244 | fnt_def2
|
k[2], c[4], s[4], d[4],
| |
| 245 | fnt_def3 |
k[3], c[4], s[4], d[4],
| |
| 246 | fnt_def4 |
k[4], c[4], s[4], d[4],
| |
| 247 | pre
|
i[1], num[4], den[4], mag[4],
|
preamble |
| 248 | post
|
p[4], num[4], den[4], mag[4],< font definitions > |
postamble beginning |
| 249 | post_post |
q[4], i[1]; 223's
|
postamble ending |
| 250...255 | undefined |
Alkalmazások
[szerkesztés]DVI viewerek
[szerkesztés]YAP, a MiKTeX része.
xdvi
kdvi
evince
DVI konverterek
[szerkesztés]PDF-re: dvipdf,
dvipdfm,
dvipdfmx
Postscriptre: dvips
PNG-re: dvipng
Források
[szerkesztés]- ↑ Knuth, Donald Erwin; Fuchs, David Raymond: A DVI fájlformátum kanonikus implementációja (forráskód), 1982. [2013. december 13-i dátummal az eredetiből archiválva]. (Hozzáférés: 2009. július 1.)
- ↑ Walden, Dave: Interview of David Fuchs (angol nyelven), 2007. március. (Hozzáférés: 2009. július 1.)
- ↑ UK TeX Users’ Group: TeX Frequently Asked Questions -- question label "driver" (angol nyelven). [2009. január 2-i dátummal az eredetiből archiválva].
- ↑ DVI Driver Implementation and Standardization Issues (angol nyelven), 1995. május. [2009. szeptember 4-i dátummal az eredetiből archiválva]. (Hozzáférés: 2009. július 1.)
- ↑ TUG DVI Driver Standards Committee: The DVI Driver Standard, Level 0 (angol nyelven) (DVI). [2007. február 9-i dátummal az eredetiből archiválva].
- ↑ The DVI File Format. [2007. április 3-i dátummal az eredetiből archiválva]. (Hozzáférés: 2009. július 1.)