On Wed, Aug 30, 2006 at 10:36:09AM -0700, Gautam Iyer wrote: > On Wed, Aug 30, 2006 at 07:17:16PM +0200, Stefano Zacchiroli wrote: > > > > I agree with the comment that plain TeX users may also define such > > > sectioning commands. Maybe it would be safe if you check for such > > > definitions, using an include-file search ... but of course, that is > > > more convenient after ftplugin/plaintex.vim has been :source'd. > > > > I'm not really fond of plain TeX, but I think it is not really > > widespread to \input slices of plain TeX. So the idea mentioned in > > this thread was to implement the policy: "if a document starts with a > > lot of blanks followed by one of the possible LaTeX sectioning > > commands, then it is (probably) a LaTeX source file". What do you > > think of this policy?
I think my undergraduate thesis (1985, plain TeX, just about the time the first version of LaTeX came out) was structured that way (i.e., split into separate files, each beginning with a \chapter command or something like that. (My thesis was also my introduction to vi.) I also had several collections of macros, so my TeX files usually started out with \magnification 1200 \input standard \input math \input smiley or something like that. I do not recall whether I defined any sectioning commands in these files. Now that you describe your proposed policy more, I like it a little better. Specifically, I like the idea of looking at the first non-comment, non-blank line, since that gets around the problem that something that *looks* like LaTeX might be defined in an \input file. I would like it better if it were more conservative. The problem is that the LaTeX sectioning commands are not very LaTeX-y: if you were looking for \begin{chapter} instead of \chapter then I would be a lot happier. > I actually like this policy a lot. Most people who break latex files up > into tonnes and tonnes of little files, do so based on sections. Odds > are, that the little files will begin with a bunch of comments, and a > sectioning command. > > It would make life easier if this made it into filetype.vim. Especially > because changing g:tex_flavor means that every time I edit a plain tex > file, I need to unlet this variable. Another option is to add one of the lines %&plain %&tex %&pdfplain or %&pdftex at the top of the plain TeX files (assuming that they are your own). This is the most reliable method for determining file the TeX flavor, since it overrides a format specified on the command line: $ latex myfile will *not* load the LaTeX format if myfile.tex starts with one of the above lines. The only problem (unless this has changed since the last time I checked) is that the pdftex program is not smart enough to change %&plain to %&pdfplain . For now, I suggest doing what you think is right in the Debian package. If plain TeX is really as rare as you think (I do not disagree, but I am willing to be surprised!) and there are no complaints, then I might vote for a change to the vim distro based on feedback from Debian users. HTH --Benji Fisher