- /// Static preamble bits from the external material insets
- string externalPreambles;
-
- //@Man: Packages
- //@{
- ///
- bool array;
- ///
- bool color; // color.sty
- ///
- bool graphicx; // graphicx.sty
- ///
- bool graphics; // graphics.sty
+/** The packages and commands that a buffer needs. This class
+ * contains a list<string>. Each of the LaTeX packages that a buffer needs
+ * should be added with void require(string const & name).
+ *
+ * i.e require("amssymb")
+ *
+ * To add support you should only need to require() the package name as
+ * packages which don't have special requirements are handled automatically.
+ * If your new package does need special consideration you'll need to alter
+ * string const getPackages() const;
+ * Remember to update the validate function in Buffer.cpp and Paragraph.cpp
+ * when you do so.
+ */
+class LaTeXFeatures {
+public:
+ ///
+ LaTeXFeatures(Buffer const &, BufferParams const &,
+ OutputParams const &);
+ /// The color packages
+ std::string const getColorOptions() const;
+ /// The packages needed by the document
+ std::string const getPackages() const;
+ /// The macros definitions needed by the document
+ docstring const getMacros() const;