[TxMt] [Latex] Compiler selection logic
Robin Houston
robin.houston at gmail.com
Fri Apr 13 10:51:41 UTC 2007
As we've discussed before, the current compiler selection logic (in the
Typeset & View command) is a bit of a mess. Below is a suggestion for how it
might be rationalised. Once we've agreed on a plan, I'm happy to implement
it.
One complication is that it's sometimes useful to have compilation under the
control of a custom script – either one that you've written for your
specific project, or a generic compilation tool such as latexmk. The way
that TeXShop deals with this is to have special program-designators "mytex"
and "mylatex", which signify that a user-specified compilation script should
be used. I propose that we adopt this mechanism.
The first task is to decide on the compilation route to use. This will be
one of: tex, latex, pdftex, pdflatex, xetex, xelatex, mytex, mylatex. I
propose trying the following things, in order:
1. Use the %!TEX TS-program specification in the source file.
2. Use the %!TEX TS-program specification in the master file.
3. Use the value of the $TM_LATEX_PROGRAM variable.
4. Sniff for \usepackage commands that suggest (DVI)latex/xelatex should be
used.
5. Default to pdflatex.
If the resulting value is mytex/mylatex, then:
1. Use the script specified in the variable $TM_LATEX_MYTEX or
$TM_LATEX_MYLATEX,
2. Use the script specified in the TeXShop configuration, if any:
defaults read TeXShop TexScriptCommand
defaults read TeXShop LatexScriptCommand
3. Give up, explaining why.
So, the variables $TM_LATEX_COMPILER and $TEX_PSTRICKS would no longer be
used. For backwards compatibility, we could continue to allow the value of
$TM_LATEX_COMPILER to trump all other considerations (perhaps with a warning
in the compilation window to the effect that this variable is deprecated,
and explaining the new way to do it).
Any thoughts?
Robin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macromates.com/textmate/attachments/20070413/49f7d17e/attachment.html>
More information about the textmate
mailing list