X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetSpace.cpp;h=3f86eb8c074cf1c1775b6ca50c920d72e3fa85fc;hb=e26a60edef3eae39c2e8379f395febedc5ba7efa;hp=669239b55fc0141aaed337cf1abca8f725499009;hpb=4bb427a2443d64bd01aad66ebdc0b3f802546bae;p=features.git diff --git a/src/insets/InsetSpace.cpp b/src/insets/InsetSpace.cpp index 669239b55f..3f86eb8c07 100644 --- a/src/insets/InsetSpace.cpp +++ b/src/insets/InsetSpace.cpp @@ -33,6 +33,7 @@ #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" @@ -65,77 +66,77 @@ docstring InsetSpace::toolTip(BufferView const &, int, int) const 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; @@ -579,97 +580,120 @@ void InsetSpace::latex(otexstream & os, OutputParams const & runparams) const { switch (params_.kind) { case InsetSpaceParams::NORMAL: - if (runparams.for_search != 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_search == OutputParams::NoSearch) ? " " : "\\nobreakspace{}"); + os << (runparams.free_spacing ? " " : "\\nobreakspace{}"); else - os << (runparams.free_spacing && (runparams.for_search == OutputParams::NoSearch) ? ' ' : '~'); + os << (runparams.free_spacing ? ' ' : '~'); break; case InsetSpaceParams::VISIBLE: - os << (runparams.free_spacing && (runparams.for_search == OutputParams::NoSearch) ? " " : "\\textvisiblespace{}"); + if (runparams.find_effective()) + os.put(0x2423); + else + os << (runparams.free_spacing ? " " : "\\textvisiblespace{}"); break; case InsetSpaceParams::THIN: - if (runparams.for_search != OutputParams::NoSearch) - os << "\\thinspace{}"; + if (runparams.find_effective()) + os.put(0x2009); else os << (runparams.free_spacing ? " " : "\\,"); break; case InsetSpaceParams::MEDIUM: - if (runparams.for_search != 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_search != 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_search != 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_search != 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_search != 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_search != 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_search != OutputParams::NoSearch) ? " " : "\\negthinspace{}"); + os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\negthinspace{}"); break; case InsetSpaceParams::NEGMEDIUM: - os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) ? " " : "\\negmedspace{}"); + os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\negmedspace{}"); break; case InsetSpaceParams::NEGTHICK: - os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) ? " " : "\\negthickspace{}"); + os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\negthickspace{}"); break; case InsetSpaceParams::HFILL: - os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) ? " " : "\\hfill{}"); + os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\hfill{}"); break; case InsetSpaceParams::HFILL_PROTECTED: - os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) ? " " : "\\hspace*{\\fill}"); + os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\hspace*{\\fill}"); break; case InsetSpaceParams::DOTFILL: - os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) ? " " : "\\dotfill{}"); + os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\dotfill{}"); break; case InsetSpaceParams::HRULEFILL: - os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) ? " " : "\\hrulefill{}"); + os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\hrulefill{}"); break; case InsetSpaceParams::LEFTARROWFILL: - os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) ? " " : "\\leftarrowfill{}"); + os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\leftarrowfill{}"); break; case InsetSpaceParams::RIGHTARROWFILL: - os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) ? " " : "\\rightarrowfill{}"); + os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\rightarrowfill{}"); break; case InsetSpaceParams::UPBRACEFILL: - os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) ? " " : "\\upbracefill{}"); + os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\upbracefill{}"); break; case InsetSpaceParams::DOWNBRACEFILL: - os << (runparams.free_spacing && (runparams.for_search != 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()) << "}";