#include <vector>
#include <set>
-using std::vector;
-using std::set;
#include "LString.h"
struct Language;
/** The packages and commands that a buffer needs. This struct
- contains an entry for each of the latex packages and
- commands that a buffer might need. This struct is supposed to be
- extended as the need arises. Remember to update the validate function
- in buffer.C and paragraph.C when you do so. */
+ contains an entry for each of the latex packages and
+ commands that a buffer might need. This struct is supposed to be
+ extended as the need arises. Remember to update the validate function
+ in buffer.C and paragraph.C when you do so.
+*/
struct LaTeXFeatures {
///
- LaTeXFeatures(int n) ;
+ LaTeXFeatures(BufferParams const &, int n) ;
/// The packaes needed by the document
- string getPackages(BufferParams const & params);
+ string getPackages();
/// The macros definitions needed by the document
- string getMacros(BufferParams const & params);
+ string getMacros();
/// The definitions needed by the document's textclass
- string getTClassPreamble(BufferParams const & params);
+ string getTClassPreamble();
+ ///
+ string getIncludedFiles();
///
- void showStruct(BufferParams const & params);
+ void showStruct();
+
+ /// Provide a string name-space to the requirements
+ void require(string const & name);
+
+ /// Static preamble bits from the external material insets
+ string externalPreambles;
- //@Man: Packages
- //@{
+ ///
+ bool array;
///
bool color; // color.sty
-#ifdef USE_GRAPHICX
///
bool graphicx; // graphicx.sty
-#else
///
bool graphics; // graphics.sty
-#endif
///
bool setspace; // setspace.sty
///
bool floatflt; // floatflt.sty
///
bool url; // url.sty
- //@}
+ ///
+ bool varioref; // varioref.sty
+ ///
+ bool prettyref; // prettyref.sty
+ ///
+ bool chess; // chess.sty
-
- //@Man: Commands
- //@{
///
bool lyx;
///
bool noun;
/// \lyxarrow
bool lyxarrow;
- //@}
-
- //@Man: Quotes
- //@{
+
///
bool quotesinglbase;
///
bool guillemotleft;
///
bool guillemotright;
- //@}
-
- //@Man: Math mode
- //@{
+
///
bool amsstyle;
///
bool boldsymbol;
///
bool binom;
- //@}
-
- //@Man: Layouts
- //@{
- vector<bool> layout;
- //@}
- //@Man: Special features
- //@{
+ std::vector<bool> layout;
+
+ ///
bool LyXParagraphIndent;
///
bool NeedLyXFootnoteCode;
///
bool NeedLyXMinipageIndent;
///
- typedef set<Language const *> LanguageList;
+ typedef std::set<Language const *> LanguageList;
///
LanguageList UsedLanguages;
- //@}
+ ///
+ typedef std::set<string> FloatList;
+ ///
+ FloatList usedFloats;
+ ///
+ typedef std::map<string , string> FileMap;
+ ///
+ FileMap IncludedFiles;
+ ///
+ BufferParams const & bufferParams() const;
+private:
+ ///
+ BufferParams const & params;
};
#endif