]> git.lyx.org Git - lyx.git/blob - src/LaTeXFeatures.h
fix "make dist" target
[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 #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         ///
98         bool lyx;
99         ///
100         bool lyxline;
101         /// \noun
102         bool noun;
103         /// \lyxarrow
104         bool lyxarrow;
105
106         ///
107         bool quotesinglbase;
108         ///
109         bool quotedblbase;
110         ///
111         bool guilsinglleft;
112         ///
113         bool guilsinglright;
114         ///
115         bool guillemotleft;
116         ///
117         bool guillemotright;
118
119         ///
120         bool amsstyle;
121         ///
122         bool boldsymbol;
123         ///
124         bool binom;
125         
126         std::vector<bool> layout;
127
128         ///
129         bool LyXParagraphIndent;
130         ///
131         bool NeedLyXFootnoteCode;
132         ///
133         bool NeedLyXMinipageIndent;
134         ///
135         typedef std::set<Language const *> LanguageList;
136         ///
137         LanguageList UsedLanguages;
138         ///
139         typedef std::set<string> UsedFloats;
140         ///
141         UsedFloats usedFloats;
142         ///
143         typedef std::map<string , string> FileMap;
144         ///
145         FileMap IncludedFiles;
146         ///
147         BufferParams const & bufferParams() const;
148 private:
149         ///
150         BufferParams const & params;
151 };
152
153 #endif