--- loncom/xml/londefdef.pm 2003/10/14 14:40:33 1.181
+++ loncom/xml/londefdef.pm 2003/10/21 19:40:32 1.185
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Tags Default Definition Module
#
-# $Id: londefdef.pm,v 1.181 2003/10/14 14:40:33 sakharuk Exp $
+# $Id: londefdef.pm,v 1.185 2003/10/21 19:40:32 albertel Exp $
#
#
# Copyright Michigan State University Board of Trustees
@@ -344,7 +344,7 @@ sub start_title {
}
if ($target eq 'meta') {
$currentstring='
';
- &start_output();
+ &start_output($target);
}
return $currentstring;
}
@@ -358,7 +358,7 @@ sub end_title {
$currentstring .= '}';
}
if ($target eq 'meta') {
- &end_output();
+ &end_output($target);
$currentstring='';
}
return $currentstring;
@@ -625,8 +625,7 @@ sub start_strong {
sub end_strong {
my ($target,$token) = @_;
my $currentstring = '';
- if ($target eq 'web') {
-
+ if ($target eq 'web') {
$currentstring = $token->[2];
} elsif ($target eq 'tex') {
$currentstring = '}';
@@ -655,7 +654,7 @@ sub start_h1 {
$currentstring .= $pre.'{\\'.$TeXsize.' \textbf{';
} elsif ($target eq 'meta') {
$currentstring='';
- &start_output();
+ &start_output($target);
}
return $currentstring;
}
@@ -677,7 +676,7 @@ sub end_h1 {
}
$currentstring .= '}}'.$post;
} elsif ($target eq 'meta') {
- &end_output();
+ &end_output($target);
$currentstring='';
}
return $currentstring;
@@ -1323,7 +1322,7 @@ sub start_sub {
if ($target eq 'web') {
$currentstring .= $token->[4];
} elsif ($target eq 'tex') {
- $currentstring .= "\$_{ ";
+ $currentstring .= "\$_{";
}
return $currentstring;
}
@@ -1334,7 +1333,7 @@ sub end_sub {
if ($target eq 'web') {
$currentstring .= $token->[2];
} elsif ($target eq 'tex') {
- $currentstring .= " }\$";
+ $currentstring .= "}\$";
}
return $currentstring;
}
@@ -1346,7 +1345,7 @@ sub start_sup {
if ($target eq 'web') {
$currentstring .= $token->[4];
} elsif ($target eq 'tex') {
- $currentstring .= "\$^{ ";
+ $currentstring .= "\$^{";
}
return $currentstring;
}
@@ -1357,7 +1356,7 @@ sub end_sup {
if ($target eq 'web') {
$currentstring .= $token->[2];
} elsif ($target eq 'tex') {
- $currentstring .= " }\$";
+ $currentstring .= "}\$";
}
return $currentstring;
}
@@ -1995,14 +1994,11 @@ sub end_td_tex {
$newdata=~s/\\vskip \d*\.?\d*\s*mm/THISISJUSTTEMPORARYSEPARATOR/g;
my @newdata=split(/THISISJUSTTEMPORARYSEPARATOR/,$newdata);
foreach my $elementdata (@newdata) {
- $elementdata=~s/^\s+(\S.*)/$1/;
- $elementdata=~s/(.*\S)\s+$/$1/;
- $elementdata=~s/(\s)+/$1/;
- my $lengthnewdata=1.8*length($elementdata);
+ my $lengthnewdata=1.8*LATEX_length($elementdata);
if ($lengthnewdata>$current_length) {$current_length=$lengthnewdata;}
}
} else {
- $current_length=1.8*length($data);
+ $current_length=1.8*LATEX_length($data);
}
$Apache::londefdef::table[-1]{'length'} .= $current_length.',';
$Apache::londefdef::table[-1]{'TeXlength'} .= '0,';
@@ -2163,7 +2159,9 @@ sub start_img {
my $filename = "/home/httpd/prtspool/$ENV{'user.name'}_$ENV{'user.domain'}_printout.dat";
$temp_file = Apache::File->new('>>'.$filename);
print $temp_file "$src\n";
- $currentstring .= '\vskip 1 mm \graphicspath{{/home/httpd/prtspool/}}\includegraphics[width='.$width_param.' mm]{'.$file.'} ';
+ $newsrc=~s/\/home\/httpd\/html\/res//;
+ $newsrc=~s/\/([^\/]+)\.(ps|eps)/\//;
+ $currentstring .= '\vskip 1 mm \graphicspath{{/home/httpd/prtspool'.$newsrc.'}}\includegraphics[width='.$width_param.' mm]{'.$file.'} ';
}
}
} else {
@@ -3330,5 +3328,26 @@ sub recalc {
return $value.' mm';
}
+sub LATEX_length {
+ my $garbage=shift;
+ $garbage=~s/^\s+(\S.*)/$1/;
+ $garbage=~s/(.*\S)\s+$/$1/;
+ $garbage=~s/(\s)+/$1/;
+ $garbage=~s/(\\begin{([^\}]+)}|\\end{([^\}]+)})//g;
+ $garbage=~s/(\$\_\{|\$\_|\$\^{|\$\^|\}\$|\$)//g;
+ $garbage=~s/(\\alpha|\\beta|\\gamma|\\delta|\\epsilon|\\verepsilon|\\zeta|\\eta|\\theta|\\vartheta|\\iota|\\kappa|\\lambda|\\mu|\\nu|\\xi|\\pi|\\varpi|\\rho|\\varrho|\\sigma|\\varsigma|\\tau|\\upsilon|\\phi|\\varphi|\\chi|\\psi|\\omega|\\Gamma|\\Delta|\\Theta|\\Lambda|\\Xi|\\Pi|\\Sigma|\\Upsilon|\\Phi|\\Psi|\\Omega)/1/g;
+ $garbage=~s/(\\pm|\\mp|\\times|\\div|\\cdot|\\ast|\\star|\\dagger|\\ddagger|\\amalg|\\cap|\\cup|\\uplus|\\sqcap|\\sqcup|\\vee|\\wedge|\\oplus|\\ominus|\\otimes|\\circ|\\bullet|\\diamond|\\lhd|\\rhd|\\unlhd|\\unrhd|\\oslash|\\odot|\\bigcirc|\\Box|\\Diamond|\\bigtriangleup|\\bigtriangledown|\\triangleleft|\\triangleright|\\setminus|\\wr)/1/g;
+ $garbage=~s/(\\le|\\ll|\\leq|\\ge|\\geq|\\gg|\\neq|\\doreq|\\sim|\\simeq|\\subset|\\subseteq|\\sqsubset|\\sqsubseteq|\\in|\\vdash|\\models|\\supset|\\supseteq|\\sqsupset|\\sqsupseteq|\\ni|\\dash|\\perp|\\approx|\\cong|\\equiv|\\propto|\\prec|\\preceq|\\parallel|\\asymp|\\smile|\\frown|\\bowtie|\\succ|\\succeq|\\mid)/1/g;
+ $garbage=~s/(\\not<|\\\\not\\le|\\not\\prec|\\not\\preceq|\\not\\subset|\\not\\subseteq|\\not\\sqsubseteq|\\not\\in|\\not>|\\not\\ge|\\not\\succ|\\notsucceq|\\not\\supset|\\notsupseteq|\\not\\sqsupseteq|\\notin|\\not=|\\not\\equiv|\\not\\sim|\\not\\simeq|\\not\\approx|\\not\\cong|\\not\\asymp)/1/g;
+ $garbage=~s/(\\leftarrow|\\gets|\\Leftarrow|\\rightarrow|\\to|\\Rightarrow|\\leftrightarrow|\\Leftrightarrow|\\mapsto|\\hookleftarrow|\\leftharpoonup|\\leftkarpoondown|\\rightleftharpoons|\\longleftarrow|\\Longleftarrow|\\longrightarrow|\\Longrightarrow|\\longleftrightarrow|\\Longleftrightarrow|\\longmapsto|\\hookrightarrow|\\rightharpoonup|\\rightharpoondown|\\uparrow|\\Uparrow|\\downarrow|\\Downarrow|\\updownarrow|\\Updownarrow|\\nearrow|\\searrow|\\swarrow|\\nwarrow)/1/g;
+ $garbage=~s/(\\aleph|\\hbar|\\imath|\\jmath|\\ell|\\wp|\\Re|\\Im|\\mho|\\prime|\\emptyset|\\nabla|\\surd|\\partial|\\top|\\bot|\\vdash|\\dashv|\\forall|\\exists|\\neg|\\flat|\\natural|\\sharp|\\\||\\angle|\\backslash|\\Box|\\Diamond|\\triangle|\\clubsuit|\\diamondsuit|\\heartsuit|\\spadesuit|\\Join|\\infty)/ /g;
+ $garbage=~s/(\\hat{([^}]+)}|\\check{([^}]+)}|\\dot{([^}]+)}|\\breve{([^}]+)}|\\acute{([^}]+)}|\\ddot{([^}]+)}|\\grave{([^}]+)}|\\tilde{([^}]+)}|\\mathring{([^}]+)}|\\bar{([^}]+)}|\\vec{([^}]+)})/$1/g;
+ my $value=length($garbage);
+ return $value;
+}
+
+
+
+
1;
__END__