diff --git a/CMakeLists.txt b/CMakeLists.txt
index d3aa1928fb..90853559a8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,6 +6,11 @@
cmake_minimum_required(VERSION 3.1.0)
+set(CMAKE_CXX_STANDARD 20)
+set(GNUWIN32_DIR D:/LyX/lyx-unstable/lyx-windows-deps-msvc2017)
+set(LYX_USE_QT "QT5")
+set(LYX_REQUIRE_SPELLCHECK true)
+
set(LYX_PROJECT LyX)
# Instruct cmake to not use gnu extensions,
diff --git a/autotests/export/docbook/basic.xml b/autotests/export/docbook/basic.xml
index 430611e490..a4dc276551 100644
--- a/autotests/export/docbook/basic.xml
+++ b/autotests/export/docbook/basic.xml
@@ -164,7 +164,7 @@ I am a second line of code.
-
+
Table that has no caption 1
@@ -182,7 +182,7 @@ I am a second line of code.
Col 3, row 2
-
+
Then, one figure:
diff --git a/lib/layouts/stdfloats.inc b/lib/layouts/stdfloats.inc
index cd6614a8da..044fcb2c5c 100644
--- a/lib/layouts/stdfloats.inc
+++ b/lib/layouts/stdfloats.inc
@@ -20,7 +20,6 @@ Float
UsesFloatPkg false
ListCommand listoftables
RefPrefix tab
- DocBookTag table
End
@@ -36,7 +35,6 @@ Float
UsesFloatPkg false
ListCommand listoffigures
RefPrefix fig
- DocBookTag figure
End
@@ -51,7 +49,6 @@ Float
IsPredefined false
UsesFloatPkg true
RefPrefix alg
- DocBookTag figure # TODO: No DocBook tag really corresponds...
End
diff --git a/src/Floating.cpp b/src/Floating.cpp
index d44afc3a73..19fbf5f49b 100644
--- a/src/Floating.cpp
+++ b/src/Floating.cpp
@@ -40,8 +40,7 @@ Floating::Floating(string const & type, string const & placement,
usesfloatpkg_(usesfloat), ispredefined_(ispredefined),
allowswide_(allowswide), allowssideways_(allowssideways),
html_tag_(htmlTag), html_attrib_(htmlAttrib), html_style_(htmlStyle),
- docbook_tag_(docbookTag), docbook_attr_(docbookAttr),
- docbook_tag_type_(docbookTagType)
+ docbook_attr_(docbookAttr), docbook_tag_type_(docbookTagType)
{}
@@ -89,21 +88,17 @@ string const & Floating::docbookAttr() const
}
-string const & Floating::docbookTag(bool hasTitle) const
+string Floating::docbookTag(bool hasTitle) const
{
- if (docbook_tag_.empty()) {
- docbook_tag_ = "";
- if (floattype_ == "figure") {
- docbook_tag_ = hasTitle ? "figure" : "informalfigure";
- } else if (floattype_ == "table") {
- docbook_tag_ = hasTitle ? "table" : "informaltable";
- } else if (floattype_ == "algorithm") {
- // TODO: no good translation for now! Figures are the closest match, as they can contain text.
- // Solvable as soon as https://github.com/docbook/docbook/issues/157 has a definitive answer.
- docbook_tag_ = "figure";
- }
+ if (floattype_ == "figure") {
+ return hasTitle ? "figure" : "informalfigure";
+ } else if (floattype_ == "table") {
+ return hasTitle ? "table" : "informaltable";
+ } else if (floattype_ == "algorithm") {
+ // TODO: no good translation for now! Figures are the closest match, as they can contain text.
+ // Solvable as soon as https://github.com/docbook/docbook/issues/157 has a definitive answer.
+ return "figure";
}
- return docbook_tag_;
}
diff --git a/src/Floating.h b/src/Floating.h
index 5cfea080e6..977958bc15 100644
--- a/src/Floating.h
+++ b/src/Floating.h
@@ -81,7 +81,7 @@ public:
/// tag type, defaults to "div"
std::string const & htmlTag() const;
///
- std::string const & docbookTag(bool hasTitle = false) const;
+ std::string docbookTag(bool hasTitle = false) const;
///
std::string const & docbookAttr() const;
///
@@ -129,8 +129,8 @@ private:
mutable std::string defaultcssclass_;
///
docstring html_style_;
- /// DocBook tag
- mutable std::string docbook_tag_;
+ // There is no way to override the DocBook tag based on the layouts: half of it is determined by whether the float
+ // has a title or not, an information that is not available in the layouts.
/// attribute (mostly, role)
mutable std::string docbook_caption_;
/// caption tag (mostly, either caption or title)
diff --git a/src/insets/InsetFloat.cpp b/src/insets/InsetFloat.cpp
index 24e06b548c..86bcf9d474 100644
--- a/src/insets/InsetFloat.cpp
+++ b/src/insets/InsetFloat.cpp
@@ -654,7 +654,7 @@ void docbookNoSubfigures(XMLStream & xs, OutputParams const & runparams, const I
xs << xml::StartTag(ftype.docbookTag(caption != nullptr), attr);
xs << xml::CR();
- if (caption != nullptr) {
+ if (caption) {
xs << xml::StartTag(titleTag);
caption->getCaptionAsDocBook(xs, rpNoLabel);
xs << xml::EndTag(titleTag);
diff --git a/src/mathed/InsetMathHull.cpp b/src/mathed/InsetMathHull.cpp
index 5847121069..af30e8eea7 100644
--- a/src/mathed/InsetMathHull.cpp
+++ b/src/mathed/InsetMathHull.cpp
@@ -2429,7 +2429,7 @@ void InsetMathHull::docbook(XMLStream & xs, OutputParams const & runparams) cons
}
// DocBook also has , but it comes with a title.
- // TODO: recognise \tag from amsmath?
+ // TODO: recognise \tag from amsmath? This would allow having with a proper title.
docstring attr;
for (row_type i = 0; i < nrows(); ++i) {