X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLayout.cpp;h=fd4709e35659bf8927e4974b014f3efc588b5a14;hb=8b7584846c4e1a9c87a004fab479722fee7e3013;hp=06a6f64d456323f5d7842717331637b6d67aa6b7;hpb=36765b8e2109ad05c529076e6f91ede4ac57e293;p=lyx.git diff --git a/src/Layout.cpp b/src/Layout.cpp index 06a6f64d45..fd4709e356 100644 --- a/src/Layout.cpp +++ b/src/Layout.cpp @@ -13,10 +13,11 @@ #include #include "Layout.h" +#include "FontInfo.h" #include "Language.h" -#include "TextClass.h" #include "Lexer.h" -#include "FontInfo.h" +#include "output_xhtml.h" +#include "TextClass.h" #include "support/debug.h" #include "support/lassert.h" @@ -956,8 +957,13 @@ string const & Layout::htmlitemattr() const string const & Layout::htmllabeltag() const { - if (htmllabeltag_.empty()) - htmllabeltag_ = "span"; + if (htmllabeltag_.empty()) { + if (labeltype != LABEL_TOP_ENVIRONMENT && + labeltype != LABEL_CENTERED_TOP_ENVIRONMENT) + htmllabeltag_ = "span"; + else + htmllabeltag_ = "div"; + } return htmllabeltag_; } @@ -1004,9 +1010,9 @@ string Layout::defaultCSSClass() const namespace { - string makeMarginValue(double d) { + string makeMarginValue(char const * side, double d) { ostringstream os; - os << d << "ex"; + os << "margin-" << side << ": " << d << "ex;\n"; return os.str(); } } @@ -1021,17 +1027,37 @@ void Layout::makeDefaultCSS() const { // main font htmldefaultstyle_ = font.asCSS(); - // top and bottom margins + // bottom margins string tmp; if (topsep > 0) - tmp += "margin-top: " + makeMarginValue(topsep) + ";\n"; + tmp += makeMarginValue("top", topsep); if (bottomsep > 0) - tmp += "margin-bottom: " + makeMarginValue(bottomsep) + ";\n"; + tmp += makeMarginValue("bottom", bottomsep); + if (!leftmargin.empty()) { + // we can't really do what LyX does with the margin, so + // we'll just figure out how many characters it is + int const len = leftmargin.length(); + tmp += makeMarginValue("left", len); + } + if (!rightmargin.empty()) { + int const len = rightmargin.length(); + tmp += makeMarginValue("right", len); + } + if (!tmp.empty()) { if (!htmldefaultstyle_.empty()) htmldefaultstyle_ += from_ascii("\n"); htmldefaultstyle_ += from_ascii(tmp); } + +// tex2lyx does not see output_xhtml.cpp +#ifndef TEX2LYX + // alignment + string where = alignmentToCSS(align); + if (!where.empty()) { + htmldefaultstyle_ += from_ascii("text-align: " + where + ";\n"); + } +#endif // wrap up what we have, if anything if (!htmldefaultstyle_.empty()) @@ -1039,15 +1065,21 @@ void Layout::makeDefaultCSS() const { from_ascii(htmltag() + "." + defaultCSSClass() + " {\n") + htmldefaultstyle_ + from_ascii("\n}\n"); - if (labelfont == font || htmllabeltag() == "NONE") + if (labeltype == LABEL_NO_LABEL || htmllabeltag() == "NONE") return; + docstring labelCSS; + // label font - docstring const labelfontCSS = labelfont.asCSS(); - if (!labelfontCSS.empty()) + if (labelfont != font) + labelCSS = labelfont.asCSS() + from_ascii("\n"); + if (labeltype == LABEL_CENTERED_TOP_ENVIRONMENT) + labelCSS += from_ascii("text-align: center;\n"); + + if (!labelCSS.empty()) htmldefaultstyle_ += from_ascii(htmllabeltag() + "." + defaultCSSLabelClass() + " {\n") + - labelfontCSS + from_ascii("\n}\n"); + labelCSS + from_ascii("\n}\n"); }