]> git.lyx.org Git - lyx.git/blobdiff - src/output_docbook.C
* GuiView.C (updateTab): do not update early if current tab has
[lyx.git] / src / output_docbook.C
index 970eada5ae83828fede7416a0065044b0f8415e5..2778dde86e67a77fc57fe57bb959ead634675c51 100644 (file)
@@ -167,7 +167,13 @@ ParagraphList::const_iterator makeEnvironment(Buffer const & buf,
                                sgml::closeTag(os, bstyle->labeltag());
                        }
                        wrapper = defaultstyle->latexname();
-                       sgml::openTag(os, bstyle->itemtag());
+                       // If a sub list (embedded list) appears next with a
+                       // different depth, then there is no need to open
+                       // another tag at the current depth.
+                       if(par->params().depth() == pbegin->params().depth()) {
+                               sgml::openTag(os, bstyle->itemtag());
+                       }
+                       break;
                default:
                        break;
                }
@@ -204,7 +210,17 @@ ParagraphList::const_iterator makeEnvironment(Buffer const & buf,
                        }
                        break;
                case LATEX_ITEM_ENVIRONMENT:
-                       sgml::closeTag(os, bstyle->itemtag());
+                       // If a sub list (embedded list) appears next, then
+                       // there is no need to close the current tag.
+                       // par should have already been incremented to the next
+                       // element. So we can compare the depth of the next
+                       // element with pbegin.
+                       // We need to be careful, that we don't dereference par
+                       // when par == pend but at the same time that the
+                       // current tag is closed.
+                       if((par != pend && par->params().depth() == pbegin->params().depth()) || par == pend) {
+                               sgml::closeTag(os, bstyle->itemtag());
+                       }
                        if (!bstyle->labeltag().empty())
                                sgml::closeTag(os, bstyle->innertag());
                        break;
@@ -240,7 +256,8 @@ ParagraphList::const_iterator makeCommand(Buffer const & buf,
        // Label around sectioning number:
        if (!bstyle->labeltag().empty()) {
                sgml::openTag(os, bstyle->labeltag());
-               os << expandLabel(buf, bstyle, false);
+               // We don't care about appendix in DOCBOOK.
+               os << par->expandLabel(bstyle, buf.params(), false);
                sgml::closeTag(os, bstyle->labeltag());
        }