By lynx: https://www.lyx.org/trac/attachment/ticket/12221/0003-tag-insertion-unification-for-bold-char-delim-dots-exfunc-.patch
+MathMLStream & operator<<(MathMLStream & ms, MTagInline const & t)
+{
+ ms.cr();
+ ms.os() << '<' << from_ascii(ms.namespacedTag(t.tag_));
+ if (!t.attr_.empty())
+ ms.os() << " " << from_ascii(t.attr_);
+ ms << ">";
+ return ms;
+}
+
+
MathMLStream & operator<<(MathMLStream & ms, ETag const & t)
{
ms.cr();
MathMLStream & operator<<(MathMLStream & ms, ETag const & t)
{
ms.cr();
+MathMLStream & operator<<(MathMLStream & ms, ETagInline const & t)
+{
+ ms.os() << "</" << from_ascii(ms.namespacedTag(t.tag_)) << ">";
+ return ms;
+}
+
+
MathMLStream & operator<<(MathMLStream & ms, CTag const & t)
{
ms.cr();
MathMLStream & operator<<(MathMLStream & ms, CTag const & t)
{
ms.cr();
+/// Start inline tag.
+class MTagInline {
+public:
+ ///
+ MTagInline(char const * const tag, std::string const & attr = std::string())
+ : tag_(tag), attr_(attr) {}
+ ///
+ char const * const tag_;
+ ///
+ std::string attr_;
+};
+
/// End tag.
class ETag {
/// End tag.
class ETag {
+/// End inlinetag.
+class ETagInline {
+public:
+ ///
+ explicit ETagInline(char const * const tag) : tag_(tag) {}
+ ///
+ char const * const tag_;
+};
+
+
/// Compound tag (no content, directly closed).
class CTag {
public:
/// Compound tag (no content, directly closed).
class CTag {
public:
///
MathMLStream & operator<<(MathMLStream &, MTag const &);
///
///
MathMLStream & operator<<(MathMLStream &, MTag const &);
///
+MathMLStream & operator<<(MathMLStream &, MTagInline const &);
+///
MathMLStream & operator<<(MathMLStream &, ETag const &);
///
MathMLStream & operator<<(MathMLStream &, ETag const &);
///
+MathMLStream & operator<<(MathMLStream &, ETagInline const &);
+///
MathMLStream & operator<<(MathMLStream &, CTag const &);
MathMLStream & operator<<(MathMLStream &, CTag const &);