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 packages 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;
44 /// The sgml definitions needed by the document (dobook/linuxdoc)
45 string const getLyXSGMLEntities() const;
47 string const getIncludedFiles(string const & fname) const;
49 void getFloatDefinitions(std::ostream & os) const;
52 void showStruct() const;
54 /// Provide a string name-space to the requirements
55 void require(string const & name);
57 /// Static preamble bits from the external material insets
58 string externalPreambles;
63 bool color; // color.sty
65 bool graphicx; // graphicx.sty
67 bool graphics; // graphics.sty
69 bool setspace; // setspace.sty
71 bool makeidx; // makeind.sty
73 bool verbatim; // verbatim.sty
75 bool longtable; // longtable.sty
77 //bool algorithm; // algorithm.sty
79 bool rotating; // rotating.sty
81 bool amssymb; // amssymb.sty
83 bool latexsym; // latexsym.sty
85 bool pifont; // pifont.sty
87 bool subfigure; // subfigure.sty
89 bool floatflt; // floatflt.sty
93 bool varioref; // varioref.sty
95 bool prettyref; // prettyref.sty
97 bool chess; // skak.sty (new chess support)
99 bool natbib; // natbib.sty
101 bool floats; // float.sty
132 std::vector<bool> layout;
135 bool ParagraphIndent;
137 bool NeedLyXFootnoteCode;
139 bool NeedLyXMinipageIndent;
141 typedef std::set<Language const *> LanguageList;
143 LanguageList UsedLanguages;
145 typedef std::set<string> UsedFloats;
147 UsedFloats usedFloats;
149 typedef std::map<string , string> FileMap;
151 FileMap IncludedFiles;
153 BufferParams const & bufferParams() const;
156 BufferParams const & params;