DV2DT(1) General Commands Manual DV2DT(1)

dv2dt - تبدیل یک فایل باینری TeX DVI به نمایش متنی DTL

dv2dt input-DVI-file output-DTL-file

اگر نام فایل‌ها ذکر نشود، stdin و stdout پیش‌فرض در نظر گرفته می‌شوند.

دستور dv2dt یک فایل باینری DVI متعلق به TeX را به یک فایل متنی قابل ویرایش با ساختار DTL (DVI Text Language) تبدیل می‌کند. ابزار مکمل dt2dv(1) می‌تواند فایل DTL خروجی را مجدداً به یک فایل باینری DVI تبدیل نماید.

فایل‌های DVI متعلق به TeX حاوی توصیفی باینری و فشرده از صفحات حروف‌چینی‌شده به‌صورت جریانی از بایت‌های کد عملیات (opcode) هستند که بلافاصله پس از هر کدام، صفر یا چند بایت پارامتر قرار دارد. قالب فایل‌های DVI به‌طور کامل در کتاب دونالد ای. کنوت (Donald E. Knuth) با عنوان TeX: The Program، Addison-Wesley (1986)، شابک 0-201-13437-3، و همچنین در کد مبدأ برنامهٔ dvitype(1) توصیف شده است.

برای سهولت، خلاصه‌ای از دستورات DVI در اینجا ارائه شده است. در فهرست زیر، بایت‌های کد عملیات به‌صورت مقادیر ده‌دهی بدون علامت، به‌همراه نام نمادین آن‌ها (که درون فایل DVI وجود ندارد) و توصیفی کوتاه آورده شده‌اند. نمادی مانند b[+n] بدین معناست که پس از بایت کد عملیات، یک پارامتر b قرار دارد که از n بایت استفاده می‌کند و علامت‌دار است. بدون علامت مثبت، پارامتر بدون علامت محسوب می‌شود. مقادیر عددی صحیح علامت‌دار همواره در حساب مکمل دو (two’s complement) نمایش داده می‌شوند که همان سیستم مورد استفاده در اکثر رایانه‌های امروزی، از جمله تمام رایانه‌های شخصی و ایستگاه‌های کاری است.

