]> git.lyx.org Git - features.git/blob - src/LaTeXFeatures.h
patch from dekel
[features.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         ///
45         void showStruct();
46
47         //@Man: Packages
48         //@{
49         ///
50         bool color;     // color.sty
51 #ifdef USE_GRAPHICX
52         ///
53         bool graphicx; // graphicx.sty
54 #else
55         ///
56         bool graphics;  // graphics.sty
57 #endif
58         ///
59         bool setspace;  // setspace.sty
60         ///
61         bool makeidx;   // makeind.sty
62         ///
63         bool verbatim;  // verbatim.sty
64         ///
65         bool longtable; // longtable.sty
66         ///
67         bool algorithm; // algorithm.sty
68         ///
69         bool rotating;  // rotating.sty
70         ///
71         bool amssymb;   // amssymb.sty
72         ///
73         bool latexsym;   // latexsym.sty
74         ///
75         bool pifont;    // pifont.sty
76         ///
77         bool subfigure; // subfigure.sty
78         ///
79         bool floatflt;  // floatflt.sty
80         ///
81         bool url;       // url.sty
82         ///
83         bool varioref;  // varioref.sty
84         ///
85         bool prettyref; // prettyref.sty
86         //@}
87
88         
89         //@Man: Commands
90         //@{
91         ///
92         bool lyx;
93         ///
94         bool lyxline;
95         /// \noun
96         bool noun;
97         /// \lyxarrow
98         bool lyxarrow;
99         //@}
100         
101         //@Man: Quotes
102         //@{
103         ///
104         bool quotesinglbase;
105         ///
106         bool quotedblbase;
107         ///
108         bool guilsinglleft;
109         ///
110         bool guilsinglright;
111         ///
112         bool guillemotleft;
113         ///
114         bool guillemotright;
115         //@}
116         
117         //@Man: Math mode
118         //@{
119         ///
120         bool amsstyle;
121         ///
122         bool boldsymbol;
123         ///
124         bool binom;
125         //@}
126         
127         //@Man: Layouts
128         //@{
129         std::vector<bool> layout;
130         //@}
131         
132         //@Man: Special features
133         //@{
134         bool LyXParagraphIndent;
135         ///
136         bool NeedLyXFootnoteCode;
137         ///
138         bool NeedLyXMinipageIndent;
139         ///
140         typedef std::set<Language const *> LanguageList;
141         ///
142         LanguageList UsedLanguages;
143         //@}
144         BufferParams const & bufferParams() const;
145 private:
146         BufferParams const & params;
147 };
148
149 #endif