# [TxMt] Latex Config and backward compatibility questions

Tue Jul 31 16:58:30 UTC 2007

On 7/31/07, Robin Houston <robin.houston at gmail.com> wrote:
>
> On 31/07/07, Brad Miller <bmiller at luther.edu> wrote:
> > But, if I make any changes the view does not update.  I get the
> following
> > error in the log:
> >
> > Use of uninitialized value in system at
> > /Users/bmiller/Library/Application
> > Support/TextMate/Bundles/Latex.tmbundle/Support/bin/latex_watch.pl
> > line 690.
>
> What version of Watch did you use? In the current version (2.5), line
> 690 is a comment!

OK, I was using version 2.4  I'll grab the latest after lunch and try it.

> 1.  It feels like there must be a ton of duplicated effort between the
> > typeset and view command as implemented in texMate.py and friends and
> what
> > you have done.  texMate.py is pretty modular, and may be able to do much
> of
> > what latex_watch.pl does.
>
> It may well be that some logic is duplicated, and can be factored out.
> I suspect there may be less than you think. Have you looked at the
> Watch code? Most of it is fairly specific to the monitor-and-update
> model used by Watch.

I was thinking mostly of the compiling and finding options and getting
preferences...

> 2.  I don't understand the limitation about not being able to watch files
> > that have the \begin document in an included header file.
>
> Watch needs to be able to distinguish the preamble from the document
> body. The preamble is extracted and used to compile a custom format
> file (TeX memory dump) which is used to compile the body. This format
> is regenerated only when the preamble is changed. If the preamble is
> spread across multiple files, it is more complicated to keep track of.
> There are any number of ways that this could be improved to some
> extent: since I do not know a perfect solution, I thought I would
> address such cases as they arise. To date, no one has shown me a "real
> world" document that suffers from this problem.
>
> (Incidentally, I did find a cunning solution to *half* the problem:
> see the contents of the Support/tex/generic directory in the bundle.)

Here's my real world example for you then :-)
I'm working on a book with another author.  We have a master file for when
we want to typeset the entire book, but most of the time we just want to
typeset individual chapters.  So we have a header and a footer file that we
put into each chapter, as well as the master file for the whole book.  These
headers and footers are smart enough to detect when we are typesetting the
whole book, or just a chapter.

It works much better than both of us having to comment out various parts of
the entire master file when we are working on a single chapter.

I think this approach was talked about on the TM list a while (over a year)
back.

How hard would it be to solve this problem the brute force way and just
provide a flag that would have the script recompile the whole document.  I
wonder whether precompiling the preamble really saves you that much time for
most documents on modern hardware??

Robin
>
> ______________________________________________________________________
> For new threads USE THIS: textmate at lists.macromates.com
> (threading gets destroyed and the universe will collapse if you don't)
> http://lists.macromates.com/mailman/listinfo/textmate
>

--