#include "FuncStatus.h"
#include "Lexer.h"
#include "MetricsInfo.h"
-#include "OutputParams.h"
-#include "output_xhtml.h"
+#include "xml.h"
+#include "texstream.h"
#include "Text.h"
#include "support/debug.h"
int const ADD_TO_VSPACE_WIDTH = 5;
-} // namespace anon
+} // namespace
InsetVSpace::InsetVSpace(VSpace const & space)
- : Inset(0), space_(space)
+ : Inset(nullptr), space_(space)
{}
: "vspace 1" + string(stringFromUnit(Length::defaultUnit()));
InsetVSpace::string2params(arg, vspace);
status.setOnOff(vspace == space_);
- }
+ }
status.setEnabled(true);
return true;
-
+
default:
return Inset::getStatus(cur, cmd, status);
}
dim.asc = height / 2 + (a - d) / 2; // align cursor with the
dim.des = height - dim.asc; // label text
dim.wid = ADD_TO_VSPACE_WIDTH + 2 * vspace_arrow_size + 5 + w;
- // Cache the inset dimension.
- setDimCache(mi, dim);
}
}
-void InsetVSpace::latex(otexstream & os, OutputParams const &) const
+void InsetVSpace::latex(otexstream & os, OutputParams const & rp) const
{
- os << from_ascii(space_.asLatexCommand(buffer().params())) << '\n';
+ os << from_ascii(space_.asLatexCommand(buffer().params())) << breakln;
+ if (rp.need_noindent) {
+ // If the paragraph starts with a vspace and has more than that
+ // content, the \\noindent needs to come after that
+ // (as \\noindent leaves vmode).
+ os << "\\noindent" << termcmd;
+ }
}
}
-int InsetVSpace::docbook(odocstream & os, OutputParams const &) const
+void InsetVSpace::docbook(XMLStream & xs, OutputParams const &) const
{
- os << '\n';
- return 1;
+ xs << xml::CR();
}
-docstring InsetVSpace::xhtml(XHTMLStream & os, OutputParams const &) const
+docstring InsetVSpace::xhtml(XMLStream & os, OutputParams const &) const
{
string const len = space_.asHTMLLength();
string const attr = "style='height:" + (len.empty() ? "1em" : len) + "'";
- os << html::StartTag("div", attr, true) << html::EndTag("div");
+ os << xml::StartTag("div", attr, true) << xml::EndTag("div");
return docstring();
}