Your analysis is exactly right. EV3() only passes the contents of \( \)
and \[ \] along to tth or dvipng. I'd be happy to have you extend this
capability. You may want to simplify the scanning operation used by EV3
during the rewrite. EV3 has not been changed much over the last 4years.
I suggest the following, as away of making these changes, and testing
them, without undo effort in constructing new infrastructure.
While developing, first copy EV3 and it's subroutines and rename it EV4() Now make changes in EV4().
You can test with problems that use
some text here ...............
(In fact BEGIN_TEXT is simply expanded to be TEXT(EV3(<<'END_TEXT'));
in the current WeBWorK rendering process.)
Once you have EV4 working to your satisfaction we will make a single change
in PGtranslator which changes the way BEGIN_TEXT is expanded, namely to use EV4 instead of EV3.
Most problems will still be useable in the new scheme. If someone wants
to write a problem for some reason that uses EV3 you can still do so,
although you will have to use the explicit call instead of the
BEGIN_TEXT short cut.
Incidently this is why EV2 is still around. Four or more years ago we
went from evaluating scalars before evaluating perl functions (EV2
mode) to evaluating the perl functions first, then evaluating the
scalars (EV3 mode). This corresponds more closely to what people
intuitively expect, although in most problems it doesn't make a
difference. Every now and then (but rarely) one wants the EV2 order of
Thanks for offering to look at EV3, John. Let us know if we can help in building EV4.
<| Post or View Comments |>