From cdbf4c0ea6e01996363d760b9c025c99bc350513 Mon Sep 17 00:00:00 2001 From: Yurui Hong <83064277+YuruiHong@users.noreply.github.com> Date: Sun, 30 Apr 2023 12:01:17 +1000 Subject: [PATCH 1/4] Update tex.snippets --- tex.snippets | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tex.snippets b/tex.snippets index 45aa4c7..69815a9 100644 --- a/tex.snippets +++ b/tex.snippets @@ -200,6 +200,18 @@ snip.rv = subprocess.check_output(['wolframscript', '-code', code]) ` endsnippet +priority 10000 +snippet '^(.*(?:= |\$))(.*)=?\s*$' "latex-sympy-calculator-expression" wr +`!p +prefix = match.group(1) +code = match.group(2) +from latex2sympy2 import latex2latex, latex2sympy, var, variances, set_variances, set_real, latex +from sympy import * +from sympy.abc import * +snip.rv = prefix + code + ' = ' + latex(factor(latex2sympy(code).subs(variances))) +` +endsnippet + snippet == "equals" iA &= $1 \\\\ endsnippet From cef27dfbd2f690650b4a8c43c4eb182fc1c5dbc7 Mon Sep 17 00:00:00 2001 From: Yurui Hong <83064277+YuruiHong@users.noreply.github.com> Date: Sun, 30 Apr 2023 12:02:11 +1000 Subject: [PATCH 2/4] Create requirements.txt --- requirements.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 requirements.txt diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..dfd8e8b --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +sympy +latex2sympy2 From e24d4bfdd0362af98cbd341ba5ed68d61993f9f5 Mon Sep 17 00:00:00 2001 From: Yurui Hong <83064277+YuruiHong@users.noreply.github.com> Date: Sun, 30 Apr 2023 12:56:57 +1000 Subject: [PATCH 3/4] Update tex.snippets --- tex.snippets | 62 +++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 57 insertions(+), 5 deletions(-) diff --git a/tex.snippets b/tex.snippets index 69815a9..c10a955 100644 --- a/tex.snippets +++ b/tex.snippets @@ -200,16 +200,68 @@ snip.rv = subprocess.check_output(['wolframscript', '-code', code]) ` endsnippet -priority 10000 -snippet '^(.*(?:= |\$))(.*)=?\s*$' "latex-sympy-calculator-expression" wr -`!p +priority 10000 +context "math()" +snippet '^(.*(?:= |\$))(.*)[^\s=]\s*$' "latex-sympy-calculator-inline" wr +`!p prefix = match.group(1) code = match.group(2) from latex2sympy2 import latex2latex, latex2sympy, var, variances, set_variances, set_real, latex from sympy import * from sympy.abc import * -snip.rv = prefix + code + ' = ' + latex(factor(latex2sympy(code).subs(variances))) -` +try: + snip.rv = prefix + code + ' = ' + latex(factor(latex2sympy(code).subs(variances))) +except: + snip.rv = prefix + code + ' = ' +` +endsnippet + +priority 10000 +context "math()" +snippet '^(.*(?:&\s?=))(.*)[^\s=]\s*$' "latex-sympy-calculator-block" wr +`!p +prefix = match.group(1) +code = match.group(2) +from latex2sympy2 import latex2latex, latex2sympy, var, variances, set_variances, set_real, latex +from sympy import * +from sympy.abc import * +try: + snip.rv = prefix + code + '\n&= ' + latex(factor(latex2sympy(code).subs(variances))) +except: + snip.rv = prefix + code + '\n&= ' +` +endsnippet + +priority 10000 +context "math()" +snippet '^(.*(?:= |\$))(.*)=\s*$' "latex-sympy-calculator-inline-numeric" wr +`!p +prefix = match.group(1) +code = match.group(2) +from latex2sympy2 import latex2latex, latex2sympy, var, variances, set_variances, set_real, latex +from sympy import * +from sympy.abc import * +try: + snip.rv = prefix + code + '= ' + latex(simplify(latex2sympy(code).subs(variances).doit().doit()).evalf(subs=variances)) +except: + snip.rv = prefix + code + '= ' +` +endsnippet + +priority 10000 +context "math()" +snippet '^(.*(?:&\s?=))(.*)=\s*$' "latex-sympy-calculator-block" wr +`!p +prefix = match.group(1) +code = match.group(2) +from latex2sympy2 import latex2latex, latex2sympy, var, variances, set_variances, set_real, latex +from sympy import * +from sympy.abc import * +try: + snip.rv = prefix + code + '\n&= ' + latex(simplify(latex2sympy(code).subs(variances).doit().doit()).evalf(subs=variances)) +except: + snip.rv = prefix + code + '\n&= ' +` endsnippet snippet == "equals" iA From e9a89930b7d47883e111318a457f594eb35fdb05 Mon Sep 17 00:00:00 2001 From: Yurui Hong <83064277+YuruiHong@users.noreply.github.com> Date: Sun, 30 Apr 2023 16:19:32 +1000 Subject: [PATCH 4/4] Update tex.snippets --- tex.snippets | 56 +++++++++++++--------------------------------------- 1 file changed, 14 insertions(+), 42 deletions(-) diff --git a/tex.snippets b/tex.snippets index c10a955..dca8331 100644 --- a/tex.snippets +++ b/tex.snippets @@ -202,65 +202,37 @@ endsnippet priority 10000 context "math()" -snippet '^(.*(?:= |\$))(.*)[^\s=]\s*$' "latex-sympy-calculator-inline" wr +snippet '^(.*(?:= |\$))(.*[^\s=])\s*$' "latex-sympy-calculator-expression" wr `!p -prefix = match.group(1) -code = match.group(2) +import re from latex2sympy2 import latex2latex, latex2sympy, var, variances, set_variances, set_real, latex -from sympy import * -from sympy.abc import * -try: - snip.rv = prefix + code + ' = ' + latex(factor(latex2sympy(code).subs(variances))) -except: - snip.rv = prefix + code + ' = ' -` -endsnippet - -priority 10000 -context "math()" -snippet '^(.*(?:&\s?=))(.*)[^\s=]\s*$' "latex-sympy-calculator-block" wr -`!p +from sympy import simplify prefix = match.group(1) code = match.group(2) -from latex2sympy2 import latex2latex, latex2sympy, var, variances, set_variances, set_real, latex -from sympy import * -from sympy.abc import * +reg = re.match(r'^(.*)\&\s*=(?:.*)$', prefix) +sep = '\n' + ' ' * len(reg.group(1)) + '&= ' if reg else ' = ' try: - snip.rv = prefix + code + '\n&= ' + latex(factor(latex2sympy(code).subs(variances))) + snip.rv = prefix + code + sep + latex(simplify(latex2sympy(code).subs(variances))) except: - snip.rv = prefix + code + '\n&= ' + snip.rv = prefix + code + sep ` endsnippet priority 10000 context "math()" -snippet '^(.*(?:= |\$))(.*)=\s*$' "latex-sympy-calculator-inline-numeric" wr +snippet '^(.*(?:= |\$))(.*)=\s*$' "latex-sympy-calculator-numeric" wr `!p -prefix = match.group(1) -code = match.group(2) +import re from latex2sympy2 import latex2latex, latex2sympy, var, variances, set_variances, set_real, latex -from sympy import * -from sympy.abc import * -try: - snip.rv = prefix + code + '= ' + latex(simplify(latex2sympy(code).subs(variances).doit().doit()).evalf(subs=variances)) -except: - snip.rv = prefix + code + '= ' -` -endsnippet - -priority 10000 -context "math()" -snippet '^(.*(?:&\s?=))(.*)=\s*$' "latex-sympy-calculator-block" wr -`!p +from sympy import simplify prefix = match.group(1) code = match.group(2) -from latex2sympy2 import latex2latex, latex2sympy, var, variances, set_variances, set_real, latex -from sympy import * -from sympy.abc import * +reg = re.match(r'^(.*)\&\s*=(?:.*)$', prefix) +sep = '\n' + ' ' * len(reg.group(1)) + '&= ' if reg else ' = ' try: - snip.rv = prefix + code + '\n&= ' + latex(simplify(latex2sympy(code).subs(variances).doit().doit()).evalf(subs=variances)) + snip.rv = prefix + code + sep + latex(simplify(latex2sympy(code).subs(variances).doit().doit()).evalf(subs=variances)) except: - snip.rv = prefix + code + '\n&= ' + snip.rv = prefix + code + sep ` endsnippet