]> git.lyx.org Git - lyx.git/blob - src/LaTeXFeatures.h
65aa5942a9336b99d75ff816232550dbd302cc21
[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 using std::vector;
23 using std::set;
24
25 #include "LString.h"
26
27 class BufferParams; 
28 class LyXTextClass;
29 struct Language;
30
31 /** The packages and commands that a buffer needs. This struct
32   contains an entry for each of the latex packages and
33   commands that a buffer might need. This struct is supposed to be
34   extended as the need arises. Remember to update the validate function
35   in buffer.C and paragraph.C when you do so. */
36 struct LaTeXFeatures {
37         ///
38         LaTeXFeatures(int n) ;
39         /// The packaes needed by the document
40         string getPackages(BufferParams const & params);
41         /// The macros definitions needed by the document
42         string getMacros(BufferParams const & params);
43         /// The definitions needed by the document's textclass
44         string getTClassPreamble(BufferParams const & params);
45
46         ///
47         void showStruct(BufferParams const & params);
48
49         //@Man: Packages
50         //@{
51         ///
52         bool color;     // color.sty
53 #ifdef USE_GRAPHICX
54         ///
55         bool graphicx; // graphicx.sty
56 #else
57         ///
58         bool graphics;  // graphics.sty
59 #endif
60         ///
61         bool setspace;  // setspace.sty
62         ///
63         bool makeidx;   // makeind.sty
64         ///
65         bool verbatim;  // verbatim.sty
66         ///
67         bool longtable; // longtable.sty
68         ///
69         bool algorithm; // algorithm.sty
70         ///
71         bool rotating;  // rotating.sty
72         ///
73         bool amssymb;   // amssymb.sty
74         ///
75         bool latexsym;   // latexsym.sty
76         ///
77         bool pifont;    // pifont.sty
78         ///
79         bool subfigure; // subfigure.sty
80         ///
81         bool floatflt;  // floatflt.sty
82         ///
83         bool url;       // url.sty
84         //@}
85
86         
87         //@Man: Commands
88         //@{
89         ///
90         bool lyx;
91         ///
92         bool lyxline;
93         /// \noun
94         bool noun;
95         /// \lyxarrow
96         bool lyxarrow;
97         //@}
98         
99         //@Man: Quotes
100         //@{
101         ///
102         bool quotesinglbase;
103         ///
104         bool quotedblbase;
105         ///
106         bool guilsinglleft;
107         ///
108         bool guilsinglright;
109         ///
110         bool guillemotleft;
111         ///
112         bool guillemotright;
113         //@}
114         
115         //@Man: Math mode
116         //@{
117         ///
118         bool amsstyle;
119         ///
120         bool boldsymbol;
121         ///
122         bool binom;
123         //@}
124         
125         //@Man: Layouts
126         //@{
127         vector<bool> layout;
128         //@}
129         
130         //@Man: Special features
131         //@{
132         bool LyXParagraphIndent;
133         ///
134         bool NeedLyXFootnoteCode;
135         ///
136         bool NeedLyXMinipageIndent;
137         ///
138         typedef set<Language const *> LanguageList;
139         ///
140         LanguageList UsedLanguages;
141         //@}
142 };
143
144 #endif