0 set_char_0
قرار دادن نویسهٔ ۰ از قلم جاری.
...
127 set_char_127
قرار دادن نویسهٔ ۱۲۷ از قلم جاری.
128 set1 c[1]
قرار دادن نویسهٔ ۱-بایتی بدون علامت (uchar) با شمارهٔ c.
129 set2 c[2]
قرار دادن نویسهٔ ۲-بایتی بدون علامت با شمارهٔ c.
130 set3 c[3]
قرار دادن نویسهٔ ۳-بایتی بدون علامت با شمارهٔ c.
131 set4 c[+4]
قرار دادن نویسهٔ ۴-بایتی علامت‌دار (schar) با شمارهٔ c.
132 set_rule a[+4] b[+4]
قرار دادن خط (rule) با ارتفاع a و عرض b.
133 put1 c[1]
گذاشتن نویسهٔ ۱-بایتی بدون علامت c.
134 put2 c[2]
گذاشتن نویسهٔ ۲-بایتی بدون علامت c.
135 put3 c[3]
گذاشتن نویسهٔ ۳-بایتی بدون علامت c.
136 put4 c[+4]
گذاشتن نویسهٔ ۴-بایتی علامت‌دار c.
137 put_rule a[+4] b[+4]
گذاشتن خط با ارتفاع a و عرض b.
138 nop
بدون عملیات (کاری انجام نده).
139 bop c0[+4] ... c9[+4] p[+4]
شروع صفحه. پارامترهای c0 ... c9 شمارنده‌های صفحه در TeX هستند؛ یعنی محتوای ثبات‌های شمارندهٔ TeX \count0 ... \count9. پارامتر p آفست بایتی بایتِ کد عملیات bop پیشین از ابتدای فایل DVI است. در اولین دستور از این دست در فایل، مقدار پارامتر p = -1 است.
140 eop
پایان صفحه.
141 push
انتقال (h,v,w,x,y,z) به پشته (push).
142 pop
برداشتن (h,v,w,x,y,z) از پشته (pop).
143 right1 b[+1]
حرکت به راست به میزان b واحد.
144 right2 b[+2]
حرکت به راست به میزان b واحد.
145 right3 b[+3]
حرکت به راست به میزان b واحد.
146 right4 b[+4]
حرکت به راست به میزان b واحد..TP 147 w0 حرکت به راست به اندازهٔ w واحد.
148 w1 b[+1]
حرکت به راست به اندازهٔ b واحد، و تنظیم w = b.
149 w2 b[+2]
حرکت به راست به اندازهٔ b واحد، و تنظیم w = b.
150 w3 b[+3]
حرکت به راست به اندازهٔ b واحد، و تنظیم w = b.
151 w4 b[+4]
حرکت به راست به اندازهٔ b واحد، و تنظیم w = b.
152 x0
حرکت به راست به اندازهٔ x واحد.
153 x1 b[+1]
حرکت به راست به اندازهٔ b واحد، و تنظیم x = b.
154 x2 b[+2]
حرکت به راست به اندازهٔ b واحد، و تنظیم x = b.
155 x3 b[+3]
حرکت به راست به اندازهٔ b واحد، و تنظیم x = b.
156 x4 b[+4]
حرکت به راست به اندازهٔ b واحد، و تنظیم x = b.
157 down1 a[+1]
حرکت به پایین به اندازهٔ a واحد.
158 down2 a[+2]
حرکت به پایین به اندازهٔ a واحد.
159 down3 a[+3]
حرکت به پایین به اندازهٔ a واحد.
160 down4 a[+4]
حرکت به پایین به اندازهٔ a واحد.
161 y0
حرکت به راست به اندازهٔ y واحد.
162 y1 a[+1]
حرکت به راست به اندازهٔ a واحد، و تنظیم y = a.
163 y2 a[+2]
حرکت به راست به اندازهٔ a واحد، و تنظیم y = a.
164 y3 a[+3]
حرکت به راست به اندازهٔ a واحد، و تنظیم y = a.
165 y4 a[+4]
حرکت به راست به اندازهٔ a واحد، و تنظیم y = a.
166 z0
حرکت به راست به اندازهٔ z واحد.
167 z1 a[+1]
حرکت به راست به اندازهٔ a واحد، و تنظیم z = a.
168 z2 a[+2]
حرکت به راست به اندازهٔ a واحد، و تنظیم z = a.
169 z3 a[+3]
حرکت به راست به اندازهٔ a واحد، و تنظیم z = a.
170 z4 a[+4]
حرکت به راست به اندازهٔ a واحد، و تنظیم z = a.
171 fnt_num_0
تنظیم شماره قلم جاری (f) = 0.
...
234 fnt_num_63
تنظیم f = 63.
235 fnt1 k[1]
تنظیم f = k.
236 fnt2 k[2]
تنظیم f = k.
237 fnt3 k[3]
تنظیم f = k.
238 fnt4 k[+4]
تنظیم f = k.
239 xxx1 k[1] x[k]
رشتهٔ ویژهٔ x با k بایت.
240 xxx2 k[2] x[k]
رشتهٔ ویژهٔ x با k بایت.
241 xxx3 k[3] x[k]
رشتهٔ ویژهٔ x با k بایت.
242 xxx4 k[4] x[k]
رشتهٔ ویژهٔ x با k بایت (بدون علامت).
243 fnt_def1 k[1] c[4] s[4] d[4] a[1] l[1] n[a+l]
تعریف قلم k. پارامترها عبارتند از:
چک‌سام برای فایل TFM.
ضریب مقیاس، بر حسب واحدهای DVI..TP d اندازه طراحی، بر حسب واحدهای DVI.
طول «ناحیه» (area) یا دایرکتوری.
طول نام فونت.
رشته(های) نام ناحیه و فونت.
244 fnt_def2 k[2] c[4] s[4] d[4] a[1] l[1] n[a+l]
تعریف فونت k.
245 fnt_def3 k[3] c[4] s[4] d[4] a[1] l[1] n[a+l]
تعریف فونت k.
246 fnt_def4 k[+4] c[4] s[4] d[4] a[1] l[1] n[a+l]
تعریف فونت k.
247 pre i[1] num[4] den[4] mag[4] k[1] x[k]
آغاز دیباچه (preamble). پارامترها عبارتند از:
قالب DVI. نگارش استاندارد TeX دارای ID = 2 است، و TeX-XeT دارای ID = 3.
صورت کسر ۱۰۰ نانومتر / واحد DVI.
مخرج کسر ۱۰۰ نانومتر / واحد DVI.
۱۰۰۰ × بزرگ‌نمایی (magnification).
طول توضیح (comment).
رشته توضیح.
248 post p[4] num[4] den[4] mag[4] l[4] u[4] s[2] t[2]
آغاز موخره (postamble). پارامترها عبارتند از:
اشاره‌گر به آخرین bop.
تکرار مقادیر موجود در دیباچه.
مجموع ارتفاع و عمق بلندترین صفحه، بر حسب واحدهای DVI.
عرض پهن‌ترین صفحه، بر حسب واحدهای DVI.
بیشینه عمق پشته (stack) مورد نیاز برای پردازش این فایل DVI.
تعداد کل صفحات موجود (دستورهای bop).
249 post_post q[4] i[1] 223 ... 223
پایان موخره (postamble). پارامترها عبارتند از:
آفست بایتی از ابتدای فایل DVI تا دستور post که موخره را آغاز کرده است.
شناسه قالب DVI، مشابه آنچه در دیباچه آمده است.
223
دست‌کم چهار بایت 223.
250
تعریف‌نشده.
...
255
تعریف‌نشده.

