#include "support/lassert.h"
#include "support/Length.h"
#include "support/lstrings.h"
+#include "support/qstring_helpers.h"
#include "frontends/Application.h"
#include "frontends/FontMetrics.h"
docstring message;
switch (params_.kind) {
case InsetSpaceParams::NORMAL:
- message = _("Interword Space");
+ message = _("Normal Space");
break;
case InsetSpaceParams::PROTECTED:
- message = _("Protected Space");
+ message = _("Non-Breaking Normal Space");
break;
case InsetSpaceParams::VISIBLE:
- message = _("Visible Space");
+ message = _("Non-Breaking Visible Normal Space");
break;
case InsetSpaceParams::THIN:
- message = _("Thin Space");
+ message = _("Non-Breaking Thin Space (1/6 em)");
break;
case InsetSpaceParams::MEDIUM:
- message = _("Medium Space");
+ message = _("Non-Breaking Medium Space (2/9 em)");
break;
case InsetSpaceParams::THICK:
- message = _("Thick Space");
+ message = _("Non-Breaking Thick Space (5/18 em)");
break;
case InsetSpaceParams::QUAD:
- message = _("Quad Space");
+ message = _("Quad Space (1 em)");
break;
case InsetSpaceParams::QQUAD:
- message = _("Double Quad Space");
+ message = _("Double Quad Space (2 em)");
break;
case InsetSpaceParams::ENSPACE:
- message = _("Enspace");
+ message = _("Non-Breaking Half Quad Space (1/2 em)");
break;
case InsetSpaceParams::ENSKIP:
- message = _("Enskip");
+ message = _("Half Quad Space (1/2 em)");
break;
case InsetSpaceParams::NEGTHIN:
- message = _("Negative Thin Space");
+ message = _("Non-Breaking Negative Thin Space (-1/6 em)");
break;
case InsetSpaceParams::NEGMEDIUM:
- message = _("Negative Medium Space");
+ message = _("Non-Breaking Negative Medium Space (-2/9 em)");
break;
case InsetSpaceParams::NEGTHICK:
- message = _("Negative Thick Space");
+ message = _("Non-Breaking Negative Thick Space (-5/18 em)");
break;
case InsetSpaceParams::HFILL:
message = _("Horizontal Fill");
break;
case InsetSpaceParams::HFILL_PROTECTED:
- message = _("Protected Horizontal Fill");
+ message = _("Non-Breaking Horizontal Fill");
break;
case InsetSpaceParams::DOTFILL:
- message = _("Horizontal Fill (Dots)");
+ message = _("Non-Breaking Horizontal Fill (Dots)");
break;
case InsetSpaceParams::HRULEFILL:
- message = _("Horizontal Fill (Rule)");
+ message = _("Non-Breaking Horizontal Fill (Rule)");
break;
case InsetSpaceParams::LEFTARROWFILL:
- message = _("Horizontal Fill (Left Arrow)");
+ message = _("Non-Breaking Horizontal Fill (Left Arrow)");
break;
case InsetSpaceParams::RIGHTARROWFILL:
- message = _("Horizontal Fill (Right Arrow)");
+ message = _("Non-Breaking Horizontal Fill (Right Arrow)");
break;
case InsetSpaceParams::UPBRACEFILL:
- message = _("Horizontal Fill (Up Brace)");
+ message = _("Non-Breaking Horizontal Fill (Up Brace)");
break;
case InsetSpaceParams::DOWNBRACEFILL:
- message = _("Horizontal Fill (Down Brace)");
+ message = _("Non-Breaking Horizontal Fill (Down Brace)");
break;
case InsetSpaceParams::CUSTOM:
// FIXME unicode
message = support::bformat(_("Horizontal Space (%1$s)"),
- from_ascii(params_.length.asString()));
+ locLengthDocString(from_ascii(params_.length.asString())));
break;
case InsetSpaceParams::CUSTOM_PROTECTED:
// FIXME unicode
- message = support::bformat(_("Protected Horizontal Space (%1$s)"),
- from_ascii(params_.length.asString()));
+ message = support::bformat(_("Non-Breaking Horizontal Space (%1$s)"),
+ locLengthDocString(from_ascii(params_.length.asString())));
break;
}
return message;
{
switch (params_.kind) {
case InsetSpaceParams::NORMAL:
- os << (runparams.free_spacing && (runparams.for_searchAdv == OutputParams::NoSearch) ? " " : "\\ ");
+ if (runparams.find_effective())
+ os << "~";
+ else
+ os << (runparams.free_spacing ? " " : "\\ ");
break;
case InsetSpaceParams::PROTECTED:
- if (runparams.local_font &&
+ if (runparams.find_effective())
+ os.put(0xa0);
+ else if (runparams.local_font &&
runparams.local_font->language()->lang() == "polutonikogreek")
// in babel's polutonikogreek, ~ is active
- os << (runparams.free_spacing && (runparams.for_searchAdv == OutputParams::NoSearch) ? " " : "\\nobreakspace{}");
+ os << (runparams.free_spacing ? " " : "\\nobreakspace{}");
else
- os << (runparams.free_spacing && (runparams.for_searchAdv == OutputParams::NoSearch) ? ' ' : '~');
+ os << (runparams.free_spacing ? ' ' : '~');
break;
case InsetSpaceParams::VISIBLE:
- os << (runparams.free_spacing && (runparams.for_searchAdv == OutputParams::NoSearch) ? " " : "\\textvisiblespace{}");
+ if (runparams.find_effective())
+ os.put(0x2423);
+ else
+ os << (runparams.free_spacing ? " " : "\\textvisiblespace{}");
break;
case InsetSpaceParams::THIN:
- if (runparams.for_searchAdv != OutputParams::NoSearch)
- os << "\\thinspace{}";
+ if (runparams.find_effective())
+ os.put(0x2009);
else
os << (runparams.free_spacing ? " " : "\\,");
break;
case InsetSpaceParams::MEDIUM:
- if (runparams.for_searchAdv != OutputParams::NoSearch)
- os << "\\medspace{}";
+ if (runparams.find_effective())
+ os.put(0x2005);
else if (params_.math)
os << (runparams.free_spacing ? " " : "\\:");
else
os << (runparams.free_spacing ? " " : "\\medspace{}");
break;
case InsetSpaceParams::THICK:
- if (runparams.for_searchAdv != OutputParams::NoSearch)
- os << "\\thickspace{}";
+ if (runparams.find_effective())
+ os.put(0x2004);
else if (params_.math)
os << (runparams.free_spacing ? " " : "\\;");
else
os << (runparams.free_spacing ? " " : "\\thickspace{}");
break;
case InsetSpaceParams::QUAD:
- os << (runparams.free_spacing && (runparams.for_searchAdv != OutputParams::NoSearch) ? " " : "\\quad{}");
+ if (runparams.find_effective())
+ os.put(0x2003);
+ else
+ os << (runparams.free_spacing ? " " : "\\quad{}");
break;
case InsetSpaceParams::QQUAD:
- os << (runparams.free_spacing && (runparams.for_searchAdv != OutputParams::NoSearch) ? " " : "\\qquad{}");
+ if (runparams.find_effective()) {
+ os.put(0x2003);
+ os.put(0x2003);
+ }
+ else
+ os << (runparams.free_spacing ? " " : "\\qquad{}");
break;
case InsetSpaceParams::ENSPACE:
- os << (runparams.free_spacing && (runparams.for_searchAdv != OutputParams::NoSearch) ? " " : "\\enspace{}");
+ if (runparams.find_effective())
+ os.put(0x2002);
+ else
+ os << (runparams.free_spacing ? " " : "\\enspace{}");
break;
case InsetSpaceParams::ENSKIP:
- os << (runparams.free_spacing && (runparams.for_searchAdv != OutputParams::NoSearch) ? " " : "\\enskip{}");
+ if (runparams.find_effective())
+ os.put(0x2002);
+ else
+ os << (runparams.free_spacing ? " " : "\\enskip{}");
break;
case InsetSpaceParams::NEGTHIN:
- os << (runparams.free_spacing && (runparams.for_searchAdv != OutputParams::NoSearch) ? " " : "\\negthinspace{}");
+ os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\negthinspace{}");
break;
case InsetSpaceParams::NEGMEDIUM:
- os << (runparams.free_spacing && (runparams.for_searchAdv != OutputParams::NoSearch) ? " " : "\\negmedspace{}");
+ os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\negmedspace{}");
break;
case InsetSpaceParams::NEGTHICK:
- os << (runparams.free_spacing && (runparams.for_searchAdv != OutputParams::NoSearch) ? " " : "\\negthickspace{}");
+ os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\negthickspace{}");
break;
case InsetSpaceParams::HFILL:
- os << (runparams.free_spacing && (runparams.for_searchAdv != OutputParams::NoSearch) ? " " : "\\hfill{}");
+ os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\hfill{}");
break;
case InsetSpaceParams::HFILL_PROTECTED:
- os << (runparams.free_spacing && (runparams.for_searchAdv != OutputParams::NoSearch) ? " " : "\\hspace*{\\fill}");
+ os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\hspace*{\\fill}");
break;
case InsetSpaceParams::DOTFILL:
- os << (runparams.free_spacing && (runparams.for_searchAdv != OutputParams::NoSearch) ? " " : "\\dotfill{}");
+ os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\dotfill{}");
break;
case InsetSpaceParams::HRULEFILL:
- os << (runparams.free_spacing && (runparams.for_searchAdv != OutputParams::NoSearch) ? " " : "\\hrulefill{}");
+ os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\hrulefill{}");
break;
case InsetSpaceParams::LEFTARROWFILL:
- os << (runparams.free_spacing && (runparams.for_searchAdv != OutputParams::NoSearch) ? " " : "\\leftarrowfill{}");
+ os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\leftarrowfill{}");
break;
case InsetSpaceParams::RIGHTARROWFILL:
- os << (runparams.free_spacing && (runparams.for_searchAdv != OutputParams::NoSearch) ? " " : "\\rightarrowfill{}");
+ os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\rightarrowfill{}");
break;
case InsetSpaceParams::UPBRACEFILL:
- os << (runparams.free_spacing && (runparams.for_searchAdv != OutputParams::NoSearch) ? " " : "\\upbracefill{}");
+ os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\upbracefill{}");
break;
case InsetSpaceParams::DOWNBRACEFILL:
- os << (runparams.free_spacing && (runparams.for_searchAdv != OutputParams::NoSearch) ? " " : "\\downbracefill{}");
+ os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\downbracefill{}");
break;
case InsetSpaceParams::CUSTOM:
- if (runparams.free_spacing)
+ if (runparams.find_effective())
+ os.put(0x00a0);
+ else if (runparams.free_spacing)
os << " ";
else
os << "\\hspace{" << from_ascii(params_.length.asLatexString()) << "}";
break;
case InsetSpaceParams::CUSTOM_PROTECTED:
- if (runparams.free_spacing)
+ if (runparams.find_effective())
+ os.put(0x00a0);
+ else if (runparams.free_spacing)
os << " ";
else
os << "\\hspace*{" << from_ascii(params_.length.asLatexString()) << "}";