dvi MSDOSu a xdvi

Petr Olsak olsak at math.feld.cvut.cz
Mon Nov 11 09:56:43 CET 1996


On Mon, 11 Nov 1996, Lubos Kloc wrote:

> At 07:54 11.11.1996 +0100, you wrote:
> >On Fri, 8 Nov 1996, Michal Misler wrote:
> >
> >> Dobry den,
> >>   mam problem s jakymkoliv zpracovanim dvi souboru na Irix 5.3 na
> >> pocitacich Silicon Graphics. Tedy jedna se o ty , ktere vznikly na
> >> MSDOSu. Tam jdou prohlizet... ale na silikonu hlasi:
> >>
> >> xdvi.bin: Postamble doesn't begin with POST
> >>
> >> Co to je za chyba? Znamena to, ze dvi souboru nejsou zase tak moc
> >> DeVice Independent?
> >
> >*.dvi su DEVICE independent. To znamena, ze rovnako vyzeraju na obrazovke,
> >laserjete, deskjete, ihlickarni atd. Ale zdaleka nie su nezavisle na
> >implementacii TeXu, t.j. ked si pod DOSom prelozim nieco do *.dvi emTeXom,
> >necakam, ze povedzme gtex-ove, alebo PCTeX-ove viewre (tiez DOS) ten dvi
> >zobrazia. Na SGI mate urcite iny tex ako pod DOSom, preto vam to
> >navzajom nebude brat dvi-cka. Ale ked prenesiete *.tex a prelozite,
> >vysledok by mal byt rovnaky.

S timto nazorem hrube nesouhlasim. Kazda implementace TeXu by mela davat
dvi, ktere je prenositelne, nebot format je normalizovan v knize
TeX -- The program.

Pokud dobre znate format dvi, pak vam ono vyse zminene hlaseni rika
toto:

Na konci souboru dvi najdu 4 az sedm bytu "DF pak prejdu dozadu o 6 bytu
a najdu tam povel post_post, coz je byt "F9. V nasledujicich
(preskocenych) ctyrech bytech je integer ukazatel na uvod tzv. postamble
(tj. povel post, byt "F8). V patem preskocenem bytu je hodnota 2 (vzdy,
jedna se o verzi dvi, ktera je v pripade TeXu uz 13 let nezmenena).

Uvedena chyba rika, ze na miste lokalizovanem prislusnymi ctyrmi byty
neni povel post, tj. hodnaota "F8. Priklad:

Na konci dvi jsou tyto byty:  F9 00 00 0B 1D 02 DF DF DF DF DF.
Nasel jsem tedy povel post_post (F9) a za nim ctyri byty rikaji
11*256+16+13=2845. Paty byt nas utvrzuje ve verzi 02.
Nyni najdu 2845-ty byt v souboru dvi a tam by melo byt napsano F8.
Pokud tomu tak neni, ma ovladac se svym chybovym hlasenim pravdu. Pak je
ovsem treba hledat chybu v TeXu, ktery takto polamany dvi vytvoril.
Dale je treba se podivit na tim, ze ackoli je dvi polamane, existuji
ovladace, kterym to nevadi.
Pokud naopak na danem miste je napsano F8 (tj. povel post), pak je TeX v
poradku a je treba hledat chybu v ovladaci, ktery chybne keca. Vec VUBEC
nezavisi na platforme, ktera byla pouzita pri behu TeXu ani na platforme,
ktera spousti ovladac.

Test konzistence dvi lze provest tez programem dvitype, ktery je na
platforme nezavisly a je napsan Knuthem ve Webu.

Podrobneji o formatu dvi se budete moci docist i v me knizce TeXbook naruby.

Petr Olsak




More information about the csTeX mailing list