]> git.lyx.org Git - lyx.git/blobdiff - src/output_xhtml.cpp
Routines for calculating numerical labels for BibTeX citations.
[lyx.git] / src / output_xhtml.cpp
index 1cddb7c9d97a00d1d7a8b8270c2c01097f955ab1..fdf8681b56b8964946bbf3da2b89bbb8f2b3d412 100644 (file)
@@ -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;
                        }
@@ -644,9 +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)))
-                       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...