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.)