Loading and Use - PGML
Contents
Loading the macro file
If you are going to use PGML in your problem, you must include "PGML.pl"
in the loadMacros()
call at the beginning of your problem.
loadMacros("PGML.pl");
If you don't, you'll get a message about PGML::Format2
not being defined.
Producing Text using PGML
The text that you want processed by PGML should be enclosed in BEGIN_PGML
and END_PGML
, each on a separate line. That is,
BEGIN_PGML ... your PGML code here ... END_PGML
You can have as many such PGML sections as you like within one problem.
Producing Solutions using PGML
The text of the solution should be enclosed in BEGIN_PGML_SOLUTION
and END_PGML_SOLUTION
, each on a separate line. That is,
BEGIN_PGML_SOLUTION ... your PGML code here ... END_PGML_SOLUTION
PGML's math formatting and command substitution commands are particularly useful here, as you can include intermediate computations directly within the PGML itself:
BEGIN_PGML_SOLUTION If [:x = [$a]:], then [:x+1 = ([$a]+1) = [@ $a+1 @]:] END_PGML_SOLUTION
There is no need to use a separate variable for the value of $a+1
, as the result of this computation will be inserted into the solution at that point.
Producing Hints using PGML
The text for the hint should be enclosed in BEGIN_PGML_HINT
and END_PGML_HINT
, each on a separate line. That is,
BEGIN_PGML_HINT ... your PGML code here ... END_PGML_HINT
As with solutions, you can perform computations and mathematical typesetting within the PGML hint:
BEGIN_PGML_HINT What happens when [:x = [@ $a - $b @]:]? END_PGML_HINT
There is no need for a separate variable for the value of $a-$b
.