NAME

TeX::AutoTeX::File

DESCRIPTION

The File object stores information on files processed by AutoTeX, and is also invoked to handle the actual processing for these files. Most of the TeX processing code is located here.

Structure of File Object

filename: the name of the file
type: the TYPE, of the form TYPE_FAILED and such
tex_format: if a tex file, stores the format.
flags: a hash table for keeping track of various flags
dvi_flags: the flags that should be passed to dvips

METHODS

new

Creates a new File object. Call as TeX::AutoTex::File->new($fileset, $filename) Logging is inherited from the TeX::AutoTeX::Fileset object $fileset.

To get cache behaviour, instantiate instead through the TeX::AutoTeX::Fileset context as $fileset->new_File($filename).

set_dvi_flags()

setter for file specific dvi_flags

get_dvi_flags()

getter for file specific dvi_flags

type()

returns a file's type, in a form like 'TYPE_FAILED' or such

filename()

returns the filename attribute

determine_type()

determines the file type and returns it. Will also store the tex format if necessary.

filetype_name()

returns an English description of the type.

type_is_tex()

determines if the type is in the list of tex types.

assign_tex_priority()

Returns a number, the higher it is the more likely this file is to be a top level tex file. Possible return values:

0: non-(la)tex files and non-standalone (la)tex files.
1: 'priority 2' tex files
2: 'priority 1' tex files
3: harvmac tex files and standalone latex files
4: files marked "toplevelfile" in $DIRECTIVE_FILE

type_override()

Call to override type. Intended to be used only be readme parser.

process()

processes this file. Call as $file->process($instance_of_TeX::AutoTeX::Process). if this is a tex file, returns 0 on non-failure.

process_tex

gets called by process, the subroutine above, when a tex file is encountered returns the log file, so process can check for file inclusion

process_dvitype

gets called when a DVI file is encounterd. attempts conversion of DVI to PostScript

process_encrypted

this is a stub which is not functional without external helper programs. Some of the source files at arXiv are encrypted to protect their contents from close inspection by third parties.

slurp_log()

reads the log file produced by running tex/whatever, returns reference to a scalar holding the entire log file

clean_aux_files($start_time)

unlinks all '.aux' files newer than the process start time, remove from cache if present

swap_source($hyper)

links in place the appropriate source, either what copy_source_from_hyper generated for use with nohyper, or a version that can be used with hypertex

run_tex_attempt(@args)

runs the actual tex/latex/whatever program. Will do multiple passes and such

extra_pass($start_time)

determines whether latex has created files that would imply an extra pass needs to be done.

extra_fontcreation_pass($start_time)

checks to see if font generation took place. If so, causes run_tex_attempt to cycle again.

trash_tex_aux_files($start_time, \%created_files)

deletes tex aux files after tex has been run

check_flag

simple boolean check on whether a particular flag is set

set_flag

set a flag for the given name to true

basename

return the name of a file without the extension (if any)

HISTORY

AutoTeX automatic TeX processing system
Copyright (c) 1994-2006 arXiv.org and contributors

AutoTeX is supplied under the GNU Public License and comes
with ABSOLUTELY NO WARRANTY; see COPYING for more details.

AutoTeX is an automatic TeX processing system designed to
process TeX/LaTeX/AMSTeX/etc source code of papers submitted
to the arXiv.org (nee xxx.lanl.gov) e-print archive. The
portable part of this code has been extracted and is made
available in the hope that it will be useful to other projects
and that the input of others will benefit arXiv.org.

Code developed and contributed to by Tanmoy Bhattacharya, Rob
Hartill, Mark Doyle, Thorsten Schwander, and Simeon Warner.
Refactored to separate generic code from arXiv.org specific code
by Stephen Marsh, Michael Fromerth, and Simeon Warner 2005/2006.

Major cleanups and algorithmic improvements/corrections by
Thorsten Schwander 2006 - 2011

BUGS AND LIMITATIONS

Please report bugs to www-admin

AUTHOR

See history above. Current maintainer: Thorsten Schwander for arXiv.org

LICENSE AND COPYRIGHT

Copyright (c) 2007 - 2011 arxiv.org http://arxiv.org/help/contact

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.