2 /* This file is part of
3 * ======================================================
5 * LyX, The Document Processor
7 * Copyright 1995 Matthias Ettrich
8 * Copyright 1995-2001 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.
35 struct LaTeXFeatures {
37 LaTeXFeatures(BufferParams const &, LyXTextClass::size_type n) ;
38 /// The packaes needed by the document
39 string const getPackages() const;
40 /// The macros definitions needed by the document
41 string const getMacros() const;
42 /// The definitions needed by the document's textclass
43 string const getTClassPreamble() const;
45 string const getIncludedFiles(string const & fname) const;
47 void getFloatDefinitions(std::ostream & os) const;
50 void showStruct() const;
52 /// Provide a string name-space to the requirements
53 void require(string const & name);
55 /// Static preamble bits from the external material insets
56 string externalPreambles;
61 bool color; // color.sty
63 bool graphicx; // graphicx.sty
65 bool graphics; // graphics.sty
67 bool setspace; // setspace.sty
69 bool makeidx; // makeind.sty
71 bool verbatim; // verbatim.sty
73 bool longtable; // longtable.sty
75 //bool algorithm; // algorithm.sty
77 bool rotating; // rotating.sty
79 bool amssymb; // amssymb.sty
81 bool latexsym; // latexsym.sty
83 bool pifont; // pifont.sty
85 bool subfigure; // subfigure.sty
87 bool floatflt; // floatflt.sty
91 bool varioref; // varioref.sty
93 bool prettyref; // prettyref.sty
95 bool chess; // chess.sty
126 std::vector<bool> layout;
129 bool LyXParagraphIndent;
131 bool NeedLyXFootnoteCode;
133 bool NeedLyXMinipageIndent;
135 typedef std::set<Language const *> LanguageList;
137 LanguageList UsedLanguages;
139 typedef std::set<string> UsedFloats;
141 UsedFloats usedFloats;
143 typedef std::map<string , string> FileMap;
145 FileMap IncludedFiles;
147 BufferParams const & bufferParams() const;
150 BufferParams const & params;