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
Harthill, 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.