]> git.lyx.org Git - features.git/commitdiff
* src/Spacing.cpp (writeBeginEnv, writeEndEnv): add a bool parameter
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Mon, 14 Jan 2008 14:53:29 +0000 (14:53 +0000)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Mon, 14 Jan 2008 14:53:29 +0000 (14:53 +0000)
directing to use memoir's capitalized latex macros.
* src/LaTeXFeatures.cpp (getPackages): act on feature "SetSpace".
* src/output_latex.cpp (TeXOnePar): ditto

* lib/layouts/memoir.layout: provide feature SetSpace, indicating that
memoir provides the setspace functionality, but with a different syntax.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22551 a592a061-630c-0410-9148-cb99ea01b6c8

lib/layouts/memoir.layout
src/LaTeXFeatures.cpp
src/Spacing.cpp
src/Spacing.h
src/output_latex.cpp

index d75d00a5aae943afff6af7829641cbdacc54988e..7702fcbbb2113b82806d65deac29cd4710079ff8 100644 (file)
@@ -15,6 +15,9 @@ DefaultStyle       Standard
 PageStyle          Headings
 Provides makeidx   1
 Provides framed    1
+# Memoir has support for line spacing, but uses different names from
+# what setspace.sty does.  
+Provides SetSpace  1
 
 
 ClassOptions
index b383f0fb10f3b219795aa68366d9cab1f9200813..8340940ef9be365760302e0eb7ca4ebd3048dcb8 100644 (file)
@@ -642,11 +642,13 @@ string const LaTeXFeatures::getPackages() const
        }
 
        // setspace.sty
-       if ((params_.spacing().getSpace() != Spacing::Single
-            && !params_.spacing().isDefault())
-           || isRequired("setspace")) {
-               packages << "\\usepackage{setspace}\n";
+       if ((isRequired("setspace") 
+            || ((params_.spacing().getSpace() != Spacing::Single
+                 && !params_.spacing().isDefault())))
+           && !tclass.provides("SetSpace")) {
+                   packages << "\\usepackage{setspace}\n";
        }
+       bool const upcase = tclass.provides("SetSpace");
        switch (params_.spacing().getSpace()) {
        case Spacing::Default:
        case Spacing::Single:
@@ -654,13 +656,13 @@ string const LaTeXFeatures::getPackages() const
                //packages += "\\singlespacing\n";
                break;
        case Spacing::Onehalf:
-               packages << "\\onehalfspacing\n";
+               packages << (upcase ? "\\OnehalfSpacing\n" : "\\onehalfspacing\n");
                break;
        case Spacing::Double:
-               packages << "\\doublespacing\n";
+               packages << (upcase ? "\\DoubleSpacing\n" : "\\doublespacing\n");
                break;
        case Spacing::Other:
-               packages << "\\setstretch{"
+               packages << (upcase ? "\\setSingleSpace{" : "\\setstretch{")
                         << params_.spacing().getValue() << "}\n";
                break;
        }
index 9589cff1cd75f02bb180b9bede746a3d071728d4..1f226cae41dfb8e696dc090d7607cbb42eb3b433 100644 (file)
@@ -89,20 +89,24 @@ void Spacing::writeFile(ostream & os, bool para) const
 }
 
 
-string const Spacing::writeEnvirBegin() const
+string const Spacing::writeEnvirBegin(bool useSetSpace) const
 {
        switch (space) {
        case Default: break; // do nothing
        case Single:
-               return "\\begin{singlespace}";
+               return (useSetSpace ? "\\begin{SingleSpace}"
+                       : "\\begin{singlespace}");
        case Onehalf:
-               return "\\begin{onehalfspace}";
+               return (useSetSpace ? "\\begin{OnehalfSpace}"
+                       : "\\begin{onehalfspace}");
        case Double:
-               return "\\begin{doublespace}";
+               return (useSetSpace ? "\\begin{DoubleSpace}" 
+                       : "\\begin{doublespace}");
        case Other:
        {
                ostringstream ost;
-               ost << "\\begin{spacing}{"
+               ost << (useSetSpace ? "\\begin{Spacing}{"
+                       : "\\begin{spacing}{" )
                    << getValueAsString() << '}';
                return ost.str();
        }
@@ -111,18 +115,21 @@ string const Spacing::writeEnvirBegin() const
 }
 
 
-string const Spacing::writeEnvirEnd() const
+string const Spacing::writeEnvirEnd(bool useSetSpace) const
 {
        switch (space) {
        case Default: break; // do nothing
        case Single:
-               return "\\end{singlespace}";
+               return (useSetSpace ? "\\end{SingleSpace}"
+                       : "\\end{singlespace}");
        case Onehalf:
-               return "\\end{onehalfspace}";
+               return (useSetSpace ? "\\end{OnehalfSpace}"
+                       : "\\end{onehalfspace}");
        case Double:
-               return "\\end{doublespace}";
+               return (useSetSpace ? "\\end{DoubleSpace}" 
+                       : "\\end{doublespace}");
        case Other:
-               return "\\end{spacing}";
+               return (useSetSpace ? "\\end{Spacing}" : "\\end{spacing}") ;
        }
        return string();
 }
index 7761bbf9aa7c29027473ed845e118303407ba3a0..689c79355aec8f5252c8550714a6dfe2c088de38 100644 (file)
@@ -58,10 +58,12 @@ public:
        void set(Spacing::Space sp, std::string const & val);
        ///
        void writeFile(std::ostream &, bool para = false) const;
-       ///
-       std::string const writeEnvirBegin() const;
-       ///
-       std::string const writeEnvirEnd() const;
+       /// useSetSpace is true when using the variant supported by
+       /// the memoir class.
+       std::string const writeEnvirBegin(bool useSetSpace) const;
+       /// useSetSpace is true when using the variant supported by
+       /// the memoir class.
+       std::string const writeEnvirEnd(bool useSetSpace) const;
 
 private:
        ///
index 069ad92565efa65bd5c56a8f69d94dd68d382082..94338898d9097521375dfce93acfe5875b3aa2cc 100644 (file)
@@ -491,6 +491,7 @@ TeXOnePar(Buffer const & buf,
 
        // In an inset with unlimited length (all in one row),
        // don't allow any special options in the paragraph
+       bool const useSetSpace = bparams.getTextClass().provides("SetSpace");
        if (!pit->forceDefaultParagraphs()) {
                if (pit->params().startOfAppendix()) {
                        os << "\\appendix\n";
@@ -501,7 +502,7 @@ TeXOnePar(Buffer const & buf,
                        && (pit == paragraphs.begin()
                            || !boost::prior(pit)->hasSameLayout(*pit)))
                {
-                       os << from_ascii(pit->params().spacing().writeEnvirBegin())
+                       os << from_ascii(pit->params().spacing().writeEnvirBegin(useSetSpace))
                            << '\n';
                        texrow.newline();
                }
@@ -611,7 +612,7 @@ TeXOnePar(Buffer const & buf,
                                os << '\n';
                                texrow.newline();
                        }
-                       os << from_ascii(pit->params().spacing().writeEnvirEnd());
+                       os << from_ascii(pit->params().spacing().writeEnvirEnd(useSetSpace));
                        pending_newline = true;
                }
        }