2 /* This file is part of
3 * ======================================================
5 * LyX, The Document Processor
7 * Copyright 1995 Matthias Ettrich
8 * Copyright 1995-2000 the LyX Team.
10 * ====================================================== */
12 #ifndef LATEXFEATURES_H
13 #define LATEXFEATURES_H
29 /** The packages and commands that a buffer needs. This struct
30 contains an entry for each of the latex packages and
31 commands that a buffer might need. This struct is supposed to be
32 extended as the need arises. Remember to update the validate function
33 in buffer.C and paragraph.C when you do so. */
34 struct LaTeXFeatures {
36 LaTeXFeatures(BufferParams const &, int n) ;
37 /// The packaes needed by the document
39 /// The macros definitions needed by the document
41 /// The definitions needed by the document's textclass
42 string getTClassPreamble();
47 /// Provide a string name-space to the requirements
48 void require(string const & name);
50 /// Static preamble bits from the external material insets
51 string externalPreambles;
56 bool color; // color.sty
59 bool graphicx; // graphicx.sty
62 bool graphics; // graphics.sty
65 bool setspace; // setspace.sty
67 bool makeidx; // makeind.sty
69 bool verbatim; // verbatim.sty
71 bool longtable; // longtable.sty
73 bool algorithm; // algorithm.sty
75 bool rotating; // rotating.sty
77 bool amssymb; // amssymb.sty
79 bool latexsym; // latexsym.sty
81 bool pifont; // pifont.sty
83 bool subfigure; // subfigure.sty
85 bool floatflt; // floatflt.sty
89 bool varioref; // varioref.sty
91 bool prettyref; // prettyref.sty
93 bool chess; // chess.sty
137 std::vector<bool> layout;
140 //@Man: Special features
142 bool LyXParagraphIndent;
144 bool NeedLyXFootnoteCode;
146 bool NeedLyXMinipageIndent;
148 typedef std::set<Language const *> LanguageList;
150 LanguageList UsedLanguages;
152 typedef std::set<string> FloatList;
154 FloatList usedFloats;
156 BufferParams const & bufferParams() const;
158 BufferParams const & params;