X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLaTeXFeatures.h;h=7fa311a3e24a09dae53dca3ab387953655a23f52;hb=5d3718cad2a2ef6a4d6a495054ab0705ba27b6b5;hp=2a40539e5e881bbab85129dd635de9fe2818d7da;hpb=8ac09fc110330afe2dfeff72cf2bd6fdf734d82c;p=lyx.git diff --git a/src/LaTeXFeatures.h b/src/LaTeXFeatures.h index 2a40539e5e..7fa311a3e2 100644 --- a/src/LaTeXFeatures.h +++ b/src/LaTeXFeatures.h @@ -1,136 +1,96 @@ // -*- C++ -*- /* This file is part of -* ====================================================== -* +* ====================================================== +* * LyX, The Document Processor -* +* * Copyright 1995 Matthias Ettrich -* Copyright 1995-2000 the LyX Team. +* Copyright 1995-2001 the LyX Team. * * ====================================================== */ #ifndef LATEXFEATURES_H #define LATEXFEATURES_H +#include "support/types.h" -#ifdef __GNUG__ -#pragma interface -#endif +#include "LString.h" -#include #include +#include +#include -#include "LString.h" -#include "layout.h" - -class BufferParams; +class BufferParams; struct Language; -/** The packages and commands that a buffer needs. This struct - contains an entry for each of the latex packages and - commands that a buffer might need. This struct is supposed to be - extended as the need arises. Remember to update the validate function - in buffer.C and paragraph.C when you do so. +/** The packages and commands that a buffer needs. This class + contains a list. Each of the LaTeX packages that a buffer needs + should be added with void require(string const & name). + + i.e require("amssymb") + + To add support you should only need to require() the package name as + packages which don't have special requirements are handled automatically. + If your new package does need special consideration you'll need to alter + string const getPackages() const; + Remember to update the validate function in buffer.C and paragraph.C + when you do so. */ -struct LaTeXFeatures { +class LaTeXFeatures { +public: /// - LaTeXFeatures(BufferParams const &, LyXTextClass::size_type n) ; - /// The packaes needed by the document + LaTeXFeatures(BufferParams const &); + /// The packages needed by the document string const getPackages() const; /// The macros definitions needed by the document string const getMacros() const; + /// + string const getBabelOptions() const; /// The definitions needed by the document's textclass string const getTClassPreamble() const; - /// + /// The sgml definitions needed by the document (dobook/linuxdoc) + string const getLyXSGMLEntities() const; + /// The SGML Required to include the files added with includeFile(); string const getIncludedFiles(string const & fname) const; - /// - void getFloatDefinitions(ostream & os) const; - - /// + /// Include a file for use with the SGML entities + void includeFile(string const & key, string const & name); + /// The float definitions. + void getFloatDefinitions(std::ostream & os) const; + /// Print requirements to lyxerr void showStruct() const; - + /// + void addExternalPreamble(string const &); /// Provide a string name-space to the requirements void require(string const & name); - - /// Static preamble bits from the external material insets - string externalPreambles; - - /// - bool array; - /// - bool color; // color.sty - /// - bool graphicx; // graphicx.sty - /// - bool graphics; // graphics.sty - /// - bool setspace; // setspace.sty - /// - bool makeidx; // makeind.sty + /// Is the package required? + bool isRequired(string const & name) const; /// - bool verbatim; // verbatim.sty + void useFloat(string const & name); /// - bool longtable; // longtable.sty + void useLanguage(Language const *); /// - bool algorithm; // algorithm.sty + bool hasLanguages(); /// - bool rotating; // rotating.sty + string getLanguages() const; /// - bool amssymb; // amssymb.sty + std::set getEncodingSet(string const & doc_encoding); /// - bool latexsym; // latexsym.sty + void useLayout(string const & lyt); /// - bool pifont; // pifont.sty - /// - bool subfigure; // subfigure.sty - /// - bool floatflt; // floatflt.sty - /// - bool url; // url.sty - /// - bool varioref; // varioref.sty - /// - bool prettyref; // prettyref.sty + BufferParams const & bufferParams() const; /// - bool chess; // chess.sty - /// - bool lyx; - /// - bool lyxline; - /// \noun - bool noun; - /// \lyxarrow - bool lyxarrow; +private: + string externalPreambles; - /// - bool quotesinglbase; - /// - bool quotedblbase; - /// - bool guilsinglleft; - /// - bool guilsinglright; - /// - bool guillemotleft; - /// - bool guillemotright; + std::list usedLayouts; - /// - bool amsstyle; - /// - bool boldsymbol; - /// - bool binom; - - std::vector layout; + /// Static preamble bits from the external material insets + + typedef std::list FeaturesList; /// - bool LyXParagraphIndent; - /// - bool NeedLyXFootnoteCode; - /// - bool NeedLyXMinipageIndent; + FeaturesList features; /// typedef std::set LanguageList; /// @@ -144,8 +104,6 @@ struct LaTeXFeatures { /// FileMap IncludedFiles; /// - BufferParams const & bufferParams() const; -private: /// BufferParams const & params; };