یک فایل DTL در هر سطر شامل یک دستور است و هر سطر حداکثر می‌تواند ۱۰۲۴ نویسه داشته باشد. هر دستور شامل یک نام نمادین برای عملیات است که در پی آن صفر یا چند مقدار پارامتر می‌آید. شرح مقادیر پارامترها در اینجا تکرار نشده است؛ آن‌ها را می‌توان در بخش پیشین یافت.

این دستور نام نوع فایل DTL را مشخص می‌کند؛ این دستور معادلی در فایل DVI ندارد.
(text)
مجموعه‌ای از دستورهای set_char، برای متون اسکی (ASCII) قابل چاپ.
\(
پرانتز باز لفظی ASCII در (text).
\)
پرانتز بسته لفظی ASCII در (text).
\\
بک‌اسلش لفظی ASCII در (text).
\"
علامت نقل‌قول جفتی (double quote) لفظی ASCII در (text).
دستور set_char برای نویسه‌ای با کد هگزادسیمال XY، نه درون پرانتز، بلکه به صورت مستقل برای خوانایی بهتر.
دستور Set، با کدهای نویسه (charcodes) ۱، ۲، ۳ یا ۴ بایتی.
set_rule.
دستور Put، با کدهای نویسه (charcodes) ۱، ۲، ۳ یا ۴ بایتی.
put_rule.
nop (بدون عملیات).
bop (شروع صفحه).
eop (پایان صفحه).
[
Push (قرار دادن در پشته).
]
Pop (برداشتن از پشته).
دستور Right، با آرگومان ۱، ۲، ۳ یا ۴ بایتی.
همانند DVI.
همانند DVI.
دستور Down، با آرگومان ۱، ۲، ۳ یا ۴ بایتی.
همانند DVI.
همانند DVI.
fnt_num (تنظیم فونت فعلی به شماره فونت در بازه 0 تا 63).
fnt (تنظیم فونت فعلی به شماره فونت ۱، ۲، ۳ یا ۴ بایتی).
xxx (دستورهای special با طول رشته ۱، ۲، ۳ یا ۴ بایتی).
fnt_def (اختصاص یک شماره به یک فونت نام‌گذاری‌شده).
دیباچه (Preamble)..TP post post (آغاز پسایند).
post_post (پایان پسایند).
دستور DVI تعریف‌نشده (250 تا 255).

فایل ۲ خطی TeX زیر

Hello.
\bye
هنگامی که با دستورهای زیر پردازش شود
tex hello.tex
dv2dt hello.dvi hello.dtl
این فایل DTL را تولید می‌کند:
variety sequences-6
pre 2 25400000 473628672 1000 27 ' TeX output 1995.03.02:2334'
bop 1 0 0 0 0 0 0 0 0 0 -1
[
d3 -917504
]
d4 42152922
[
d4 -41497562
[
r3 1310720
fd1 0 11374260171 655360 655360 0 5 '' 'cmr10'
fn0
(Hello.)
]
]
d3 1572864
[
r4 15229091
(1)
]
eop
post 42 25400000 473628672 1000 43725786 30785863 2 1
fd1 0 11374260171 655360 655360 0 5 'cmr10'
post_post 152 2 223 223 223 223
دستور
dt2dv hello.dtl hello.dvi
فایل DVI اصلی را بازسازی خواهد کرد.

dt2dv(1), dvitype(1), tex(1).

*.dvi
فایل باینری DVI متعلق به TeX.
*.dtl
نمایش متنی یک فایل DVI متعلق به TeX در قالب DVI Text Language.

برنامه‌های dv2dt و dt2dv(1) توسط فرد زیر نوشته شده‌اند:

Geoffrey Tobin
Department of Electronic Engineering
La Trobe University
Bundoora, Victoria 3083
Australia
Tel: +61 3 479 3736
FAX: +61 3 479 3025
Email: <G.Tobin@ee.latrobe.edu.au>

این صفحه‌های راهنما در اصل توسط فرد زیر نوشته شده‌اند:

Nelson H. F. Beebe, Ph.D.
Center for Scientific Computing
Department of Mathematics
University of Utah
Salt Lake City, UT 84112
Tel: +1 801 581 5254
FAX: +1 801 581 4148
Email: <beebe@math.utah.edu>
08 March 1995 Version 0.6.0