>>>>> "Michael" == Michael A Koziarski <[EMAIL PROTECTED]> writes:

Michael> This is the last patch I'll be able to contribute till late
Michael> next week some time. Hopefully there's nothing that can
Michael> prevent it being applied.

A few comments/ideas (although I think this patch is definitely good).

1/ You could have a simple helper function

void handleFeature(std::ostream os, string const &name) const
{
  if(isRequired(name))
        os << "\usepackage{" << name << "\}\n";
}

To replace the bunch of 
+       // verbatim.sty
+       if (isRequired("verbatim"))
+               packages << "\\usepackage{verbatim}\n";
+

Or maybe have a static array of those ``simple'' features and just
loop over it.

2/ more importantly, it would be nice to check that all features that
have been require()'d have a matching isRequired(), that is, that the
code handles all the features that have been requested. Otherwise, the
code would spit the list of not features that have not been handled.
This would help catch typos.

Michael> I don't know enough about the TeX requirements here. It seems
Michael> that this code is in Buffer.C to ensure that
Michael> \usepackage{amsmath} happens before anything else. Is this
Michael> necessary?

OK, we'll see that once the patch is applied.

Michael> On another note frequently the client code requires() a
Michael> string which doesn't correspond to a package name. i.e we
Michael> require("floats") to ensure \usepackage{float}. the ams stuff
Michael> is similarly odd.

Michael> Could someone with some TeX knowledge have a look at this?
Michael> ideally require(string) will lead to \usepackage{string}
Michael> wherever possible.

I'll have a look at that when the patch is applied.

JMarc

Reply via email to