1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196
|
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
<meta http-equiv="Content-language" content="pl">
<meta name="Author" content="Wodzimierz Macewicz">
<meta name="Keywords" content="tex, dvidvi, Wirtualna Akademia">
<title>DVIDVI </title>
</head>
<body bgcolor=#a0F0f0>
<center>
<h2>DVIDVI </h2>
<i></i><p>
<i></i><p>
autor: <i>Maciej Gowacki </i></center>
<i></i><p>
<hr>
<p>
<code>DVIDVI</code> jest programem sygnowanym przez Radical Eye Software (co w praktyce
oznacza autorstwo Tomasa Rokickiego). Program ten, operujc na pliku typu DVI
wybiera strony, zmienia ich wzajemne pooenie i pozycjonuje na arkuszu druku.
<h3> Format: </h3>
<pre>
d:p<sub>1</sub>[(x<sub>1</sub>,y<sub>1</sub>)][,p<sub>2</sub>[(x<sub>2</sub>,y<sub>2</sub>)]]...[,p<sub>n</sub>[(x<sub>n</sub>,y<sub>n</sub>)]] fi fo
</pre>
gdzie:
<dl>
<dd>nawiasy kwadratowe oznaczaj nieobowizkowe uycie tego co zawieraj;
<dd>odstpy, nawiasy okrge i przecinki s konieczne w kontekcie;
<dt><code>d</code>
<dd>dzielnik (modulo); liczba dodatnia z zakresu 1 do 32,
okrelajca rozmiar porcji (w stronach), na jakie zostanie podzielony plik
wejciowy;
<dt><code>p</code>
<dd>pozycja; liczba okrelajca pozycj strony w ramach porcji
(pierwsza strona w porcji jest okrelana liczb 0, a wic najwysza moliwa
pozycja to <code>d</code>-1); gdy liczba ta jest poprzedzona znakiem '-',
w przetwarzaniu brane bd pod uwag porcje w odwrotnej kolejnoci, czyli
poczwszy od ostatniej (nie znaczy to e liczba jest ujemna!); w szczeglnoci
wic moliwy jest zapis '-0' znaczcy co innego ni '0'; mona okreli
pozycje tylko niektrych stron, mona te powtarza specyfikacje tych samych
stron (wtedy w pliku wyjciowym te strony pojawi si wielokrotnie);
<dt><code>x</code> i <code>y</code>
<dd>wsprzdna pozioma i pionowa lewego grnego rogu
strony z pliku wejciowego na arkuszu pliku wyjciowego; specyfikacja -- tak
jak w TeX-u<sup><a href=#fn1>1</a></sup>; gdy <code>x</code> i <code>y</code> s
rwnoczenie zerowe, mona je wraz z nawiasami pomin;
<dt><code>fi</code>
<dd>nazwa pliku wejciowego; rozszerzenie (<code>.dvi</code>) mona pomin;
<dt><code>fo</code>
<dd>nazwa pliku wyjciowego; w podpowiedzi przy wywoaniu programu
z bdnymi parametrami czytamy, e parametr ten mona pomin; jest to nieprawda
przynajmniej w uywanej przeze mnie wersji 0.5 -- gdy nie zostanie podany ten
parametr, pierwsza prba zapisu do tego pliku koczy si zawieszeniem programu,
czyli koniecznoci restartu systemu (sic!).
</dl>
<h3>Opis dziaania</h3>
<ul>
<li>Program czyta plik wejciowy i dzieli go na porcje o <code>d</code>
stronach (ewentualnie ostatnia porcja jest uzupeniana pustymi stronami).
Nastpnie zaczyna budowa arkusze, tworzc plik wyjciowy.
<li>Dla kadego tworzonego arkusza zostaje raz uyta kada grupa
parametrw <code>p(x,y)</code>; kolejno grup w wywoaniu nie ma znaczenia. Arkuszy
powstanie tyle, ile zostao utworzonych porcji.
<li>Dla pierwszego arkusza zostaj pobrane -- okrelone przez kolejne
<code>p</code> z wywoania -- strony z pierwszej porcji
(gdy przed <code>p</code> jest
'-', to z ostatniej) i umieszczone w pierwszym arkuszu, w miejscu okrelonym
przez odpowiadajce im <code>(x,y)</code>.
<li>Dla kadego nastpnego arkusza pobrane zostaj strony z nastpnej
(lub poprzedniej gdy przed <code>p</code> jest '-') porcji. I te deum.
</ul>
<h3> Ograniczenia: </h3>
<ul>
<li>Program z caego dostpnego pliku produkuje jedn zszywk. Chcc
wic utworzy wicej zszywek, naley najpierw plik wejciowy podzieli na
mniejsze (o iloci stron takiej, jak pojemno jednej zszywki). Nie znam
sposobu, w jaki mgby to zrobi <code>DVIDVI</code>.
<li>Przy tworzeniu arkuszy zawierajcych pitrowo umieszczone strony,
program nie potrafi ich obraca wosami w d, a jest to potrzebne gdy trzeba
arkusz falcowa<sup><a href=#fn2>2</a></sup>,
a potem dopiero przycina; mona
temu zaradzi na trzy sposoby: --> poci najpierw arkusze na
poziome pasy o wysokoci jednej strony, a potem dopiero falcowa;
--> wydrukowa czciowo strony, obrci o 180<sup>0</sup> i wydrukowa
reszt po tej samej stronie kartek, jednak wtedy trudno (szczeglnie na
drukarce laserowej) uzyska powtarzalno pozycjonowania; -->
(najmniej fizyczny) sprzg z TeX-em: mona w obsudze procesu zrzutu stron
(output routine) oprogramowa obrt wybranych stron. Oczywicie w kadym
z tych trzech przypadkw trzeba przygotowa inne parametry dla programu
<code>DVIDVI</code>.
</ul>
<h3> Przykady: </h3>
<ul>
<li>Ekstrakcja:<br>
<code>dvidvi</code> 30:6 we wy (rne od <code>dvidvi</code> 5 we wy)<br>
z pliku <code>we</code> do pliku <code>wy</code> zostanie przeniesiona 7 strona, pod
warunkiem, e ilo stron w pliku <code>we</code> nie jest wiksza ni suma obu
uytych w wywoaniu liczb.
<li>Panie na lewo, panowie na prawo:<br>
<code>dvidvi 2:0 we wy1</code><br>
<code>dvidvi 2:-1 we wy2</code><br>
Jeli zaoymy, e plik wejciowy zawiera 27 lub 28 stron, to program
poprzestawia je nastpujco (strzaki unaoczniaj machinacje programu <code>DVIDVI</code>):
<center>
<img src=./dvistro1.gif width=470 height=320>
</center>
<p>
w pliku <code>wy1</code> znajd si strony nieparzyste, a w <code>wy2</code> parzyste, ale
w odwrotnej kolejnoci. W przypadku korzystania z drukarki laserowej wystarczy
wypuci arkusze zadrukowane jednostronnie zawartoci pliku <code>wy1</code> do
odbiornika drukiem w gr (na og suy do tego tacka z przodu drukarki),
i nie odwracajc (tak, by ostatnio wydrukowany arkusz sta si pierwszym
drukowanym z drugiej strony) podstawi pod druk zawartoci pliku <code>wy2</code> (take
drukiem w gr).
<li>Broszurka w A5<sup><a href=#fn3>3</a></sup>:<br>
<code>dvidvi 4:-3,0(5.5in,0in) we wy1</code><br>
<code>dvidvi 4:1,-2(5.5in,0in) we wy2</code>
<p>Przy zaoeniu, e na wejciu byo od 37 do 40 stron, zostan one
poprzemieszczane i poczone jak niej (strzaki kropkowane cz przeciwne
strony kartki przyszej ksieczki):
<center>
<img src=./dvistro2.gif width=546 height=327>
</center>
Jeli wic w pliku <code>we</code> znajd si strony w formacie A5, to w pliku <code>wy1</code>
zostan umieszczone ,,prawe'' strony arkuszy formatu A4, a w <code>wy2</code> --- w tej
samej kolejnoci arkuszy --- ,,lewe''. Tym razem naley w pierwszym przebiegu
wypuci arkusze do odbiornika drukiem w d, po czym cay pakiet odwrci
,,na grzbiet'' wzdu osi rwnolegej do krtszego boku kartek i tak podstawi
do druku z drugiej strony. Dodatkowo po zakoczeniu drukowania trzeba arkusze
odpowiednio potasowa.
<li>Po tym co napisano powyej, uwany TeX-nik nie potrzebuje ju chyba
wyjanienia (ewentualnie warto to sobie rozrysowa):<br>
<code>dvidvi 8:-7,0(4.12in,0in),-5(0in,5.8in),2(4.12in,5.8in) we wy1</code><br>
<code>dvidvi 8:1,-6(4.12in,0in),3(0in,5.8in),-4(4.12in,5.8in) we wy2</code>
</ul>
<h3>Przypisy</h3>
<i></i><p>
<hr width=20% align=left>
<sup><a name=fn1><b>1</b></A></sup> Z t zgodnoci z TeX-em nie jest tak
radonie. Na przykad nie mona pomin w liczbie cyfry '0' przed kropk
dziesitn. W ogle p. Rokicki sprawia wraenie jakby si troch dsa na
TeX-a --- np. TeX numeruje strony od '1' --- <code>DVIDVI</code> od '0'. Natomiast gdy dla
TeX-a nie ma jednostki domylnej, to w <code>DVIDVI</code> s a dwie: jedna to cal,
a druga --- mocniejsza --- taka, jakiej uyto wczeniej.
<hr width=20% align=left>
<sup><a name=fn2><b>2</b></a></sup> Podobno po polsku mwi si: zamywa, ale s
take w uyciu sowa: zaamywa, skada.
<hr width=20% align=left>
<sup><a name=fn3><b>3</b></a></sup> Podane w tym i nastpnym
przykadzie wielkoci wsprzdnych oczywicie cile zale od lokalnych cech
rodowiska systemowego i parametrw drukarki.
<hr>
Zredagowa:
<em>Wodzimierz Macewicz</em>
<hr>
</body>
</html>
|