]> git.lyx.org Git - lyx.git/blob - src/LaTeXFeatures.h
Fix working of the spellchecker dialog with ispell when there are no
[lyx.git] / src / LaTeXFeatures.h
1 // -*- C++ -*-
2 /* This file is part of
3 * ====================================================== 
4
5 *           LyX, The Document Processor
6 *        
7 *           Copyright 1995 Matthias Ettrich
8 *           Copyright 1995-2001 the LyX Team.
9 *
10 * ====================================================== */
11
12 #ifndef LATEXFEATURES_H
13 #define LATEXFEATURES_H
14
15
16 #ifdef __GNUG__
17 #pragma interface
18 #endif
19
20 #include <vector>
21 #include <set>
22
23 #include "LString.h"
24 #include "layout.h"
25
26 class BufferParams; 
27 struct Language;
28
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 */
35 struct LaTeXFeatures {
36         ///
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;
44         ///
45         string const getIncludedFiles(string const & fname) const;
46         ///
47         void getFloatDefinitions(std::ostream & os) const;
48
49         ///
50         void showStruct() const;
51
52         /// Provide a string name-space to the requirements
53         void require(string const & name);
54
55         /// Static preamble bits from the external material insets
56         string externalPreambles;
57
58         ///
59         bool array;
60         ///
61         bool color;     // color.sty
62         ///
63         bool graphicx; // graphicx.sty
64         ///
65         bool graphics;  // graphics.sty
66         ///
67         bool setspace;  // setspace.sty
68         ///
69         bool makeidx;   // makeind.sty
70         ///
71         bool verbatim;  // verbatim.sty
72         ///
73         bool longtable; // longtable.sty
74         ///
75         //bool algorithm; // algorithm.sty
76         ///
77         bool rotating;  // rotating.sty
78         ///
79         bool amssymb;   // amssymb.sty
80         ///
81         bool latexsym;   // latexsym.sty
82         ///
83         bool pifont;    // pifont.sty
84         ///
85         bool subfigure; // subfigure.sty
86         ///
87         bool floatflt;  // floatflt.sty
88         ///
89         bool url;       // url.sty
90         ///
91         bool varioref;  // varioref.sty
92         ///
93         bool prettyref; // prettyref.sty
94         ///
95         bool chess;     // chess.sty
96         ///
97         bool natbib;    // natbib.sty
98         ///
99         bool floats;    // float.sty
100         
101         ///
102         bool lyx;
103         ///
104         bool lyxline;
105         /// \noun
106         bool noun;
107         /// \lyxarrow
108         bool lyxarrow;
109
110         ///
111         bool quotesinglbase;
112         ///
113         bool quotedblbase;
114         ///
115         bool guilsinglleft;
116         ///
117         bool guilsinglright;
118         ///
119         bool guillemotleft;
120         ///
121         bool guillemotright;
122
123         ///
124         bool amsstyle;
125         ///
126         bool boldsymbol;
127         ///
128         bool binom;
129         
130         std::vector<bool> layout;
131
132         ///
133         bool ParagraphIndent;
134         ///
135         bool NeedLyXFootnoteCode;
136         ///
137         bool NeedLyXMinipageIndent;
138         ///
139         typedef std::set<Language const *> LanguageList;
140         ///
141         LanguageList UsedLanguages;
142         ///
143         typedef std::set<string> UsedFloats;
144         ///
145         UsedFloats usedFloats;
146         ///
147         typedef std::map<string , string> FileMap;
148         ///
149         FileMap IncludedFiles;
150         ///
151         BufferParams const & bufferParams() const;
152 private:
153         ///
154         BufferParams const & params;
155 };
156
157 #endif