3 * This file is part of LyX, the document processor.
4 * Licence details can be found in the file COPYING.
6 * \author Lars Gullik Bjønnes
7 * \author Jean-Marc Lasgouttes
9 * Full author contact details are available in file CREDITS.
15 #include "support/lstrings.h"
16 #include "support/convert.h"
26 string const Spacing::spacing_string[]
27 = {"single", "onehalf", "double", "other"};
30 string const Spacing::getValueAsString() const
33 case Default: // nothing special should happen with this...
34 case Single: return "1.0";
35 case Onehalf: return "1.25";
36 case Double: return "1.667";
37 case Other: return value;
43 double Spacing::getValue() const
45 return convert<double>(getValueAsString());
49 void Spacing::set(Spacing::Space sp, double val)
51 set(sp, convert<string>(val));
55 void Spacing::set(Spacing::Space sp, string const & val)
59 switch (int(convert<double>(val) * 1000 + 0.5)) {
77 void Spacing::writeFile(ostream & os, bool para) const
79 if (space == Default) return;
81 string cmd = para ? "\\paragraph_spacing " : "\\spacing ";
83 if (getSpace() == Spacing::Other) {
84 os << cmd << spacing_string[getSpace()]
85 << ' ' << getValueAsString() << "\n";
87 os << cmd << spacing_string[getSpace()] << "\n";
92 string const Spacing::writeEnvirBegin(bool useSetSpace) const
95 case Default: break; // do nothing
97 return (useSetSpace ? "\\begin{SingleSpace}"
98 : "\\begin{singlespace}");
100 return (useSetSpace ? "\\begin{OnehalfSpace}"
101 : "\\begin{onehalfspace}");
103 return (useSetSpace ? "\\begin{DoubleSpace}"
104 : "\\begin{doublespace}");
108 ost << (useSetSpace ? "\\begin{Spacing}{"
109 : "\\begin{spacing}{" )
110 << getValueAsString() << '}';
118 string const Spacing::writeEnvirEnd(bool useSetSpace) const
121 case Default: break; // do nothing
123 return (useSetSpace ? "\\end{SingleSpace}"
124 : "\\end{singlespace}");
126 return (useSetSpace ? "\\end{OnehalfSpace}"
127 : "\\end{onehalfspace}");
129 return (useSetSpace ? "\\end{DoubleSpace}"
130 : "\\end{doublespace}");
132 return (useSetSpace ? "\\end{Spacing}" : "\\end{spacing}") ;