Hello, Aaron Ecay <aarone...@gmail.com> writes:
> The current way that org handles LaTeX packages for export isn’t > optimal. The org-latex-(default-)packages-alist variables define a set > of packages that are loaded always. If a user wants to use advanced > functionality (booktabs for nicer table export, listings or minted for > nicer source code), s/he has to add the packages to these variables > manually.And a package like longtables is imported into every > document, slowing down compilation even when it is not used. I think you are misusing latex back-end configuration. Obviously, if you need a package in every document you write, it should go into `org-latex-packages-alist'. If you need occasional packages, they should go into `org-latex-classes'. Adding a new class is cheap. For example you can create a class "article-with-tikz". It also allows to include arbitrary code within the header. > The attached patches (specifically 1, 2, and 5) introduce a mechanism to > load certain packages only when needed. It is possible to customize > these packages by specifying options to be passed to their \usepackage > (only inserted if needed to properly export the document), as well as > arbitrary code to place in the document’s preamble if the package is > used. I don't want to take that route. Bad things can happen if you load packages in the wrong order, or with wrong options. This is a can of worms. That's why no package is ever loaded automatically. Notwithstanding conditional package insertion, `org-latex-classes' provides the same set of features. > The other patches in the series (3, 4) fix the latex exporter’s handling > of tikz image files, as generated by R’s tikzDevice function. > Currently, a link to the file containing the graphics code is inserted. > The proper behavior is to \input the file; the source code therein is > compiled into a graph by LaTeX as it compiles the document. (Tikz is a > very expensive latex package to load; the ability to load tikz only when > necessary motivated the optional packages mechanism.) I don't mind that change. Would you mind providing it as a separate set of patches? Anyway, nothing can be applied before FSF registration is complete. > I think these patches need more testing, but I wanted to send them along > for feedback. If it is not desired to change the status quo > wrt. packages like booktabs and minted (must be manually added), and > wrapfig and longtable (will always be used even if not needed), it would > be possible to accept only patches 1, 3, and 4. (But obviously I think > the other patches are a marked improvement.) I don't mind removing "longtable" from `org-latex-default-packages-alist'. I think there's no reason for it to be there. Regards, -- Nicolas Goaziou