X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Foutput_docbook.C;h=2778dde86e67a77fc57fe57bb959ead634675c51;hb=e5a46922e916a06ad1b958d5895cc3cfb4f13d2c;hp=970eada5ae83828fede7416a0065044b0f8415e5;hpb=6c300f72a217722652dc27db9108e1050028979c;p=lyx.git diff --git a/src/output_docbook.C b/src/output_docbook.C index 970eada5ae..2778dde86e 100644 --- a/src/output_docbook.C +++ b/src/output_docbook.C @@ -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()); }