adelton

TeX::DVI

Write out TeX's DVI (DeVice Independent) file

Synopsis

use TeX::DVI;
use Font::TFM;

my $dvi = new TeX::DVI "texput.dvi";
my $font = new_at Font::TFM "cmr10", 12
        or die "Error loading cmr10 at 12 pt: $Font::TFM::errstr\n";
$dvi->preamble();
$dvi->begin_page();
$dvi->push();
my $fn = $dvi->font_def($font);
$dvi->font($fn);
$dvi->word("difficulty");
$dvi->hskip($font->space());
$dvi->word("AVA");
$dvi->black_box($font->em_width(), $font->x_height());
$dvi->pop();
$dvi->end_page();
$dvi->postamble();
$dvi->close();

Description

Method TeX::DVI::new creates a new DVI object in memory and opens the output DVI file. After that, elements can be written into the file using appropriate methods.

These are the methods available on the Font::TFM object:

preamble, postamble, begin_page, end_page, push, pop

Writes out appropriate command of the .dvi file.

font_def

The parameter is a reference to a Font::TFM object. Info out of this object will be printed out. The method returns the internal number of the font in this .dvi file.

font

Writes out the font_sel command, the parametr is the number returned by font_def.

hskip, vskip

Skips.

black_box

Creates a black box, can be used for hrules and vrules.

special

Writes out the special command, one parameter is written as the command.

word

Writes out a word given as the first parameter. The currently selected font is used to gather information about ligatures and kernings, that's why it's possible to say

$dvi->word("difficulty");

and the ffi will be ligatured all right.

close

Close the file.

Bugs

The error handling is rather weak -- the modul currently assumes you know why you call the method you call.

Version

1.01

Available from

http://www.adelton.com/perl/TeX-DVI/

Author

(c) 1996--2011 Jan Pazdziora.

All rights reserved. This package is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

Contact the author at jpx dash perl at adelton dot com.

See also

Font::TFM(3), TeX::DVI::Parse(3), perl(1).