Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork7.9k
Closed
Milestone
Description
Problem
Is it possible to render fractions in display style using\genfrac
?
Thestyle
argument of the_genfrac
function in_mathtext.py
is received as anHlist
. As a result, fractions will never use display style (sincestyle
andself._MathStyle.DISPLAYSTYLE
will always compare unequal).
import matplotlib.pyplot as pltfig = plt.figure()fig.text(.2, .5, r'$\genfrac{}{}{0}{0}{1}{2}$')fig.text(.3, .5, r'$\genfrac{}{}{1}{1}{1}{2}$')plt.show()
Proposed solution
Change
p.genfrac <<= r"\genfrac" - ( "{" + Optional(p.ambi_delim | p.left_delim)("ldelim") + "}" + "{" + Optional(p.ambi_delim | p.right_delim)("rdelim") + "}" + "{" + p.float_literal("rulesize") + "}" + p.simple_group("style") # <- change this line + p.required_group("num") + p.required_group("den") | Error("Expected " r"\genfrac{ldelim}{rdelim}{rulesize}{style}{num}{den}"))
to
p.genfrac <<= r"\genfrac" - ( "{" + Optional(p.ambi_delim | p.left_delim)("ldelim") + "}" + "{" + Optional(p.ambi_delim | p.right_delim)("rdelim") + "}" + "{" + p.float_literal("rulesize") + "}" + "{" + p.int_literal("style") + "}" # <- changed this line + p.required_group("num") + p.required_group("den") | Error("Expected " r"\genfrac{ldelim}{rdelim}{rulesize}{style}{num}{den}"))
withp.int_literal
defined using a regex (just like howp.float_literal
is defined), following which, the_genfrac
function should obtain the enumeration variable from the value. We can hard-code the enumerations
display_style = 0text_style = 2script_style = 4script_script_style = 6
since those are the values specified inTeX: The Program.
I could try to create a PR for this, but my knowledge of language parsing is very limited.