]> git.lyx.org Git - lyx.git/blob - src/LaTeXFeatures.h
Small fix.
[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-2000 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
25 class BufferParams; 
26 class LyXTextClass;
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 struct LaTeXFeatures {
35         ///
36         LaTeXFeatures(BufferParams const &, int n) ;
37         /// The packaes needed by the document
38         string getPackages();
39         /// The macros definitions needed by the document
40         string getMacros();
41         /// The definitions needed by the document's textclass
42         string getTClassPreamble();
43         ///
44         string getIncludedFiles();
45
46         ///
47         void showStruct();
48
49         /// Provide a string name-space to the requirements
50         void require(string const & name);
51
52         /// Static preamble bits from the external material insets
53         string externalPreambles;
54
55         //@Man: Packages
56         //@{
57         ///
58         bool array;
59         ///
60         bool color;     // color.sty
61         ///
62         bool graphicx; // graphicx.sty
63         ///
64         bool graphics;  // graphics.sty
65         ///
66         bool setspace;  // setspace.sty
67         ///
68         bool makeidx;   // makeind.sty
69         ///
70         bool verbatim;  // verbatim.sty
71         ///
72         bool longtable; // longtable.sty
73         ///
74         bool algorithm; // algorithm.sty
75         ///
76         bool rotating;  // rotating.sty
77         ///
78         bool amssymb;   // amssymb.sty
79         ///
80         bool latexsym;   // latexsym.sty
81         ///
82         bool pifont;    // pifont.sty
83         ///
84         bool subfigure; // subfigure.sty
85         ///
86         bool floatflt;  // floatflt.sty
87         ///
88         bool url;       // url.sty
89         ///
90         bool varioref;  // varioref.sty
91         ///
92         bool prettyref; // prettyref.sty
93         ///
94         bool chess;     // chess.sty
95         //@}
96
97         
98         //@Man: Commands
99         //@{
100         ///
101         bool lyx;
102         ///
103         bool lyxline;
104         /// \noun
105         bool noun;
106         /// \lyxarrow
107         bool lyxarrow;
108         //@}
109         
110         //@Man: Quotes
111         //@{
112         ///
113         bool quotesinglbase;
114         ///
115         bool quotedblbase;
116         ///
117         bool guilsinglleft;
118         ///
119         bool guilsinglright;
120         ///
121         bool guillemotleft;
122         ///
123         bool guillemotright;
124         //@}
125         
126         //@Man: Math mode
127         //@{
128         ///
129         bool amsstyle;
130         ///
131         bool boldsymbol;
132         ///
133         bool binom;
134         //@}
135         
136         //@Man: Layouts
137         //@{
138         std::vector<bool> layout;
139         //@}
140         
141         //@Man: Special features
142         //@{
143         bool LyXParagraphIndent;
144         ///
145         bool NeedLyXFootnoteCode;
146         ///
147         bool NeedLyXMinipageIndent;
148         ///
149         typedef std::set<Language const *> LanguageList;
150         ///
151         LanguageList UsedLanguages;
152         ///
153         typedef std::set<string> FloatList;
154         ///
155         FloatList usedFloats;
156         ///
157         typedef std::map<string , string> FileMap;
158         ///
159         FileMap IncludedFiles;
160         //@}
161         BufferParams const & bufferParams() const;
162 private:
163         BufferParams const & params;
164 };
165
166 #endif