* LyX, The Document Processor
*
* Copyright 1995 Matthias Ettrich
-* Copyright 1995-2000 the LyX Team.
+* Copyright 1995-2001 the LyX Team.
*
* ====================================================== */
#include <vector>
#include <set>
-using std::vector;
-using std::set;
#include "LString.h"
+#include "layout.h"
class BufferParams;
-class LyXTextClass;
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 &, LyXTextClass::size_type n) ;
/// The packaes needed by the document
- string getPackages(BufferParams const & params);
+ string const getPackages() const;
/// The macros definitions needed by the document
- string getMacros(BufferParams const & params);
+ string const getMacros() const;
/// The definitions needed by the document's textclass
- string getTClassPreamble(BufferParams const & params);
+ string const getTClassPreamble() const;
+ ///
+ string const getIncludedFiles(string const & fname) const;
+ ///
+ void getFloatDefinitions(std::ostream & os) const;
///
- void showStruct(BufferParams const & params);
+ void showStruct() const;
+
+ /// 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 longtable; // longtable.sty
///
- bool algorithm; // algorithm.sty
+ //bool algorithm; // algorithm.sty
///
bool rotating; // rotating.sty
///
bool floatflt; // floatflt.sty
///
bool url; // url.sty
- //@}
-
+ ///
+ bool varioref; // varioref.sty
+ ///
+ bool prettyref; // prettyref.sty
+ ///
+ bool chess; // chess.sty
+ ///
+ bool natbib; // natbib.sty
+ ///
+ bool floats; // float.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
- //@{
- bool LyXParagraphIndent;
+ std::vector<bool> layout;
+
+ ///
+ bool ParagraphIndent;
///
bool NeedLyXFootnoteCode;
///
bool NeedLyXMinipageIndent;
///
- typedef set<Language const *> LanguageList;
+ typedef std::set<Language const *> LanguageList;
///
LanguageList UsedLanguages;
- //@}
+ ///
+ typedef std::set<string> UsedFloats;
+ ///
+ UsedFloats usedFloats;
+ ///
+ typedef std::map<string , string> FileMap;
+ ///
+ FileMap IncludedFiles;
+ ///
+ BufferParams const & bufferParams() const;
+private:
+ ///
+ BufferParams const & params;
};
#endif