]> git.lyx.org Git - lyx.git/blob - src/LaTeXFeatures.h
white-space changes, removed definitions.h several enum changes because of this,...
[lyx.git] / src / LaTeXFeatures.h
1 // -*- C++ -*-
2 /* This file is part of
3 * ====================================================== 
4
5 *           LyX, The Document Processor
6 *        
7 *           Copyright (C) 1995 Matthias Ettrich
8 *           Copyright (C) 1995-1999 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 using std::vector;
22
23 #include "LString.h"
24
25 class BufferParams; 
26 class LyXTextClass;
27
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(int n) ;
37         /// The packaes needed by the document
38         string getPackages(BufferParams const &params);
39         /// The macros definitions needed by the document
40         string getMacros(BufferParams const &params);
41         /// The definitions needed by the document's textclass
42         string getTClassPreamble(BufferParams const &params);
43
44         ///
45         void showStruct(BufferParams &params);
46
47         //@Man: Packages
48         //@{
49         ///
50         bool color;     // color.sty
51         ///
52         bool graphics;  // graphics.sty
53         ///
54         bool setspace;  // setspace.sty
55         ///
56         bool makeidx;   // makeind.sty
57         ///
58         bool verbatim;  // verbatim.sty
59         ///
60         bool longtable; // longtable.sty
61         ///
62         bool algorithm; // algorithm.sty
63         ///
64         bool rotating;  // rotating.sty
65         ///
66         bool amssymb;   // amssymb.sty
67         ///
68         bool latexsym;   // latexsym.sty
69         ///
70         bool pifont;    // pifont.sty
71         ///
72         bool subfigure; // subfigure.sty
73         ///
74         bool floatflt;  // floatflt.sty
75         ///
76         bool url;       // url.sty
77         //@}
78
79         
80         //@Man: Commands
81         //@{
82         ///
83         bool lyx;
84         ///
85         bool lyxline;
86         /// \noun
87         bool noun;
88         /// \lyxarrow
89         bool lyxarrow;
90         //@}
91         
92         //@Man: Quotes
93         //@{
94         ///
95         bool quotesinglbase;
96         ///
97         bool quotedblbase;
98         ///
99         bool guilsinglleft;
100         ///
101         bool guilsinglright;
102         ///
103         bool guillemotleft;
104         ///
105         bool guillemotright;
106         //@}
107         
108         //@Man: Math mode
109         //@{
110         ///
111         bool amsstyle;
112         ///
113         bool boldsymbol;
114         ///
115         bool binom;
116         //@}
117         
118         //@Man: Layouts
119         //@{
120         vector<bool> layout;
121         //@}
122         
123         //@Man: Special features
124         //@{
125         bool LyXParagraphIndent;
126         ///
127         bool NeedLyXFootnoteCode;
128         ///
129         bool NeedLyXMinipageIndent;
130         //@}
131 };
132
133 #endif