--- loncom/homework/matchresponse.pm 2003/02/20 09:55:07 1.4
+++ loncom/homework/matchresponse.pm 2003/03/17 19:54:20 1.5
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Full matching style response
#
-# $Id: matchresponse.pm,v 1.4 2003/02/20 09:55:07 albertel Exp $
+# $Id: matchresponse.pm,v 1.5 2003/03/17 19:54:20 sakharuk Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -140,6 +140,17 @@ sub end_itemgroup {
}
$table.='';
$Apache::matchresponse::itemtable{'display'}=$table;
+ } elsif ($target eq 'tex') {
+ my $table=' \\\\\\\\ \begin{tabular}{ll} ';
+ my $i=0;
+ foreach my $name (@names) {
+ $table.=' '.$alphabet[$i].' & '.
+ $Apache::response::itemgroup{$name.'.text'}.
+ ' \\\\ ';
+ $i++;
+ }
+ $table.=' \end{tabular} \\\\ ';
+ $Apache::matchresponse::itemtable{'display'}=$table;
} elsif ($target eq 'edit') { $result=&Apache::edit::end_table(); }
return $result;
}
@@ -147,7 +158,7 @@ sub end_itemgroup {
sub start_item {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
my $result='';
- if ($target eq 'web' ) {
+ if ($target eq 'web' || $target eq 'tex') {
&Apache::lonxml::startredirection;
} elsif ($target eq 'edit') {
my $randomize=&Apache::lonxml::get_param('randomize',$parstack,
@@ -173,11 +184,11 @@ sub end_item {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
my $text ='';
my $result = '';
- if ($target eq 'web') {
+ if ($target eq 'web' || $target eq 'tex') {
$text=&Apache::lonxml::endredirection;
}
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' ||
- $target eq 'edit') {
+ $target eq 'edit' || $target eq 'tex') {
my $name = &Apache::lonxml::get_param('name',$parstack,$safeeval);
my $location=&Apache::lonxml::get_param('location',$parstack,
$safeeval);
@@ -222,11 +233,11 @@ sub start_foilgroup {
sub end_foilgroup {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
my $result;
- if ($target eq 'grade' || $target eq 'web' || $target eq 'answer') {
+ if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' || $target eq 'tex') {
my $max = &Apache::lonxml::get_param('max',$parstack,$safeeval,'-2');
my $randomize = &Apache::lonxml::get_param('randomize',$parstack,
$safeeval,'-2');
- if ($target eq 'web') {
+ if ($target eq 'web' || $target eq 'tex') {
$result=&displayfoils($target,$max,$randomize);
} elsif ($target eq 'answer' ) {
$result=&displayanswers($max,$randomize);
@@ -356,7 +367,11 @@ sub displayfoils {
my $text=$Apache::response::foilgroup{$name.'.text'};
my $value=$Apache::response::foilgroup{$name.'.value'};
my $letter=$name_letter_map{$value};
- $question.='
'.$letter.':'.$text;
+ if ($target eq 'tex') {
+ $question.=' \\\\ '.$letter.':'.$text;
+ } else {
+ $question.='
'.$letter.':'.$text;
+ }
}
} else {
my $i = 0;
@@ -365,23 +380,37 @@ sub displayfoils {
my $part=$Apache::inputtags::part;
my $lastresponse=$Apache::lonhomework::history{"resource.$part.$id.submission"};
my %lastresponse=&Apache::lonnet::str2hash($lastresponse);
+ my $localcount = 1;
foreach my $name (@whichfoils) {
my $lastopt=$lastresponse{$name};
my $last_letter=$name_letter_map{$lastopt};
- my $optionlist="\n";
+ my $optionlist = '';
+ if ($target ne 'tex') {$optionlist="\n";} else {$optionlist=' '.$localcount.'. '; $localcount++;}
my $option;
foreach $option (sort(keys(%letter_name_map))) {
if ($option eq $last_letter) {
- $optionlist.="\n";
+ if ($target ne 'tex') {
+ $optionlist.="\n";
+ }
} else {
- $optionlist.="\n";
+ if ($target ne 'tex') {
+ $optionlist.="\n";
+ }
}
}
- $optionlist='\n";
+ if ($target ne 'tex') {
+ $optionlist='\n";
+ } else {
+ $optionlist=$optionlist;
+ }
my $text=$Apache::response::foilgroup{$name.'.text'};
- $question.='
'.$optionlist.$text."\n";
+ if ($target ne 'tex') {
+ $question.='
'.$optionlist.$text."\n";
+ } else {
+ $question.=' \\\\ '.$optionlist.$text."\n";
+ }
$temp++;
}
}
@@ -396,7 +425,7 @@ sub displayfoils {
$result='
'.$result.' | '.$question. ' |