[LON-CAPA-users] math rendering engine
Stefan Bisitz
lon-capa-users@mail.lon-capa.org
Tue, 19 Jan 2010 11:04:38 +0100
Hi again,
Why "pre-parse" anyway?
Even better:
1)
<script type="loncapa/perl">
[...]
$displayfunction1 = '(x^2 - 1)^2';
[...]
and 2)
[...]
such that <m eval="on">$ (f \circ g)(x) = $displayfunction $</m>.
[...]
Stefan Bisitz
On 19.01.2010 10:32, Stefan Bisitz wrote:
> Hi Justin,
>
> It's quite simple to solve your display issues. You parse the formula
> twice:
> 1) $displayfunction1 = &xmlparse('<m>$(x^2 - 1)^2$</m>');
> [...]
>
> 2) <m eval="on">$(f \circ g)(x) = $displayfunction $</m>
>
> Just change to
> <m>$ (f \circ g)(x) = $</m> $displayfunction
>
> $displayfunction is already parsed and must not be included again in the
> <m> tag.
>
> tth as well as mimetex works now (tested on bleeding edge machine).
>
> And yes, please avoid to use jsmath hardcoded in the problem. Let the
> CCs or students decide.
>
> Stefan Bisitz
>
>
>
> On 19.01.2010 09:59, Justin Gray wrote:
>> When displaying equations, setting the display attribute within the
>> <m> tag to "jsMath" is generally discouraged as it requires users to have
>> installed jsmath software on their computer and will override their
>> preferences on how math equations are displayed.
>>
>> I have tried viewing the problem below on several computers and jsMath
>> seems to be the only math rendering engine that lets me view the
>> equations properly. (With tth the equations do not show up at all and
>> with mimetex the equations are incomprehensible.) I am reluctant to
>> force users to jsMath for this problem. Perhaps there is another way
>> to remedy this problem?
>>
>> Any suggestions are appreciated.
>>
>> Thanks,
>> Justin
>>
>> Justin Gray | Senior Lecturer
>> Department of Mathematics | Simon Fraser University
>> 8888 University Drive, Burnaby | V5A 1S6 | Canada
>> Tel: +1 778.782.4237
>>
>> <problem>
>> <script type="loncapa/perl">
>> $function1 = "(x^2 - 1)^2";
>> $function2 = "sqrt(x^2 - 1)";
>> $function3 = "3/(2 + x^2)";
>> $function4 = "2/(3 + sqrt(1 + x))";
>> $displayfunction1 = &xmlparse('<m>$(x^2 - 1)^2$</m>');
>> $displayfunction2 = &xmlparse('<m>$\sqrt{x^2 - 1}$</m>');
>> $displayfunction3 = &xmlparse('<m>$\displaystyle \frac{3}{2 +
>> x^2}$</m>');
>> $displayfunction4 = &xmlparse('<m>$\displaystyle \frac{2}{3 + \sqrt{1
>> + x}}$</m>');
>> $example1=&xmlparse('Many answers are possible. One example would be
>> <m>$f(x) = x^2, \quad g(x) = x^2 - 1$</m>');
>> $example2=&xmlparse('Many answers are possible. One example would be
>> <m>$f(x) = \sqrt{x}, \quad g(x) = x^2 - 1$</m>');
>> $example3=&xmlparse('Many answers are possible. One example would be
>> <m>$f(x) = 3/x, \quad g(x) = 2 + x^2$</m>');
>> $example4=&xmlparse('Many answers are possible. One example would be
>> <m>$f(x) = 2/(3 + x), \quad g(x) = \sqrt{1 + x}$</m>');
>> $n = &random(1,4,1);
>> $function =
>> &choose($n,"$function1","$function2","$function3","$function4");
>> $displayfunction =
>> &choose($n,"$displayfunction1","$displayfunction2","$displayfunction3","$displayfunction4");
>>
>> $example = &choose($n,"$example1","$example2","$example3","$example4");
>> </script>
>>
>> <startouttext /><p>Give an example of two nontrivial functions
>> <m>$f$</m> and <m>$g$</m> such that <m eval="on">$(f \circ g)(x) =
>> $displayfunction $</m>.</p>Enter your answer in the form
>> <p><b>expression1,expression2</b></p> where <m>$f(x) = $</m>
>> <b>expression1</b> and <m>$g(x) = $</m>
>> <b>expression2</b>.<p></p><endouttext />
>>
>> <mathresponse answerdisplay="$example" cas="maxima" args="$function"
>> id="11">
>> <answer>f(x) := RESPONSE[1];
>> g(x) := RESPONSE[2];
>> h(x) := LONCAPALIST[1];
>> composition:is(trigsimp(f(g(x)) - h(x)) = 0);
>> fnottrivial:is(not(f(x) = x));
>> gnottrivial:is(not(g(x) = x));
>> composition and fnottrivial and gnottrivial;</answer>
>> <textline readonly="no" size="20" />
>> <hintgroup showoncorrect="no">
>> <mathhint name="composition not equal" cas="maxima"
>> args="$function" id="12">
>> <answer>f(x) := RESPONSE[1];
>> g(x) := RESPONSE[2];
>> h(x) := LONCAPALIST[1];
>> is(not(f(g(x)) = h(x)));</answer>
>> </mathhint>
>> <hintpart on="composition not equal">
>> <startouttext /><p>Your example does not satisfy <m eval="on">$(f
>> \circ g)(x) = f(g(x)) = $displayfunction $</m>.</p><endouttext />
>> </hintpart>
>> </hintgroup>
>> <hintgroup showoncorrect="no">
>> <mathhint name="f trivial" cas="maxima" id="13">
>> <answer>f(x) := RESPONSE[1];
>> is(f(x) = x);</answer>
>> </mathhint>
>> <hintpart on="f trivial">
>> <startouttext /><p>The question asks for nontrivial functions, and
>> so you cannot use <m>$f(x) = x$</m>.</p><endouttext />
>> </hintpart>
>> </hintgroup>
>> <hintgroup showoncorrect="no">
>> <mathhint name="g trivial" cas="maxima" id="14">
>> <answer>g(x) := RESPONSE[2];
>> is(g(x) = x);</answer>
>> </mathhint>
>> <hintpart on="g trivial">
>> <startouttext /><p>The question asks for nontrivial functions, and
>> so you cannot use <m>$g(x) = x$</m>.</p><endouttext />
>> </hintpart>
>> </hintgroup>
>> </mathresponse>
>> </problem>
>>
>>
>>
>
> _______________________________________________
> LON-CAPA-users mailing list
> LON-CAPA-users@mail.lon-capa.org
> http://mail.lon-capa.org/mailman/listinfo/lon-capa-users