--- loncom/homework/matchresponse.pm 2004/03/08 23:23:04 1.37 +++ loncom/homework/matchresponse.pm 2004/05/27 04:32:19 1.41 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Full matching style response # -# $Id: matchresponse.pm,v 1.37 2004/03/08 23:23:04 albertel Exp $ +# $Id: matchresponse.pm,v 1.41 2004/05/27 04:32:19 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -153,7 +153,7 @@ sub end_itemgroup { $table.=''; $Apache::matchresponse::itemtable{'display'}=$table; } elsif ($target eq 'tex') { - my $table=' \begin{description} '; + my $table=' \begin{description}\setlength{\leftmargin}{2em}\setlength{\labelwidth}{1em}\setlength{\itemsep}{0.5pt plus1pt minus2pt}\setlength{\listparindent}{0em} '; my $i=0; foreach my $name (@names) { $Apache::response::itemgroup{$name.'.text'}=~s/\$\$/\$/g; @@ -161,7 +161,8 @@ sub end_itemgroup { $Apache::response::itemgroup{$name.'.text'}; $i++; } - $table.=' \end{description} \strut '; + $table.=' \end{description} \strut '; + if ($Apache::lonhomework::type eq 'exam') {$table.='\vskip -13 mm \strut ';} $Apache::matchresponse::itemtable{'display'}=$table; } return $result; @@ -231,7 +232,7 @@ sub start_foilgroup { my $result; %Apache::response::foilgroup=(); $Apache::matchresponse::conceptgroup=0; - &Apache::response::setrandomnumber(); + &Apache::response::pushrandomnumber(); if ($target eq 'edit') { $result.=&Apache::edit::start_table($token) ."Collection Of FoilsDelete:" @@ -265,6 +266,7 @@ sub end_foilgroup { } elsif ($target eq 'edit') { $result=&Apache::edit::end_table(); } + &Apache::response::poprandomnumber(); return $result; } @@ -469,7 +471,7 @@ sub displayfoils { $question.=' '.$optionlist.$text."\n"; my @emptyItems = (); for (my $i=0;$i<=$#used_letters;$i++) {push @emptyItems, ' ';} - $question.='\vskip -2 mm\parbox{\textwidth}{\begin{enumerate}\item[\textbf{'.$internal_counter.'}.]\parbox{\textwidth - 5 mm}{'.&Apache::optionresponse::bubbles(\@used_letters,\@emptyItems).'}\end{enumerate}} \vskip -10 mm \strut '; + $question.='\vskip -1 mm\noindent\begin{enumerate}\item[\textbf{'.$internal_counter.'}.]'.&Apache::optionresponse::bubbles(\@used_letters,\@emptyItems).'\end{enumerate} \vskip -8 mm \strut '; $internal_counter++; } else { $question.=' '.$optionlist.$text.'\strut\\\\\strut '."\n"; @@ -487,14 +489,22 @@ sub displayfoils { $result='
'.$question.''.$result. '
'; } else { - $result='\begin{tabular}{p{\textwidth/2}p{\textwidth/2}}\begin{minipage}{\textwidth/2}'.$question.'\end{minipage}&\begin{minipage}{\textwidth/2}'.$result.'\end{minipage}\end{tabular}'; + my $tabsize=&Apache::londefdef::recalc($ENV{'form.textwidth'}); + $tabsize=~/(\d+\.?\d*)/; + $tabsize=$1/2.1; + $tabsize.=' mm '; + $result='\setlength{\tabcolsep}{1 mm}\begin{tabular}{p{'.$tabsize.'}p{'.$tabsize.'}}\begin{minipage}{'.$tabsize.'}'.$question.'\end{minipage}&\begin{minipage}{'.$tabsize.'}'.$result.'\end{minipage}\end{tabular}'; } } elsif ($result=&itemdisplay('left')) { if ($target ne 'tex') { $result='
'.$result.''.$question. '
'; } else { - $result='\begin{tabular}{p{\textwidth/2}p{\textwidth/2}}\begin{minipage}{\textwidth/2}'.$result.'\end{minipage}&\begin{minipage}{\textwidth/2}'.$question.'\end{minipage}\end{tabular}'; + my $tabsize=&Apache::londefdef::recalc($ENV{'form.textwidth'}); + $tabsize=~/(\d+\.?\d*)/; + $tabsize=$1/2.1; + $tabsize.=' mm '; + $result='\setlength{\tabcolsep}{1 mm}\begin{tabular}{p{'.$tabsize.'}p{'.$tabsize.'}}\begin{minipage}{'.$tabsize.'}'.$result.'\end{minipage}&\begin{minipage}{'.$tabsize.'}'.$question.'\end{minipage}\end{tabular}'; } } if ($target ne 'tex') {$result.="
";} else {$result.=' \\\\ ';} @@ -601,6 +611,7 @@ sub end_foil { if (defined($Apache::response::foilnames{$name})) { &Apache::lonxml::error(&mt("Foil name [_1] appears more than once. Foil names need to be unique.",$name)); } + $Apache::response::foilnames{$name}++; my $location =&Apache::lonxml::get_param('location',$parstack, $safeeval); if ( $Apache::matchresponse::conceptgroup