summaryrefslogtreecommitdiff
path: root/info/tex-virtual-academy-pl/prog/dvidvi.html
blob: 172e06fef66aec4704841e7fafe770ab9a0db695 (plain)
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="W³odzimierz 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 G³owacki </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, operuj±c na pliku typu DVI
wybiera strony, zmienia ich wzajemne po³o¿enie 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± nieobowi±zkowe u¿ycie tego co zawieraj±;
<dd>odstêpy, nawiasy okr±g³e i przecinki s± konieczne w kontek¶cie;
<dt><code>d</code>

   <dd>dzielnik (modulo); liczba dodatnia z zakresu 1 do 32,
okre¶laj±ca rozmiar porcji (w stronach), na jakie zostanie podzielony plik
wej¶ciowy;
<dt><code>p</code>
   <dd>pozycja; liczba okre¶laj±ca pozycjê strony w ramach porcji
(pierwsza strona w porcji jest okre¶lana liczb± 0, a wiêc najwy¿sza mo¿liwa
pozycja to <code>d</code>-1); gdy liczba ta jest poprzedzona znakiem '-',
w przetwarzaniu brane bêd± pod uwagê porcje w odwrotnej kolejno¶ci, czyli
pocz±wszy od ostatniej (nie znaczy to ¿e liczba jest ujemna!); w szczególno¶ci
wiêc mo¿liwy jest zapis '-0' znacz±cy co innego ni¿ '0'; mo¿na okre¶liæ
pozycje tylko niektórych stron, mo¿na te¿ powtarzaæ specyfikacje tych samych
stron (wtedy w pliku wyj¶ciowym te strony pojawi± siê wielokrotnie);
<dt><code>x</code> i <code>y</code>
   <dd>wspó³rzêdna pozioma i pionowa lewego górnego rogu
strony z pliku wej¶ciowego na arkuszu pliku wyj¶ciowego; specyfikacja -- tak
jak w TeX-u<sup><a href=#fn1>1</a></sup>; gdy <code>x</code> i <code>y</code> s±
równocze¶nie zerowe, mo¿na je wraz z nawiasami pomin±æ;
<dt><code>fi</code>
   <dd>nazwa pliku wej¶ciowego; rozszerzenie (<code>.dvi</code>) mo¿na pomin±æ;
<dt><code>fo</code>
   <dd>nazwa pliku wyj¶ciowego; w podpowiedzi przy wywo³aniu programu
z b³êdnymi parametrami czytamy, ¿e parametr ten mo¿na pomin±æ; jest to nieprawda
przynajmniej w u¿ywanej przeze mnie wersji 0.5 -- gdy nie zostanie podany ten
parametr, pierwsza próba zapisu do tego pliku koñczy siê zawieszeniem programu,
czyli konieczno¶ci± restartu systemu (sic!).
</dl>

<h3>Opis dzia³ania</h3>

<ul>
<li>Program czyta plik wej¶ciowy i dzieli go na porcje o <code>d</code>
stronach (ewentualnie ostatnia porcja jest uzupe³niana pustymi stronami).
Nastêpnie zaczyna budowaæ arkusze, tworz±c plik wyj¶ciowy.
<li>Dla ka¿dego tworzonego arkusza zostaje raz u¿yta ka¿da grupa
parametrów <code>p(x,y)</code>; kolejno¶æ grup w wywo³aniu nie ma znaczenia. Arkuszy
powstanie tyle, ile zosta³o utworzonych porcji.
<li>Dla pierwszego arkusza zostaj± pobrane -- okre¶lone przez kolejne
<code>p</code> z wywo³ania -- strony z pierwszej porcji 
(gdy przed <code>p</code> jest
'-', to z ostatniej) i umieszczone w pierwszym arkuszu, w miejscu okre¶lonym
przez odpowiadaj±ce im <code>(x,y)</code>.
<li>Dla ka¿dego nastêpnego arkusza pobrane zostaj± strony z nastêpnej
(lub poprzedniej gdy przed <code>p</code> jest '-') porcji. I te deum.
</ul>


<h3> Ograniczenia: </h3>

 <ul>
