X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2FMathSupport.cpp;h=daf437fc67fe5003a868ccac45e6d2a093cb1508;hb=3e79e0f5f00add2c735d372f4734cf31f64b7e5f;hp=16fbbcd4be0be7816302fce8560f550ce1a91431;hpb=eacac8bea2a7dc56a994eb28e517b0fa8c17937f;p=lyx.git diff --git a/src/mathed/MathSupport.cpp b/src/mathed/MathSupport.cpp index 16fbbcd4be..daf437fc67 100644 --- a/src/mathed/MathSupport.cpp +++ b/src/mathed/MathSupport.cpp @@ -15,10 +15,13 @@ #include "InsetMathFont.h" #include "InsetMathSymbol.h" +#include "Length.h" #include "MathData.h" +#include "MathFactory.h" #include "MathParser.h" #include "MathStream.h" +#include "LaTeXFeatures.h" #include "MetricsInfo.h" #include "frontends/FontLoader.h" @@ -533,25 +536,15 @@ int mathed_font_em(FontInfo const & font) * above. */ -int mathed_thinmuskip(FontInfo font) +int mathed_mu(FontInfo const & font, double mu) { - font.setFamily(SYMBOL_FAMILY); - return support::iround(3.0 / 18 * theFontMetrics(font).em()); + MetricsBase mb(nullptr, font); + return Length(mu, Length::MU).inPixels(mb); } - -int mathed_medmuskip(FontInfo font) -{ - font.setFamily(SYMBOL_FAMILY); - return support::iround(4.0 / 18 * theFontMetrics(font).em()); -} - - -int mathed_thickmuskip(FontInfo font) -{ - font.setFamily(SYMBOL_FAMILY); - return support::iround(5.0 / 18 * theFontMetrics(font).em()); -} +int mathed_thinmuskip(FontInfo const & font) { return mathed_mu(font, 3.0); } +int mathed_medmuskip(FontInfo const & font) { return mathed_mu(font, 4.0); } +int mathed_thickmuskip(FontInfo const & font) { return mathed_mu(font, 5.0); } int mathed_char_width(FontInfo const & font, char_type c) @@ -994,4 +987,23 @@ docstring asString(MathAtom const & at) } +int axis_height(MetricsBase & mb) +{ + Changer dummy = mb.changeFontSet("mathnormal"); + return theFontMetrics(mb.font).ascent('-') - 1; +} + + +void validate_math_word(LaTeXFeatures & features, docstring const & word) +{ + MathWordList const & words = mathedWordList(); + MathWordList::const_iterator it = words.find(word); + if (it != words.end()) { + string const req = it->second.requires; + if (!req.empty()) + features.require(req); + } +} + + } // namespace lyx