From 3bd193256b17e578f5274d4c9acf6339b3936bfe Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Thu, 31 Jan 2019 22:49:58 +0100 Subject: replace tex constants with unicode equivalent --- src/util.cpp | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 119 insertions(+), 1 deletion(-) (limited to 'src/util.cpp') diff --git a/src/util.cpp b/src/util.cpp index 304f9e7..b9c87b2 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -21,7 +21,7 @@ qreal bezierInterpolate(qreal dist, qreal c0, qreal c1, qreal c2, qreal c3) { qreal distp = 1 - dist; - return (distp*distp*distp) * c0 + + return (distp*distp*distp) * c0 + 3 * (distp*distp) * dist * c1 + 3 * (dist*dist) * distp * c2 + (dist*dist*dist) * c3; @@ -80,3 +80,121 @@ QString floatToString(qreal f) { else return QString::number(f); } + +static QList texConstantNames; +static QList texConstantCodes; +static QList texModifierNames; + + +void initTexConstants() { + texConstantNames + << "\\alpha" + << "\\beta" + << "\\gamma" + << "\\delta" + << "\\epsilon" + << "\\zeta" + << "\\eta" + << "\\theta" + << "\\iota" + << "\\kappa" + << "\\lambda" + << "\\mu" + << "\\nu" + << "\\xi" + << "\\pi" + << "\\rho" + << "\\sigma" + << "\\tau" + << "\\upsilon" + << "\\phi" + << "\\chi" + << "\\psi" + << "\\omega" + << "\\Gamma" + << "\\Delta" + << "\\Theta" + << "\\Lambda" + << "\\Xi" + << "\\Pi" + << "\\Sigma" + << "\\Upsilon" + << "\\Phi" + << "\\Psi" + << "\\Omega" + << "\\pm" + << "\\to" + << "\\Rightarrow" + << "\\Leftrightarrow" + << "\\forall" + << "\\partial" + << "\\exists" + << "\\emptyset" + << "\\nabla" + << "\\in" + << "\\notin" + << "\\prod" + << "\\sum" + << "\\surd" + << "\\infty" + << "\\wedge" + << "\\vee" + << "\\cap" + << "\\cup" + << "\\int" + << "\\approx" + << "\\neq" + << "\\equiv" + << "\\leq" + << "\\geq" + << "\\subset" + << "\\supset" + << "\\cdot" + << "\\ldots"; + + texConstantCodes << + "\u03b1" << "\u03b2" << "\u03b3" << "\u03b4" << "\u03b5" << "\u03b6" << "\u03b7" << + "\u03b8" << "\u03b9" << "\u03ba" << "\u03bb" << "\u03bc" << "\u03bd" << "\u03be" << + "\u03c0" << "\u03c1" << "\u03c3" << "\u03c4" << "\u03c5" << "\u03c6" << "\u03c7" << + "\u03c8" << "\u03c9" << "\u0393" << "\u0394" << "\u0398" << "\u039b" << "\u039e" << + "\u03a0" << "\u03a3" << "\u03a5" << "\u03a6" << "\u03a8" << "\u03a9" << + + "\u00b1" << "\u2192" << "\u21d2" << "\u21d4" << "\u2200" << "\u2202" << "\u2203" << + "\u2205" << "\u2207" << "\u2208" << "\u2209" << "\u220f" << "\u2211" << "\u221a" << + "\u221e" << "\u2227" << "\u2228" << "\u2229" << "\u222a" << "\u222b" << "\u2248" << + "\u2260" << "\u2261" << "\u2264" << "\u2265" << "\u2282" << "\u2283" << "\u22c5" << + "\u2026"; + + texModifierNames + << "\\tiny" + << "\\scriptsize" + << "\\footnotesize" + << "\\small" + << "\\normalsize" + << "\\large" + << "\\Large" + << "\\LARGE" + << "\\huge" + << "\\Huge"; +} + +QString replaceTexConstants(QString s) { + QString s1 = s; + for (int i = 0; i < texConstantNames.length(); ++i) { + s1 = s1.replace(texConstantNames[i], texConstantCodes[i]); + } + + for (int i = 0; i < texModifierNames.length(); ++i) { + s1 = s1.replace(texModifierNames[i], ""); + } + + if (s1.startsWith('$') && s1.endsWith('$')) { + s1 = s1.mid(1, s1.length()-2); + } + + return s1; +} + + + + -- cgit v1.2.3 From 3a4a7e8b5e34e101a4ba7468fcd09d88977ca25c Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Fri, 1 Feb 2019 08:43:19 +0100 Subject: recognise more tex symbols --- src/util.cpp | 114 ++++++++++++++++++++--------------------------------------- 1 file changed, 39 insertions(+), 75 deletions(-) (limited to 'src/util.cpp') diff --git a/src/util.cpp b/src/util.cpp index b9c87b2..75cfa76 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -88,82 +88,46 @@ static QList texModifierNames; void initTexConstants() { texConstantNames - << "\\alpha" - << "\\beta" - << "\\gamma" - << "\\delta" - << "\\epsilon" - << "\\zeta" - << "\\eta" - << "\\theta" - << "\\iota" - << "\\kappa" - << "\\lambda" - << "\\mu" - << "\\nu" - << "\\xi" - << "\\pi" - << "\\rho" - << "\\sigma" - << "\\tau" - << "\\upsilon" - << "\\phi" - << "\\chi" - << "\\psi" - << "\\omega" - << "\\Gamma" - << "\\Delta" - << "\\Theta" - << "\\Lambda" - << "\\Xi" - << "\\Pi" - << "\\Sigma" - << "\\Upsilon" - << "\\Phi" - << "\\Psi" + << "\\alpha" << "\\beta" << "\\gamma" << "\\delta" << "\\epsilon" + << "\\zeta" << "\\eta" << "\\theta" << "\\iota" << "\\kappa" + << "\\lambda" << "\\mu" << "\\nu" << "\\xi" << "\\pi" + << "\\rho" << "\\sigma" << "\\tau" << "\\upsilon" << "\\phi" + << "\\chi" << "\\psi" << "\\omega" + + << "\\Gamma" << "\\Delta" << "\\Theta" << "\\Lambda" << "\\Xi" + << "\\Pi" << "\\Sigma" << "\\Upsilon" << "\\Phi" << "\\Psi" << "\\Omega" - << "\\pm" - << "\\to" - << "\\Rightarrow" - << "\\Leftrightarrow" - << "\\forall" - << "\\partial" - << "\\exists" - << "\\emptyset" - << "\\nabla" - << "\\in" - << "\\notin" - << "\\prod" - << "\\sum" - << "\\surd" - << "\\infty" - << "\\wedge" - << "\\vee" - << "\\cap" - << "\\cup" - << "\\int" - << "\\approx" - << "\\neq" - << "\\equiv" - << "\\leq" - << "\\geq" - << "\\subset" - << "\\supset" - << "\\cdot" - << "\\ldots"; - - texConstantCodes << - "\u03b1" << "\u03b2" << "\u03b3" << "\u03b4" << "\u03b5" << "\u03b6" << "\u03b7" << - "\u03b8" << "\u03b9" << "\u03ba" << "\u03bb" << "\u03bc" << "\u03bd" << "\u03be" << - "\u03c0" << "\u03c1" << "\u03c3" << "\u03c4" << "\u03c5" << "\u03c6" << "\u03c7" << - "\u03c8" << "\u03c9" << "\u0393" << "\u0394" << "\u0398" << "\u039b" << "\u039e" << - "\u03a0" << "\u03a3" << "\u03a5" << "\u03a6" << "\u03a8" << "\u03a9" << - - "\u00b1" << "\u2192" << "\u21d2" << "\u21d4" << "\u2200" << "\u2202" << "\u2203" << - "\u2205" << "\u2207" << "\u2208" << "\u2209" << "\u220f" << "\u2211" << "\u221a" << - "\u221e" << "\u2227" << "\u2228" << "\u2229" << "\u222a" << "\u222b" << "\u2248" << - "\u2260" << "\u2261" << "\u2264" << "\u2265" << "\u2282" << "\u2283" << "\u22c5" << - "\u2026"; + + << "\\pm" << "\\to" << "\\Rightarrow" << "\\Leftrightarrow" << "\\forall" + << "\\partial" << "\\exists" << "\\emptyset" << "\\nabla" << "\\in" + << "\\notin" << "\\prod" << "\\sum" << "\\surd" << "\\infty" + << "\\wedge" << "\\vee" << "\\cap" << "\\cup" << "\\int" + << "\\approx" << "\\neq" << "\\equiv" << "\\leq" << "\\geq" + << "\\subset" << "\\supset" + + << "\\ldots" << "\\vdots" << "\\cdots" << "\\ddots" << "\\iddots" + << "\\cdot"; + + texConstantCodes + << "\u03b1" << "\u03b2" << "\u03b3" << "\u03b4" << "\u03b5" + << "\u03b6" << "\u03b7" << "\u03b8" << "\u03b9" << "\u03ba" + << "\u03bb" << "\u03bc" << "\u03bd" << "\u03be" << "\u03c0" + << "\u03c1" << "\u03c3" << "\u03c4" << "\u03c5" << "\u03c6" + << "\u03c7" << "\u03c8" << "\u03c9" + + << "\u0393" << "\u0394" << "\u0398" << "\u039b" << "\u039e" + << "\u03a0" << "\u03a3" << "\u03a5" << "\u03a6" << "\u03a8" + << "\u03a9" + + << "\u00b1" << "\u2192" << "\u21d2" << "\u21d4" << "\u2200" + << "\u2202" << "\u2203" << "\u2205" << "\u2207" << "\u2208" + << "\u2209" << "\u220f" << "\u2211" << "\u221a" << "\u221e" + << "\u2227" << "\u2228" << "\u2229" << "\u222a" << "\u222b" + << "\u2248" << "\u2260" << "\u2261" << "\u2264" << "\u2265" + << "\u2282" << "\u2283" + + << "\u2026" << "\u22ee" << "\u22ef" << "\u22f1" << "\u22f0" + << "\u22c5"; texModifierNames << "\\tiny" -- cgit v1.2.3