<li>Program z ca³ego dostêpnego pliku produkuje jedn± zszywkê. Chc±c
wiêc utworzyæ wiêcej zszywek, nale¿y najpierw plik wej¶ciowy podzieliæ na
mniejsze (o ilo¶ci stron takiej, jak pojemno¶æ jednej zszywki). Nie znam
sposobu, w jaki móg³by to zrobiæ <code>DVIDVI</code>.
<li>Przy tworzeniu arkuszy zawieraj±cych piêtrowo umieszczone strony,
program nie potrafi ich obracaæ w³osami w dó³, a jest to potrzebne gdy trzeba
arkusz falcowaæ<sup><a href=#fn2>2</a></sup>,
a potem dopiero przycinaæ; mo¿na
temu zaradziæ na trzy sposoby: --> poci±æ najpierw arkusze na
poziome pasy o wysoko¶ci jednej strony, a potem dopiero falcowaæ;
--> wydrukowaæ czê¶ciowo strony, obróciæ o 180<sup>0</sup> i wydrukowaæ
resztê po tej samej stronie kartek, jednak wtedy trudno (szczególnie na
drukarce laserowej) uzyskaæ powtarzalno¶æ pozycjonowania; -->
(najmniej fizyczny) sprzêg z TeX-em: mo¿na w obs³udze procesu zrzutu stron
(output routine) oprogramowaæ obrót wybranych stron. Oczywi¶cie w ka¿dym
z tych trzech przypadków trzeba przygotowaæ inne parametry dla programu
<code>DVIDVI</code>.
</ul>

<h3> Przyk³ady: </h3>

<ul>
<li>Ekstrakcja:<br>

<code>dvidvi</code> 30:6 we wy  (ró¿ne 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 wiêksza ni¿ suma obu
u¿ytych w wywo³aniu 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>

Je¶li za³o¿ymy, ¿e plik wej¶ciowy zawiera³ 27 lub 28 stron, to program
poprzestawia je nastêpuj±co (strza³ki 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 kolejno¶ci. W przypadku korzystania z drukarki laserowej wystarczy
wypu¶ciæ arkusze zadrukowane jednostronnie zawarto¶ci± pliku <code>wy1</code> do
odbiornika drukiem w górê (na ogó³ s³u¿y do tego tacka z przodu drukarki),
i nie odwracaj±c (tak, by ostatnio wydrukowany arkusz sta³ siê pierwszym
drukowanym z drugiej strony) podstawiæ pod druk zawarto¶ci pliku <code>wy2</code> (tak¿e
drukiem w górê).

<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 za³o¿eniu, ¿e na wej¶ciu by³o od 37 do 40 stron, zostan± one
poprzemieszczane i po³±czone jak ni¿ej (strza³ki kropkowane ³±cz± przeciwne
strony kartki przysz³ej ksi±¿eczki):

<center>
<img src=./dvistro2.gif width=546 height=327>
</center>

Je¶li wiêc 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 kolejno¶ci arkuszy --- ,,lewe''. Tym razem nale¿y w pierwszym przebiegu
wypu¶ciæ arkusze do odbiornika drukiem w dó³, po czym ca³y pakiet odwróciæ
,,na grzbiet'' wzd³u¿ osi równoleg³ej do krótszego boku kartek i tak podstawiæ
do druku z drugiej strony. Dodatkowo po zakoñczeniu drukowania trzeba arkusze
odpowiednio potasowaæ.

<li>Po tym co napisano powy¿ej, uwa¿ny TeX-nik nie potrzebuje ju¿ chyba
wyja¶nienia (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± zgodno¶ci± z TeX-em nie jest tak
rado¶nie. Na przyk³ad nie mo¿na pomin±æ w liczbie cyfry '0' przed kropk±
dziesiêtn±. W ogóle p. Rokicki sprawia wra¿enie jakby siê trochê d±sa³ na
TeX-a --- np.  TeX numeruje strony od '1' --- <code>DVIDVI</code> od '0'. Natomiast gdy dla
 TeX-a nie ma jednostki domy¶lnej, to w <code>DVIDVI</code> s± a¿ dwie: jedna to cal,
a druga --- mocniejsza --- taka, jakiej u¿yto wcze¶niej.

<hr width=20% align=left>
<sup><a name=fn2><b>2</b></a></sup> Podobno po polsku mówi siê: z³amywaæ, ale s±
tak¿e w u¿yciu s³owa: za³amywaæ, sk³adaæ.

<hr width=20% align=left>

<sup><a name=fn3><b>3</b></a></sup> Podane w tym i nastêpnym
przyk³adzie wielko¶ci wspó³rzêdnych oczywi¶cie ¶ci¶le zale¿± od lokalnych cech
¶rodowiska systemowego i parametrów drukarki.


<hr>
Zredagowa³:
<em>W³odzimierz Macewicz</em>
<hr>
</body>
</html>