[LyX/master] DocBook: implement Kluwer.

Thibaut Cuvelier tcuvelier at lyx.org
Thu Nov 26 05:26:09 UTC 2020


commit ed6fbdd2497ba5248c0ccdddb3ff69a24be32097
Author: Thibaut Cuvelier <tcuvelier at lyx.org>
Date:   Thu Nov 26 06:40:39 2020 +0100

    DocBook: implement Kluwer.
    
    Includes an assertion fix that only occurred with this example.
---
 development/autotests/invertedTests |    2 +
 lib/layouts/kluwer.layout           |   37 +++++++++++++++++++++++++++++++++++
 lib/layouts/svcommon.inc            |    2 +
 src/output_docbook.cpp              |    6 +++-
 4 files changed, 45 insertions(+), 2 deletions(-)

diff --git a/development/autotests/invertedTests b/development/autotests/invertedTests
index b66a21f..d562ba5 100644
--- a/development/autotests/invertedTests
+++ b/development/autotests/invertedTests
@@ -499,6 +499,8 @@ export/templates/Articles/R_Journal_docbook5
 export/templates/Articles/REVTeX_%28V._4%29_docbook5
 # - Forbidden inlines, equation in formatting, broken references, float in paragraphs, videos.
 export/templates/Articles/REVTeX_%28V._4.1%29_docbook5
+# - Address at the end of the document (only allowed in abstract), misplaced acknowledgements.
+export/templates/Articles/Kluwer_docbook5
 
 Sublabel: docbook poster
 # Posters cannot be properly exported, the LyX documents are too far from
diff --git a/lib/layouts/kluwer.layout b/lib/layouts/kluwer.layout
index 7af1b83..3619add 100644
--- a/lib/layouts/kluwer.layout
+++ b/lib/layouts/kluwer.layout
@@ -41,6 +41,7 @@ Style Standard
 	Align                 Block
 	AlignPossible         Block, Left, Right, Center
 	LabelType             No_Label
+	DocBookTag            para
 End
 
 
@@ -126,6 +127,9 @@ Style Title
 	  Size                Largest
 	EndFont
 	HTMLTitle             true
+	DocBookTag            title
+	DocBookTagType        paragraph
+	DocBookInInfo         maybe
 End
 
 
@@ -146,6 +150,9 @@ Style Subtitle
 	  Size                Larger
 	  Shape               Italic
 	EndFont
+	DocBookTag            subtitle
+	DocBookTagType        paragraph
+	DocBookInInfo         maybe
 End
 
 
@@ -162,6 +169,9 @@ Style Date
 	Font
 	  Size                Large
 	EndFont
+	DocBookTag            date
+	DocBookTagType        paragraph
+	DocBookInInfo         always
 End
 
 
@@ -180,6 +190,11 @@ Style Author
 	  Size                Normal
 	  Series              Bold
 	EndFont
+	DocBookTag            personname
+	DocBookTagType        paragraph
+	DocBookWrapperTag     author
+	DocBookWrapperTagType inline
+	DocBookInInfo         always
 End
 
 
@@ -196,6 +211,12 @@ Style Address
 	  Size                normal
 	  Shape               Italic
 	EndFont
+	DocBookTag            address
+	DocBookTagType        block
+	DocBookWrapperTag     author
+	DocBookWrapperTagType inline
+	DocBookWrapperMergeWithPrevious  true
+	DocBookInInfo         always
 End
 
 
@@ -214,6 +235,9 @@ Style AddressForOffprints
 	  Shape               Italic
 	  Color               Red
 	EndFont
+	DocBookTag            address
+	DocBookAttr           role='offprints'
+	DocBookTagType        block
 End
 
 
@@ -236,6 +260,9 @@ Style RunningTitle
 	  Shape               Italic
 	  Color               Red
 	EndFont
+	DocBookTag            titleabbrev
+	DocBookTagType        paragraph
+	DocBookInInfo         maybe
 End
 
 
@@ -257,6 +284,10 @@ Style RunningAuthor
 	  Shape               Italic
 	  Color               Red
 	EndFont
+	DocBookTag            authorinitials
+	DocBookAttr           role='running-author'
+	DocBookTagType        paragraph
+	DocBookInInfo         always
 End
 
 
@@ -299,6 +330,10 @@ Style Keywords
 	  Series              Bold
 	  Size                Small
 	EndFont
+	DocBookTag            keyword
+	DocBookTagType        paragraph
+	DocBookWrapperTag     keywordset
+	DocBookInInfo         always
 End
 
 
@@ -320,6 +355,8 @@ Style Acknowledgements
 	  Series              Bold
 	  Size                Large
 	EndFont
+	DocBookTag            para
+	DocBookWrapperTag     acknowledgements
 End
 
 
diff --git a/lib/layouts/svcommon.inc b/lib/layouts/svcommon.inc
index 7612d77..f646a06 100644
--- a/lib/layouts/svcommon.inc
+++ b/lib/layouts/svcommon.inc
@@ -363,6 +363,8 @@ Style Subtitle
 	  Size		Large
 	EndFont
 	DocBookTag            subtitle
+	DocBookTagType        paragraph
+	DocBookInInfo         maybe
 End
 
 Style Author
diff --git a/src/output_docbook.cpp b/src/output_docbook.cpp
index 73e5a46..c033239 100644
--- a/src/output_docbook.cpp
+++ b/src/output_docbook.cpp
@@ -183,7 +183,8 @@ void openParTag(XMLStream & xs, const Paragraph * par, const Paragraph * prevpar
 	// layout, same wrapper tag).
 	Layout const & lay = par->layout();
 	bool openWrapper = lay.docbookwrappertag() != "NONE" && !runparams.docbook_ignore_wrapper;
-	if (prevpar != nullptr) {
+
+	if (prevpar != nullptr && !runparams.docbook_ignore_wrapper) {
 		Layout const & prevlay = prevpar->layout();
 		if (prevlay.docbookwrappertag() != "NONE") {
 			if (prevlay.docbookwrappertag() == lay.docbookwrappertag() &&
@@ -223,7 +224,8 @@ void closeParTag(XMLStream & xs, Paragraph const * par, Paragraph const * nextpa
 	// See comment in openParTag.
 	Layout const & lay = par->layout();
 	bool closeWrapper = lay.docbookwrappertag() != "NONE" && !runparams.docbook_ignore_wrapper;
-	if (nextpar != nullptr) {
+
+	if (nextpar != nullptr && !runparams.docbook_ignore_wrapper) {
 		Layout const & nextlay = nextpar->layout();
 		if (nextlay.docbookwrappertag() != "NONE") {
 			if (nextlay.docbookwrappertag() == lay.docbookwrappertag() &&


More information about the lyx-cvs mailing list