X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FSpacing.cpp;h=3290a6013c3b4c9c1cc90d478973e90e24385dc9;hb=44cdffa39e9160bde46d824f1915f9ef3084b53e;hp=1f226cae41dfb8e696dc090d7607cbb42eb3b433;hpb=3d8828fa1420ca155df167dd9b61d9fe3aabcd37;p=lyx.git diff --git a/src/Spacing.cpp b/src/Spacing.cpp index 1f226cae41..3290a6013c 100644 --- a/src/Spacing.cpp +++ b/src/Spacing.cpp @@ -3,7 +3,7 @@ * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * - * \author Lars Gullik Bjønnes + * \author Lars Gullik Bjønnes * \author Jean-Marc Lasgouttes * * Full author contact details are available in file CREDITS. @@ -15,8 +15,7 @@ #include "support/lstrings.h" #include "support/convert.h" -#include -#include +#include using namespace std; @@ -89,50 +88,59 @@ void Spacing::writeFile(ostream & os, bool para) const } +namespace { + +string envName(Spacing::Space space, bool useSetSpace) +{ + static char const * const env_names[] + = { "SingleSpace", "OnehalfSpace", "DoubleSpace", "Spacing", ""}; + string const name = env_names[space]; + + return useSetSpace ? name : support::ascii_lowercase(name); +} + +} + string const Spacing::writeEnvirBegin(bool useSetSpace) const { - switch (space) { - case Default: break; // do nothing - case Single: - return (useSetSpace ? "\\begin{SingleSpace}" - : "\\begin{singlespace}"); - case Onehalf: - return (useSetSpace ? "\\begin{OnehalfSpace}" - : "\\begin{onehalfspace}"); - case Double: - return (useSetSpace ? "\\begin{DoubleSpace}" - : "\\begin{doublespace}"); - case Other: - { - ostringstream ost; - ost << (useSetSpace ? "\\begin{Spacing}{" - : "\\begin{spacing}{" ) - << getValueAsString() << '}'; - return ost.str(); - } - } - return string(); + string const name = envName(space, useSetSpace); + if (space == Other) + return "\\begin{" + name + "}{" + getValueAsString() + '}'; + else + return name.empty() ? string() : "\\begin{" + name + '}'; } string const Spacing::writeEnvirEnd(bool useSetSpace) const { + string const name = envName(space, useSetSpace); + return name.empty() ? string() : "\\end{" + name + '}'; +} + + +string const Spacing::writePreamble(bool useSetSpace) const +{ + string preamble; switch (space) { - case Default: break; // do nothing + case Default: case Single: - return (useSetSpace ? "\\end{SingleSpace}" - : "\\end{singlespace}"); + // we dont use setspace.sty so dont print anything + //return "\\singlespacing\n"; + break; case Onehalf: - return (useSetSpace ? "\\end{OnehalfSpace}" - : "\\end{onehalfspace}"); + preamble = useSetSpace ? "\\OnehalfSpacing\n" + : "\\onehalfspacing\n"; + break; case Double: - return (useSetSpace ? "\\end{DoubleSpace}" - : "\\end{doublespace}"); + preamble = useSetSpace ? "\\DoubleSpacing\n" + : "\\doublespacing\n"; + break; case Other: - return (useSetSpace ? "\\end{Spacing}" : "\\end{spacing}") ; + preamble = (useSetSpace ? "\\setSpacing{" : "\\setstretch{") + + getValueAsString() + "}\n"; + break; } - return string(); + return preamble; } - } // namespace lyx