$Id: CHANGES 1.6 1993/12/30 17:27:16 norm Exp $ This file documents the changes to TeXit: Version 1.35: - $DEFAULTLATEXFORMAT added to specify default LaTeX variant (it could be a LaTeX file, a LaTeX+NFSS file, a LaTeX+NFSS2 file, an AMS LaTeX file, or ... - Added support for LaTeX2e - Added an option to allow the TEXINPUTS path to be specified differently for different formats. Right now, for example, TEXINPUTS2E will be used in place of TEXINPUTS when formatting LaTeX2e documents. - Running under X11, TeXit will change the title bar and the icon title to reflect the action being performed. For long jobs, this makes it easy to tell if the iconified TeXit process has finished. If you want this functionality, you must set $SETXTITLE=1; in your .texitrc file. Version 1.34: - Reorganized the initialization code for the format file names, printable names, and parsing routines. - Added support for finding the position of the first error in a TeX log. The '%E' in a command (the editing command, for example) is replaced by the name of the file containing the error and `%e' is replaced by the line number of the error. - TeXit verifies that TeX will be able to find the format file that you've requested. This will help users with non-standard format file names track down problems quickly. - Parsing the LaTeX log has been extended to add dependencies for bibliography style files and bibliography databases. - The environment variables that contain the paths for searching for biblio files and format files are stored in $ENV_TEXINPUTS, $ENV_BIBINPUTS, and $ENV_TEXFMTS. These should be changed in your .texitrc file to reflect the correct environment variables. - The Local-Variables and other format-file clues no longer override the values established by a % Format:, % Master:, or % Mode: line in the document. - Error messages for unrecognized warnings in LaTeX now use the format "filename: line-number: warning" if the line number occurs in the message, otherwise the format "filename: warning" is used. - If you define $DEFAULT_PRINTER, it will be the default printer queue if you do not specify one. - Made STDOUT unbuffered - Print %done message while parsing LOG file. For very large log files, earlier versions of TeXit gave the impression that they were hung... - If a raw input filename is given (one with no path component), then TeXit will search for the file in the $ENV_TEXINPUTS path. Version 1.33: - Parsing the log files now notices which files are \input and adds them to the dependency list for the document. You no longer have to list all of the included files in the rules section of your document. - Now prints a summary of unrecognized LaTeX warning messages. Some trivial messages are ignored (moved Marginpars, NFSS font substitutions, etc.). The "NFSS2 Info: ***" messages _are_ displayed. - Added a show status subroutine and a default command for it: [?] status. This can be used to view the list of files that TeXit things your document depends on (? dep), the rules TeXit is using (? rules) or the value of an Perl variable (? ). "? ?" summarizes the show status syntax. It's basically a debugging option... - Added an -nfss2ltx option for the NFSS2. Version 1.32: - Never publicly released Version 1.31: - Never publicly released Version 1.30: - Parsing LaTeX log files now notices that a BBL file is missing. This handles \nocite{*}. Using \nocite{} doesn't produce a citation missing warning so simply checking for the warning could miss a document that had a \nocite but no \cites. - Parsing the log files now determines which files are included (styles or \input, etc.) and adds them to the list of dependencies after the first TeX run. - Added a [?] option to show the current status of TeXit. This is really kindof a debugging option, but it does let you see a short summary of the dependencies or rules of a document as well as any Perl variable defined in TeXit. - When parsing LaTeX files, TeXit now records unrecognized warnings (identified by the word "Warning:") and summarizes them at the end of processing. The %WARNINGS array should be used for this purpose if you want to support it in other formats. Version 1.29: - Added the &cleanup_files subroutine to simplify adding files to be erased in TeXit rules. - Updated the documentation. It's still not great, but it's better. Version 1.28: - Added call to &dependent_files_are_newer() in each &interpret__log. It was a stupid oversight to have forgotten. - Removed spurious carriage return after print options. - Changed TEXCMD{}s to use "%t" instead of "%s". This was necessary to fix some weirdness with TeX paths. TeX always stores the DVI file in the current directory and strips off the last extension _given_ so I've made the filename passed to TeX consistent, the ".tex" is always left on if it was ever present. This makes it easier to figure out what the names of auxilliary files will be. - Added 'find_on_path' subroutine which looks for a file on a colon or semi-colon seperated path name. Used in my .texitrc file, for example. - Made lots of changes to my .texitrc file to emphasis the fact that the .texitrc file isn't a Perl file (it's read by require_hack) and to show some examples that users have requested from me. - Added "n files deleted." message to cleanup. Version 1.27: - Added -clean option and $CLEANPROMPT variable to control whether or not you are prompted for confirmation before cleaning up files. If you use the '-clean' option, you will not be prompted. - Made -once call cleanup before exiting if $CLEANONEXIT is true and $CLEANPROMPT is false. - Fixed bug that caused files with extensions other than ".tex" not to be processed correctly. - Added default extensions list for cleaning up TeXinfo files. - Removed "dvi" from the default list of extensions to remove when cleaning up files. You can add it back in with a .texitrc file or a TeXit rule in your document. - Added 'lot', 'lof', and 'toc' to the list of cleanup extensions for LaTeX - Added check for multiply defined references in LaTeX. TeXit retries once to fix the references (since they may have been fixed, but still persist in the AUX file) and then gives up. It'll never succeed so why keep trying? - Added support for a list of rules that are format-dependent. A list of rules named "@$TEXFORMAT_rules" is executed before your document rules. The list "@default_rules" is executed before those. So, for example, if you are processing a LaTeX document, first @default_rules get executed, then @latex_rules, then the rules defined by your document. Check out the rules defined in ``texitrc.unx'' for an example of some rules for LaTeX documents. - Added parsing and interpretation for the Texinfo format - Reworked the &dependencies_changed() code to run seperate subroutines for parsing and analyzing the log file. Plain TeX, LaTeX, and Texinfo are currently supported, but it's much easier to add other formats now. - Changed the way &dependson() works. It now builds a list of files that TeXit checks automatically. This is an improvement because earlier versions of TeXit couldn't check the dependencies of your document when you simply pressed Enter at the TeXit prompt. - New feature: $CMDPROMPT{key} keys that begin with "!" are valid but they are not printed in the prompt string. - New feature: if $DVIQUERY{type} is set, TeXit will prompt the user for DVI driver options. The $DVIQUERY{type} string is the prompt. These options are appended (with a space) to any previous options. - New feature: if $PRINTQUERY{Q} is set, TeXit will prompt the user for printer options. See above. - New feature: if defined, the setting of $PRINTCONFIRM{Q} overrides the global setting of $CONFIRMPRINT. It should be "yes", "no", "0", or "1". - Added name of file being processed to the "Again?" prompt. Version 1.26: - Changed name of %formats array to %format. - Added %formatname array to get the printable name of the format. %format{"latex"} = "lplain" %formatname{"latex"} = "LaTeX" - $DEFAULTFORMAT is now "plain". TeXit can usually figure out that a file is LaTeX, so it makes more sense to assume a document that cannot be deduced is Plain. - Added $CLEANONEXIT flag. If $CLEANONEXIT is set, TeXit will ask if you want to delete auxilliary files on your way out. - Added symbolic names for all the standard prompts. This makes it easier to delete them, or add them to the AUTOCMD list... - Added %DEFAULTCMD to customize an blank response at the prompt. If you simply press enter w/o entering an option, TeXit pretends that you entered "$DEFAULTCMD{key}". In this context, "key" is the _last_ choice that you entered. For example, to make "View" the default choice after running TeX, set: $DEFAULTCMD{$TeXReply} = $ViewReply; - Added %AUTOCMD to chain commands together. If $AUTOCMD{key} is set, TeXit runs "$AUTOCMD{key}" after running whatever "key" refered to w/o returning to the prompt. For example, to add a new choice "[T]ex and View" which runs TeX and then automatically runs View, use: $TeXandViewReply = "[T]eX & View"; $CMDPROMPT{$TeXandViewReply} = $CMDPROMPT{$TeXReply}; $CMDTEST{$TeXandViewReply} = $CMDTEST{$TeXReply}; $AUTOCMD{$TeXandViewReply} = $ViewReply; $AUTOOPT{$TeXandViewReply} = ""; The array %AUTOOPT holds options that should be used for the automatic command. - Added $AUTOMAX to control chaining. TeXit will never perform more than $AUTOMAX automatic commands. This prevents infinite loops. - Added $TEXERROR to indicate what return code from TeX is a fatal error. Some implementations of TeX (notably emTeX) return a non-zero error code when non-fatal errors occur. TeXit assumes that if the return code from TeX is less than $TEXERROR, the error doesn't count. - Made $TEXCMD an associative array so that different formats can have different command strings. $TEXCMD{"default"} is now the default. - Made analagous change to $TEXOPTS. - Added warning message when TeXit can't figure out the format - No longer escape backslashes in rules. This means that you have to use "\\" where "\" used to suffice. Advantage: you can now refer to Perl variables in your rules (prefix them with one backslash). - Added %S, %T, and %D meta-symbols in commands. They have the same meaning as %s, %t and %d but forward slashes are translated into backslashes before substitution. This is so they can be passed to DOS and OS/2 programs which expect pathnames to be delimited with backslashes. - Improved handling of return codes from programs. - Print warning if return code is non-zero - Parse LaTeX log file for "foiltex" and "slitex" formats - Print rules before evaluating them in $VERBOSE mode - Automatically recognize the "foiltex" format - No longer run BibTeX if the AUX file is missing - Made it possible for prompt keys [x] to be any non-whitespace char instead of only letters. - Added -menu option. If -menu is used, TeX is not run before displaying the menu for the first time. - Reworked the logic for running BibTeX. Now only run BibTeX if there are new missing citations. This means BibTeX is usually only run once rather than twice. Version 1.25 Never released Version 1.24 Initial release