--- loncom/xml/lonxml.pm	2004/01/28 16:10:26	1.298
+++ loncom/xml/lonxml.pm	2004/02/05 21:00:15	1.300
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # XML Parser Module 
 #
-# $Id: lonxml.pm,v 1.298 2004/01/28 16:10:26 albertel Exp $
+# $Id: lonxml.pm,v 1.300 2004/02/05 21:00:15 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -405,7 +405,7 @@ sub latex_special_symbols {
 	$string =~ s/_/ /g;
     } else {
 	$string=~s/\\ /\\char92 /g;
-	$string=~s/\^/\\\^ /g;
+	$string=~s/\^/\\\^\\strut /g;
 	$string=~s/\~/\\char126 /g;
 	#fixup & if it doesn't look like
         # { or α
@@ -1296,19 +1296,23 @@ sub display_title {
 sub debug {
     if ($Apache::lonxml::debug eq "1") {
 	$|=1;
-	Apache->request->print('<font size="-2"<pre>DEBUG:'.&HTML::Entities::encode($_[0])."</pre></font>\n");
+	my $request=$Apache::lonxml::request;
+	if (!$request) { $request=Apache->request; }
+	$request->print('<font size="-2"><pre>DEBUG:'.&HTML::Entities::encode($_[0])."</pre></font>\n");
     }
 }
 
 sub error {
   $errorcount++;
+  my $request=$Apache::lonxml::request;
+  if (!$request) { $request=Apache->request; }
   if (($Apache::lonxml::debug eq 1) || ($ENV{'request.state'} eq 'construct') ) {
     # If printing in construction space, put the error inside <pre></pre>
-      print $Apache::lonxml::warnings_error_header.
-	  "<b>ERROR:</b>".join("\n",@_)."\n";
+      $request->print($Apache::lonxml::warnings_error_header.
+		      "<b>ERROR:</b>".join("\n",@_)."\n");
       $Apache::lonxml::warnings_error_header='';
   } else {
-    print "<b>An Error occured while processing this resource. The instructor has been notified.</b> <br />";
+    $request->print("<b>An Error occured while processing this resource. The instructor has been notified.</b> <br />");
     #notify author
     &Apache::lonmsg::author_res_msg($ENV{'request.filename'},join('<br />',@_));
     #notify course
@@ -1333,8 +1337,10 @@ sub warning {
   
     if ($ENV{'form.grade_target'} ne 'tex') {
 	if ($ENV{'request.state'} eq 'construct' || $Apache::lonxml::debug) {
-	    print $Apache::lonxml::warnings_error_header.
-		"<b>W</b>ARNING<b>:</b>".join('<br />',@_)."<br />\n";
+	    my $request=$Apache::lonxml::request;
+	    if (!$request) { $request=Apache->request; }
+	    $request->print($Apache::lonxml::warnings_error_header.
+		      "<b>W</b>ARNING<b>:</b>".join('<br />',@_)."<br />\n");
 	    $Apache::lonxml::warnings_error_header='';
 	}
     }