When I meant of logic testing, I did not have exactly that in mind. One issue comes up when changing levels to something, which would require changing a sub to a sec, changing all labels and refs for it etc, doable but just adds to the complication. By logic I meant the logic of the program. For instance, where should a "\paragraph" end? Imagine this:
\section{my section}
Some text here \paragraph{a paragraph} Here is the paragraph. But where does it end?
Is this part of the paragraph? Or only the section? What if I have some equation:
[ \sin(x) ]
Is this now still the same paragraph? \section{the next section}
This is one problem. But my biggest problem is anticipating all the intricacies of everyone's LaTeX documents. Case in point: You assume everyone can use Time Machine, which for instance for me and other 10.4 people is not the case. In working on the LaTeX bundle, especially the bib parser, I encountered dozens of problems with custom bib files that I had not anticipated because my bib files don't behave like that, hence I was making assumptions about how all bib files look like based on how my bib files look like. Similar caution would be needed here. A mistake in this case could cause problems that might not become apparent until much-much later. It's not like some text will be colored with the wrong color. If that mistake causes a whole chunk of text in a 400 page document to vanish out of sight, or move to a different location, this might not be discovered for months. I really wouldn't want to be responsible for that. So any such feature, even if it does appear, will come with about a dozen warnings.
I do appreciate how useful this would be, and I do miss it quite a bit, but it is darned hard to get right for the totality of LaTeX documents, which is what I am trying to think of when working on the bundle.
Haris Skiadas Department of Mathematics and Computer Science Hanover College
On Jan 30, 2008, at 6:55 AM, Jenny Harrison wrote:
Certainly this would be risky when writing something like a math paper, but outliners all have this feature and are well used and appreciated. As far as testing goes, it should not be hard to devise a "logic tester" to flag each time a \ref for a Lemma, Proposition, Theorem, etc., occurred before the statement. That would handle most serious rearrangement errors, the kind of tragic mistake that can occur at 3 am when very sleepy! Time Machine gives us all decent version control.
On 1/30/08, at 3:29 , Charilaos Skiadas wrote:
On Jan 30, 2008, at 6:18 AM, Jenny Harrison wrote:
Yeh, I am still here. What a dream come true this would be! I don't see how split windows would give a work around for dragging and dropping sections.
-Jenny
On 1/30/08, at 2:58 , Jacob Rus wrote:
Charilaos Skiadas wrote:
Actually what would be even nicer, for me, would be to be able to get an outline of your whole project, essentially listing the table of contents, regardless of how many files the project is split into, and then to be able to simply drag and drop sections around to rearrange things. But I am probably just daydreaming.
Yeah. Jenny (and perhaps others) were talking about this a year ago, but it somehow still hasn't happened. If someone builds such a thing, I'll gladly buy them a beer. :)
Part of the reason it still hasn't happened, apart from my almost zero free time to invest in TextMate programming for at least the last 6 months or so, is what seems to me to be the destructiveness of the whole thing. We are moving vast amounts of text around, possibly across multiple files, and it seems to me it would be hard to test whether the right thing happened. This is why I have been hesitant to do something like that (apart from the other reasons preventing me from doing it).
If everyone was using a version control system on all their tex files/projects, I might be less worried about it. I envisioned this as an HTML tree of the document, with those little triangles used for expanding or hiding the subtrees like in the bundle editor, and then drag and dropping sections around and tracking the thing via javascript. Should not be too hard once we have a reliable way to read the whole project in and get the overall structure figured out correctly and reliably.