#include "FuncStatus.h"
#include "Language.h"
#include "LaTeXFeatures.h"
-#include "Length.h"
#include "Lexer.h"
#include "MetricsInfo.h"
#include "OutputParams.h"
-#include "output_xhtml.h"
#include "texstream.h"
+#include "xml.h"
#include "support/debug.h"
#include "support/docstream.h"
#include "support/gettext.h"
#include "support/lassert.h"
+#include "support/Length.h"
#include "support/lstrings.h"
#include "frontends/Application.h"
kind = InsetSpaceParams::VISIBLE;
else if (command == "\\thinspace{}")
kind = InsetSpaceParams::THIN;
- else if (math && command == "\\medspace{}")
+ else if (command == "\\medspace{}")
kind = InsetSpaceParams::MEDIUM;
- else if (math && command == "\\thickspace{}")
+ else if (command == "\\thickspace{}")
kind = InsetSpaceParams::THICK;
else if (command == "\\quad{}")
kind = InsetSpaceParams::QUAD;
os << (runparams.free_spacing ? " " : "\\,");
break;
case InsetSpaceParams::MEDIUM:
- os << (runparams.free_spacing ? " " : "\\:");
+ if (params_.math)
+ os << (runparams.free_spacing ? " " : "\\:");
+ else
+ os << (runparams.free_spacing ? " " : "\\medspace{}");
break;
case InsetSpaceParams::THICK:
- os << (runparams.free_spacing ? " " : "\\;");
+ if (params_.math)
+ os << (runparams.free_spacing ? " " : "\\;");
+ else
+ os << (runparams.free_spacing ? " " : "\\thickspace{}");
break;
case InsetSpaceParams::QUAD:
os << (runparams.free_spacing ? " " : "\\quad{}");
}
-int InsetSpace::docbook(odocstream & os, OutputParams const &) const
+void InsetSpace::docbook(XMLStream & xs, OutputParams const &) const
{
switch (params_.kind) {
case InsetSpaceParams::NORMAL:
- os << " ";
+ xs << XMLStream::ESCAPE_NONE << " ";
break;
case InsetSpaceParams::QUAD:
- os << " ";
+ xs << XMLStream::ESCAPE_NONE << " "; // HTML:  
break;
case InsetSpaceParams::QQUAD:
- os << "  ";
+ xs << XMLStream::ESCAPE_NONE << "  "; // HTML:   
break;
case InsetSpaceParams::ENSKIP:
- os << " ";
+ xs << XMLStream::ESCAPE_NONE << " "; // HTML:  
break;
case InsetSpaceParams::PROTECTED:
- os << " ";
+ xs << XMLStream::ESCAPE_NONE << " "; // HTML:
break;
case InsetSpaceParams::VISIBLE:
- os << "␣";
+ xs << XMLStream::ESCAPE_NONE << "␣";
break;
- case InsetSpaceParams::ENSPACE:
- os << "⁠ ⁠";
+ case InsetSpaceParams::ENSPACE: // HTML: ⁠ ⁠ (word joiners)
+ xs << XMLStream::ESCAPE_NONE << "⁠ ⁠";
break;
case InsetSpaceParams::THIN:
- os << " ";
+ xs << XMLStream::ESCAPE_NONE << " "; // HTML: &thinspace;
break;
case InsetSpaceParams::MEDIUM:
- os << " ";
+ xs << XMLStream::ESCAPE_NONE << " "; // HTML:  
break;
case InsetSpaceParams::THICK:
- os << " ";
+ xs << XMLStream::ESCAPE_NONE << " "; // HTML:  
break;
case InsetSpaceParams::NEGTHIN:
case InsetSpaceParams::NEGMEDIUM:
case InsetSpaceParams::NEGTHICK:
- // FIXME
- os << " ";
+ xs << XMLStream::ESCAPE_NONE << " "; // HTML:
break;
case InsetSpaceParams::HFILL:
case InsetSpaceParams::HFILL_PROTECTED:
- os << '\n';
- break;
case InsetSpaceParams::DOTFILL:
- // FIXME
- os << '\n';
- break;
case InsetSpaceParams::HRULEFILL:
- // FIXME
- os << '\n';
- break;
case InsetSpaceParams::LEFTARROWFILL:
case InsetSpaceParams::RIGHTARROWFILL:
case InsetSpaceParams::UPBRACEFILL:
case InsetSpaceParams::DOWNBRACEFILL:
case InsetSpaceParams::CUSTOM:
case InsetSpaceParams::CUSTOM_PROTECTED:
- // FIXME
- os << '\n';
+ xs << '\n';
break;
}
- return 0;
}
void InsetSpace::validate(LaTeXFeatures & features) const
{
- if (params_.kind == InsetSpaceParams::NEGMEDIUM ||
- params_.kind == InsetSpaceParams::NEGTHICK)
+ if ((params_.kind == InsetSpaceParams::NEGMEDIUM
+ || params_.kind == InsetSpaceParams::NEGTHICK)
+ || (!params_.math
+ && (params_.kind == InsetSpaceParams::MEDIUM
+ || params_.kind == InsetSpaceParams::THICK)))
features.require("amsmath");
}