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
97 bool natbib; // natbib.sty
128 std::vector<bool> layout;
131 bool ParagraphIndent;
133 bool NeedLyXFootnoteCode;
135 bool NeedLyXMinipageIndent;
137 typedef std::set<Language const *> LanguageList;
139 LanguageList UsedLanguages;
141 typedef std::set<string> UsedFloats;
143 UsedFloats usedFloats;
145 typedef std::map<string , string> FileMap;
147 FileMap IncludedFiles;
149 BufferParams const & bufferParams() const;
152 BufferParams const & params;