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