X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fbufferparams.h;h=c05af76d54b70525635be5d6e8db8ef9bb0404d6;hb=e5a46922e916a06ad1b958d5895cc3cfb4f13d2c;hp=d95abdff3e67e4325b6eda56759d52e8be72c430;hpb=fb70c52b05182d861bd04e7711012c1580414e75;p=lyx.git diff --git a/src/bufferparams.h b/src/bufferparams.h index d95abdff3e..c05af76d54 100644 --- a/src/bufferparams.h +++ b/src/bufferparams.h @@ -26,9 +26,12 @@ #include +namespace lyx { + class AuthorList; class BranchList; class Bullet; +class Encoding; class LyXLex; class LatexFeatures; class Spacing; @@ -37,7 +40,6 @@ class VSpace; class Language; -namespace lyx { namespace biblio { enum CiteEngine { @@ -55,7 +57,6 @@ public: }; } // namespace biblio -} // namespace lyx /** Buffer parameters. @@ -86,10 +87,7 @@ public: * the BufferParams and a LyXRC variable). * This returned value can then be passed to the insets... */ - bool writeLaTeX(std::ostream &, LaTeXFeatures &, TexRow &) const; - - /// - void setPaperStuff(); + bool writeLaTeX(odocstream &, LaTeXFeatures &, TexRow &) const; /// void useClassDefaults(); @@ -114,20 +112,19 @@ public: /// std::string fontsize; /// - lyx::textclass_type textclass; + textclass_type textclass; /// LyXTextClass const & getLyXTextClass() const; + /// returns the main font for the buffer (document) + LyXFont const getFont() const; + /* this are for the PaperLayout */ - /// the general papersize (papersize2 or paperpackage + /// the papersize PAPER_SIZE papersize; - /// the selected Geometry papersize - VMARGIN_PAPER_TYPE papersize2; - /// a special paperpackage .sty-file - PAPER_PACKAGES paperpackage; /// PAPER_ORIENTATION orientation; - /// + /// use custom margins bool use_geometry; /// std::string paperwidth; @@ -151,8 +148,22 @@ public: /* some LaTeX options */ /// The graphics driver std::string graphicsDriver; - /// - std::string fonts; + /// the rm font + std::string fontsRoman; + /// the sf font + std::string fontsSans; + /// the tt font + std::string fontsTypewriter; + /// the default family (rm, sf, tt) + std::string fontsDefaultFamily; + /// use expert Small Caps + bool fontsSC; + /// use Old Style Figures + bool fontsOSF; + /// the scale factor of the sf font + int fontsSansScale; + /// the scale factor of the tt font + int fontsTypewriterScale; /// Spacing & spacing(); Spacing const & spacing() const; @@ -165,8 +176,25 @@ public: /// BranchList: BranchList & branchlist(); BranchList const & branchlist() const; - /// + /** + * The input encoding for LaTeX. This can be one of + * - \c auto: find out the input encoding from the used languages + * - \c default: ditto + * - any encoding supported by the inputenc package + * The encoding of the LyX file is always utf8 and has nothing to + * do with this setting. + * The difference between \c auto and \c default is that \c auto also + * causes loading of the inputenc package, while \c default does not. + * \c default will not work unless the user takes additional measures + * (such as using special environments like the CJK environment from + * CJK.sty). + * \c default can be seen as an unspecified 8bit encoding, since LyX + * does not interpret it in any way apart from display on screen. + */ std::string inputenc; + /// The main encoding used by this buffer for LaTeX output. + /// Individual pieces of text can use different encodings. + Encoding const & encoding() const; /// std::string preamble; /// @@ -180,11 +208,11 @@ public: /// std::string pagestyle; /// \param index should lie in the range 0 <= \c index <= 3. - Bullet & temp_bullet(lyx::size_type index); - Bullet const & temp_bullet(lyx::size_type index) const; + Bullet & temp_bullet(size_type index); + Bullet const & temp_bullet(size_type index) const; /// \param index should lie in the range 0 <= \c index <= 3. - Bullet & user_defined_bullet(lyx::size_type index); - Bullet const & user_defined_bullet(lyx::size_type index) const; + Bullet & user_defined_bullet(size_type index); + Bullet const & user_defined_bullet(size_type index) const; /// void readPreamble(LyXLex &); /// @@ -196,27 +224,35 @@ public: /// void readBulletsLaTeX(LyXLex &); - /// use AMS package, not, or auto - enum AMS { - AMS_OFF, - AMS_AUTO, - AMS_ON + /// Whether to load a package such as amsmath or esint. + /// The enum values must not be changed (file format!) + enum Package { + /// Don't load the package. For experts only. + package_off = 0, + /// Load the package if needed (recommended) + package_auto = 1, + /// Always load the package (e.g. if the document contains + /// some ERT that needs the package) + package_on = 2 }; - AMS use_amsmath; + /// Whether and how to load amsmath + Package use_amsmath; + /// Whether and how to load esint + Package use_esint; /// - lyx::biblio::CiteEngine cite_engine; + biblio::CiteEngine cite_engine; /// bool use_bibtopic; /// revision tracking for this buffer ? - bool tracking_changes; - /** This param decides if change tracking marks should be output + bool trackChanges; + /** This param decides whether change tracking marks should be output * (using the dvipost package) or if the current "state" of the * document should be output instead. Since dvipost needs dvi * specials, it only works with dvi/ps output (the param will be - * ignored with other output flavors and disabled when dbipost is + * ignored with other output flavors and disabled when dvipost is * not installed). */ - bool output_changes; + bool outputChanges; /// Time ago we agreed that this was a buffer property [ale990407] std::string parentname; /// @@ -227,13 +263,20 @@ public: AuthorList const & authors() const; /// map of the file's author IDs to buffer author IDs - std::vector author_map; + std::vector author_map; /// std::string const dvips_options() const; /// std::string const paperSizeName() const; /// std::string const babelCall(std::string const & lang_opts) const; + /// set up the document fonts + std::string const loadFonts(std::string const & rm, + std::string const & sf, std::string const & tt, + bool const & sc, bool const & osf, + int const & sfscale, int const & ttscale) const; + /// path of the current buffer + std::string filepath; private: /** Use the Pimpl idiom to hide those member variables that would otherwise @@ -245,7 +288,9 @@ private: static Impl * clone(Impl const *); static void destroy(Impl *); }; - lyx::support::copied_ptr pimpl_; + support::copied_ptr pimpl_; }; +} // namespace lyx + #endif