summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/stex/problem/problem.sty.ltxml
blob: 0ef5044333eb113a6171dd7d2bed326a2040f0e4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# -*- CPERL -*-
package LaTeXML::Package::Pool;
use strict;
use LaTeXML::Package;
RequirePackage('sref');
RegisterNamespace('prob'=>"http://omdoc.org/ontology/problems#");
RegisterDocumentNamespace('prob'=>"http://omdoc.org/ontology/problems#");
DefCMPEnvironment('{problem} OptionalKeyVals:problem',
     "<omdoc:exercise ?&KeyVal(#1,'id')(xml:id='&KeyVal(#1,'id')')()"
    .  "prob:dummy='for the namespace'"
    .   "?#locator(stex:srcref='#locator')()>"
    .    "?&KeyVal(#1,'title')(<dc:title ?#locator(stex:srcref='#locator')()>&KeyVal(#1,'title')</dc:title>)()"
    .    "?&KeyVal(#1,'min')(<omdoc:meta property='prob:solvedinminutes' "
    .       "?#locator(stex:srcref='#locator')()>&KeyVal(#1,'min')</omdoc:meta>)()"
    .    "?&KeyVal(#1,'pts')(<omdoc:meta property='prob:points' "
    .       "?#locator(stex:srcref='#locator')()>&KeyVal(#1,'pts')</omdoc:meta>)()"
    .   "<omdoc:CMP ?#locator(stex:srcref='#locator')()><omdoc:p>#body"
    ."</omdoc:exercise>\n");
DefKeyVal('soln','id','Semiverbatim');
DefKeyVal('soln','height','Semiverbatim');
DefKeyVal('soln','for','Semiverbatim');
DefCMPEnvironment('{solution} OptionalKeyVals:soln',
       "<omdoc:solution ?&KeyVals(#1,'for')(for='&KeyVal(#1,'for')')() ?#locator(stex:srcref='#locator')()>"
     . "#body"
     . "</omdoc:solution>");
DefCMPEnvironment('{exnote}',
   "<omdoc:hint ?#locator(stex:srcref='#locator')()>"
  .  "<omdoc:CMP ?#locator(stex:srcref='#locator')()>"
  .    "<omdoc:p>#body<omdoc:p>"
  .  "</omdoc:CMP>"
  ."</omdoc:hint>");
DefCMPEnvironment('{hint}',
   "<omdoc:hint ?#locator(stex:srcref='#locator')()>"
  .  "<omdoc:CMP ?#locator(stex:srcref='#locator')()>"
  .    "<omdoc:p>#body</omdoc:p>"
  .  "</omdoc:CMP>"
  ."</omdoc:hint>");
DefConstructor('\pts{}',"");
DefConstructor('\min{}',"");
DefKeyVal('prob','pts','Semiverbatim');
DefKeyVal('prob','min','Semiverbatim');
DefKeyVal('prob','title','Semiverbatim');
DefConstructor('\includeproblem OptionalKeyVals:prob Semiverbatim',
   "<omdoc:ref xref='#2' ?#locator(stex:srcref='#locator')() "
  .     "prob:dummy='for the namespace'>"
  .  "?&KeyVal(#1,'title')(<dc:title ?#locator(stex:srcref='#locator')()>&KeyVal(#1,'title')</dc:title>)()"
  .  "?&KeyVal(#1,'min')(<omdoc:meta property='prob:solvedinminutes' "
  .     "?#locator(stex:srcref='#locator')()>&KeyVal(#1,'min')</omdoc:meta>)()"
  .  "?&KeyVal(#1,'pts')(<omdoc:meta property='prob:points' "
  .     "?#locator(stex:srcref='#locator')()>&KeyVal(#1,'pts')</omdoc:meta>)()"
  ."</omdoc:ref>");
Tag('omdoc:exercise',afterOpen=>\&numberIt);
Tag('omdoc:solution',afterOpen=>\&numberIt);
Tag('omdoc:hint',afterOpen=>\&numberIt);
1;