X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Foutput_xhtml.cpp;h=fdf8681b56b8964946bbf3da2b89bbb8f2b3d412;hb=2098f1d8c20d51e63e670bcdc9da8996068975bf;hp=3d11f25f89cbfef2608b5d02c35abea162e5f159;hpb=c5738e5af62822bf44dfb8d03c729aa569ecc9aa;p=lyx.git diff --git a/src/output_xhtml.cpp b/src/output_xhtml.cpp index 3d11f25f89..fdf8681b56 100644 --- a/src/output_xhtml.cpp +++ b/src/output_xhtml.cpp @@ -306,11 +306,12 @@ XHTMLStream & XHTMLStream::operator<<(CompTag const & tag) clearTagDeque(); // tabs? os_ << tag.asTag(); + cr(); return *this; } -bool XHTMLStream::isTagOpen(string const & stag) +bool XHTMLStream::isTagOpen(string const & stag) { TagStack::const_iterator sit = tag_stack_.begin(); TagStack::const_iterator const sen = tag_stack_.end(); @@ -350,7 +351,8 @@ XHTMLStream & XHTMLStream::operator<<(EndTag const & etag) if (dit->tag_ == etag.tag_) { // it was pending, so we just erase it writeError("Tried to close pending tag `" + etag.tag_ - + "' when other tags were pending. Tag discarded."); + + "' when other tags were pending. Last pending tag is `" + + pending_tags_.back().tag_ + "'. Tag discarded."); pending_tags_.erase(dit); return *this; } @@ -612,7 +614,8 @@ ParagraphList::const_iterator makeBibliography(Buffer const & buf, bool isNormalEnv(Layout const & lay) { - return lay.latextype == LATEX_ENVIRONMENT; + return lay.latextype == LATEX_ENVIRONMENT + || lay.latextype == LATEX_BIB_ENVIRONMENT; } @@ -643,10 +646,13 @@ ParagraphList::const_iterator makeEnvironmentHtml(Buffer const & buf, // FIXME There may be a bug here about user defined enumeration // types. If so, then we'll need to take the counter and add "i", // "ii", etc, as with enum. - if (!style.counter.empty() && - (par == pbegin || !isNormalEnv(style)) - && style.latextype == LATEX_LIST_ENVIRONMENT) - buf.params().documentClass().counters().step(style.counter); + Counters & cnts = buf.params().documentClass().counters(); + docstring const & cntr = style.counter; + if (!style.counter.empty() + && (par == pbegin || !isNormalEnv(style)) + && cnts.hasCounter(cntr) + ) + cnts.step(cntr); ParagraphList::const_iterator send; // this will be positive, if we want to skip the initial word // (if it's been taken for the label). @@ -665,7 +671,6 @@ ParagraphList::const_iterator makeEnvironmentHtml(Buffer const & buf, closeItemTag(xs, *lastlay); lastlay = 0; } - bool const labelfirst = style.htmllabelfirst(); if (isNormalEnv(style)) { // in this case, we print the label only for the first // paragraph (as in a theorem). @@ -681,12 +686,13 @@ ParagraphList::const_iterator makeEnvironmentHtml(Buffer const & buf, xs.cr(); } } else { // some kind of list + bool const labelfirst = style.htmllabelfirst(); if (!labelfirst) openItemTag(xs, style); if (style.labeltype == LABEL_MANUAL && style.htmllabeltag() != "NONE") { openLabelTag(xs, style); -// sep = par->firstWordLyXHTML(xs, runparams); + sep = par->firstWordLyXHTML(xs, runparams); closeLabelTag(xs, style); xs.cr(); } @@ -701,7 +707,7 @@ ParagraphList::const_iterator makeEnvironmentHtml(Buffer const & buf, openItemTag(xs, style); } par->simpleLyXHTMLOnePar(buf, xs, runparams, - text.outerFont(distance(begin, par)), sep); + text.outerFont(distance(begin, par)), false, sep); ++par; // We may not want to close the tag yet, in particular, // if we're not at the end...