version 1.206, 2004/04/01 16:11:58
|
version 1.216, 2004/05/21 21:06:59
|
Line 633 sub start_h1 {
|
Line 633 sub start_h1 {
|
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
my $pre; |
my $pre; |
my $align=lc(&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1)); |
my $align=lc(&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1)); |
if (($align eq 'center') || (not defined $align)) { |
if ($align eq 'center') { |
$pre='\begin{center}'; |
$pre='\begin{center}'; |
} elsif ($align eq 'left') { |
} elsif ($align eq 'left') { |
$pre='\rlap{'; |
$pre='\rlap{'; |
Line 656 sub end_h1 {
|
Line 656 sub end_h1 {
|
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring .= $token->[2]; |
$currentstring .= $token->[2]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
my $post; |
my $post='\vskip 0 mm '; |
my $align=&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1); |
my $align=&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1); |
if (($align eq 'center') || (not defined $align)) { |
if ($align eq 'center') { |
$post='\end{center}'; |
$post='\end{center}'; |
} elsif ($align eq 'left') { |
} elsif ($align eq 'left') { |
$post='} \hfill'.'\vskip 0 mm '; |
$post='} \hfill'.'\vskip 0 mm '; |
Line 682 sub start_h2 {
|
Line 682 sub start_h2 {
|
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
my $pre; |
my $pre; |
my $align=&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1); |
my $align=&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1); |
if (($align eq 'center') || (not defined $align)) { |
if ($align eq 'center') { |
$pre='\begin{center}'; |
$pre='\begin{center}'; |
} elsif ($align eq 'left') { |
} elsif ($align eq 'left') { |
$pre='\rlap{'; |
$pre='\rlap{'; |
Line 702 sub end_h2 {
|
Line 702 sub end_h2 {
|
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring .= $token->[2]; |
$currentstring .= $token->[2]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
my $post; |
my $post='\vskip 0 mm '; |
my $align=&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1); |
my $align=&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1); |
if (($align eq 'center') || (not defined $align)) { |
if ($align eq 'center') { |
$post='\end{center}'; |
$post='\end{center}'; |
} elsif ($align eq 'left') { |
} elsif ($align eq 'left') { |
$post='} \hfill'.'\vskip 0 mm '; |
$post='} \hfill'.'\vskip 0 mm '; |
Line 725 sub start_h3 {
|
Line 725 sub start_h3 {
|
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
my $pre; |
my $pre; |
my $align=&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1); |
my $align=&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1); |
if (($align eq 'center') || (not defined $align)) { |
if ($align eq 'center') { |
$pre='\begin{center}'; |
$pre='\begin{center}'; |
} elsif ($align eq 'left') { |
} elsif ($align eq 'left') { |
$pre='\rlap{'; |
$pre='\rlap{'; |
Line 745 sub end_h3 {
|
Line 745 sub end_h3 {
|
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring .= $token->[2]; |
$currentstring .= $token->[2]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
my $post; |
my $post='\vskip 0 mm '; |
my $align=&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1); |
my $align=&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1); |
if (($align eq 'center') || (not defined $align)) { |
if ($align eq 'center') { |
$post='\end{center}'; |
$post='\end{center}'; |
} elsif ($align eq 'left') { |
} elsif ($align eq 'left') { |
$post='} \hfill'.'\vskip 0 mm '; |
$post='} \hfill'.'\vskip 0 mm '; |
Line 768 sub start_h4 {
|
Line 768 sub start_h4 {
|
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
my $pre; |
my $pre; |
my $align=&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1); |
my $align=&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1); |
if (($align eq 'center') || (not defined $align)) { |
if ($align eq 'center') { |
$pre='\begin{center}'; |
$pre='\begin{center}'; |
} elsif ($align eq 'left') { |
} elsif ($align eq 'left') { |
$pre='\rlap{'; |
$pre='\rlap{'; |
Line 788 sub end_h4 {
|
Line 788 sub end_h4 {
|
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring .= $token->[2]; |
$currentstring .= $token->[2]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
my $post; |
my $post='\vskip 0 mm '; |
my $align=&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1); |
my $align=&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1); |
if (($align eq 'center') || (not defined $align)) { |
if ($align eq 'center') { |
$post='\end{center}'; |
$post='\end{center}'; |
} elsif ($align eq 'left') { |
} elsif ($align eq 'left') { |
$post='} \hfill'.'\vskip 0 mm '; |
$post='} \hfill'.'\vskip 0 mm '; |
Line 811 sub start_h5 {
|
Line 811 sub start_h5 {
|
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
my $pre; |
my $pre; |
my $align=&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1); |
my $align=&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1); |
if (($align eq 'center') || (not defined $align)) { |
if ($align eq 'center') { |
$pre='\begin{center}'; |
$pre='\begin{center}'; |
} elsif ($align eq 'left') { |
} elsif ($align eq 'left') { |
$pre='\rlap{'; |
$pre='\rlap{'; |
Line 831 sub end_h5 {
|
Line 831 sub end_h5 {
|
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring .= $token->[2]; |
$currentstring .= $token->[2]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
my $post; |
my $post='\vskip 0 mm '; |
my $align=&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1); |
my $align=&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1); |
if (($align eq 'center') || (not defined $align)) { |
if ($align eq 'center') { |
$post='\end{center}'; |
$post='\end{center}'; |
} elsif ($align eq 'left') { |
} elsif ($align eq 'left') { |
$post='} \hfill'.'\vskip 0 mm '; |
$post='} \hfill'.'\vskip 0 mm '; |
Line 854 sub start_h6 {
|
Line 854 sub start_h6 {
|
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
my $pre; |
my $pre; |
my $align=&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1); |
my $align=&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1); |
if (($align eq 'center') || (not defined $align)) { |
if ($align eq 'center') { |
$pre='\begin{center}'; |
$pre='\begin{center}'; |
} elsif ($align eq 'left') { |
} elsif ($align eq 'left') { |
$pre='\rlap{'; |
$pre='\rlap{'; |
Line 874 sub end_h6 {
|
Line 874 sub end_h6 {
|
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring .= $token->[2]; |
$currentstring .= $token->[2]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
my $post; |
my $post='\vskip 0 mm '; |
my $align=&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1); |
my $align=&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1); |
if (($align eq 'center') || (not defined $align)) { |
if ($align eq 'center') { |
$post='\end{center}'; |
$post='\end{center}'; |
} elsif ($align eq 'left') { |
} elsif ($align eq 'left') { |
$post='} \hfill'.'\vskip 0 mm '; |
$post='} \hfill'.'\vskip 0 mm '; |
Line 1110 sub start_p {
|
Line 1110 sub start_p {
|
$currentstring='\makebox['.$ENV{'form.textwidth'}.']{\hfill\llap{'; |
$currentstring='\makebox['.$ENV{'form.textwidth'}.']{\hfill\llap{'; |
} elsif ($align eq 'left') { |
} elsif ($align eq 'left') { |
$currentstring='\noindent\makebox['.$ENV{'form.textwidth'}.']{\rlap{'; |
$currentstring='\noindent\makebox['.$ENV{'form.textwidth'}.']{\rlap{'; |
} |
} else { |
|
$currentstring='\par '; |
|
} |
my $signal=1;#<p> does not work inside <b>...</b> |
my $signal=1;#<p> does not work inside <b>...</b> |
foreach my $tag (@$tagstack) {if (lc($tag) eq 'b') {$signal=0;} |
foreach my $tag (@$tagstack) {if (lc($tag) eq 'b') {$signal=0;} |
if (!$signal) {$currentstring = '';} |
if (!$signal) {$currentstring = '';} |
Line 1812 sub start_table {
|
Line 1814 sub start_table {
|
} |
} |
#table's border |
#table's border |
my $border = &Apache::lonxml::get_param('border',$parstack,$safeeval); |
my $border = &Apache::lonxml::get_param('border',$parstack,$safeeval); |
my $permission=&Apache::lonxml::get_param('DropEmptyColumns',$parstack,$safeeval,undef,0); |
my $permission=&Apache::lonxml::get_param('TeXDropEmptyColumns',$parstack,$safeeval,undef,0); |
unless (defined $border) { $border = 0; } |
unless (defined $border) { $border = 0; } |
if ($border) { |
if ($border) { |
$Apache::londefdef::table[-1]{'hinc'} = '\hline '; |
$Apache::londefdef::table[-1]{'hinc'} = '\hline '; |
Line 1824 sub start_table {
|
Line 1826 sub start_table {
|
$Apache::londefdef::table[-1]{'vvinc'} = ''; |
$Apache::londefdef::table[-1]{'vvinc'} = ''; |
} |
} |
if ($#Apache::londefdef::table==0) { |
if ($#Apache::londefdef::table==0) { |
$Apache::londefdef::table[-1]{'output'}='\setlength{\tabcolsep}{1 mm}'; |
$Apache::londefdef::table[-1]{'output'}='\newline\setlength{\tabcolsep}{1 mm}'; |
} |
} |
$Apache::londefdef::table[-1]{'output'}.=' \noindent \begin{tabular} '; |
$Apache::londefdef::table[-1]{'output'}.=' \noindent \begin{tabular} '; |
$Apache::londefdef::table[-1]{'TeXlen'}=[]; |
$Apache::londefdef::table[-1]{'TeXlen'}=[]; |
Line 1904 sub end_table {
|
Line 1906 sub end_table {
|
$space_neeeded=$space_neeeded+$max_len[$jn]; |
$space_neeeded=$space_neeeded+$max_len[$jn]; |
} |
} |
if ($space_neeeded<=$available_space) { |
if ($space_neeeded<=$available_space) { |
## &Apache::lonnet::logthis("I am in position 1: $space_neeeded <= $available_space"); |
|
for (my $jn=0;$jn<=$#max_len;$jn++) { |
for (my $jn=0;$jn<=$#max_len;$jn++) { |
if ($fwidth[$jn]==0) { |
if ($fwidth[$jn]==0) { |
$fwidth[$jn]=$max_len[$jn]; |
$fwidth[$jn]=$max_len[$jn]; |
Line 1917 sub end_table {
|
Line 1918 sub end_table {
|
$space_neeeded+=$min_len[$jn]; |
$space_neeeded+=$min_len[$jn]; |
} |
} |
if ($space_neeeded>$available_space) { |
if ($space_neeeded>$available_space) { |
## &Apache::lonnet::logthis("I am in position 2"); |
|
$WARNING=' \textbf{NOT ENOUGH SPACE FOR TABLE} '; |
$WARNING=' \textbf{NOT ENOUGH SPACE FOR TABLE} '; |
for (my $jn=0;$jn<=$#max_len;$jn++) { |
for (my $jn=0;$jn<=$#max_len;$jn++) { |
if ($fwidth[$jn]==0) { |
if ($fwidth[$jn]==0) { |
Line 1926 sub end_table {
|
Line 1926 sub end_table {
|
} |
} |
} else { |
} else { |
#step 3. adjustment over minimal + corrections |
#step 3. adjustment over minimal + corrections |
## &Apache::lonnet::logthis("I am in position 3"); |
|
my $enlarge_coef=$available_space/$space_neeeded; |
my $enlarge_coef=$available_space/$space_neeeded; |
my $acsessive=0; |
my $acsessive=0; |
for (my $jn=0;$jn<=$#min_len;$jn++) { |
for (my $jn=0;$jn<=$#min_len;$jn++) { |
Line 1967 sub end_table {
|
Line 1966 sub end_table {
|
} |
} |
} |
} |
#removing of empty columns if allowed |
#removing of empty columns if allowed |
my $permission=&Apache::lonxml::get_param('DropEmptyColumns',$parstack,$safeeval,undef,0); |
my $permission=&Apache::lonxml::get_param('TeXDropEmptyColumns',$parstack,$safeeval,undef,0); |
if ($permission eq 'yes') { |
if ($permission eq 'yes') { |
my @cleaned_table=(); |
my @cleaned_table=(); |
my @cleaned_header=(); |
my @cleaned_header=(); |
Line 2271 sub start_img {
|
Line 2270 sub start_img {
|
} |
} |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src); |
$src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src); |
|
#if uploaded restore the path |
|
if ($src=~/^\/uploaded\/([^\/]+)\/([^\/]+)\/simplepage\/([^\/]+)$/) { |
|
$src=&Apache::loncommon::propath($1,$2).'/userfiles/simplepage/'.$3; |
|
} elsif ($src=~/^\/uploaded\/([^\/]+)\/([^\/]+)\/aboutme\/([^\/]+)$/) { |
|
$src=&Apache::loncommon::propath($1,$2).'/userfiles/aboutme/'.$3; |
|
} |
#if original gif/jpg/png file exist do following: |
#if original gif/jpg/png file exist do following: |
if (-e $src) { |
if (-e $src) { |
#what is the image size? |
#what is the image size? |
Line 2333 sub start_img {
|
Line 2338 sub start_img {
|
if ($height) { $currentstring.=' height="'.$height.'" '; } |
if ($height) { $currentstring.=' height="'.$height.'" '; } |
$currentstring .= ' />'; |
$currentstring .= ' />'; |
} elsif ($target eq 'modified') { |
} elsif ($target eq 'modified') { |
my $constructtag=&Apache::edit::get_new_args($token,$parstack, |
my ($osrc,$owidth,$oheight)= |
$safeeval,'src','alt', |
($token->[2]{'src'},$token->[2]{'width'},$token->[2]{'height'}); |
'TeXwidth','TeXheight', |
my $ctag=&Apache::edit::get_new_args($token,$parstack, |
'width','height'); |
$safeeval,'src','alt', |
$src=$token->[2]{'src'}; |
'TeXwidth','TeXheight', |
if (!$token->[2]{'width'} && !$token->[2]{'height'}) { |
'width','height'); |
$src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src); |
my ($nsrc,$nwidth,$nheight)= |
&image_replication($src); |
($token->[2]{'src'},$token->[2]{'width'},$token->[2]{'height'}); |
if (-e $src) { |
my $loc=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$nsrc); |
my $image = Image::Magick->new; |
&image_replication($loc); |
my ($width, $height, $size, $format) = $image->Ping($src); |
my ($iwidth,$iheight); |
if ($width && $height) { |
if (-e $loc) { |
$token->[2]{'width'} =$width; |
my $image = Image::Magick->new; |
$token->[2]{'height'}=$height; |
$image->Read($loc); |
$constructtag=1; |
($iwidth, $iheight) = ($image->Get('width'), |
|
$image->Get('height')); |
|
} |
|
if ($osrc ne $nsrc || (!$nwidth && !$nheight)) { |
|
# changed image or no size specified, |
|
# if they didn't explicitly change the |
|
# width or height use the ones from the image |
|
if ($iwidth && $iheight) { |
|
if ($owidth == $nwidth || (!$nwidth && !$nheight)) { |
|
$token->[2]{'width'} = $iwidth;$ctag=1; |
|
} |
|
if ($oheight == $nheight || (!$nwidth && !$nheight)) { |
|
$token->[2]{'height'}=$iheight;$ctag=1; |
} |
} |
} |
} |
} |
} |
if ($constructtag) {$currentstring=&Apache::edit::rebuild_tag($token);} |
my ($cwidth,$cheight)=($token->[2]{'width'},$token->[2]{'height'}); |
|
# if we don't have a width or height |
|
if ($iwidth && $cwidth && !$cheight) { |
|
$token->[2]{'height'}=int(($cwidth/$iwidth)*$iheight);$ctag=1; |
|
} |
|
if ($iheight && $cheight && !$cwidth) { |
|
$token->[2]{'width'}=int(($cheight/$iheight)*$iwidth);$ctag=1; |
|
} |
|
if ($ctag) {$currentstring=&Apache::edit::rebuild_tag($token);} |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
Line 3520 sub eps_generation {
|
Line 3545 sub eps_generation {
|
$newsrc=~s/\/home\/([^\/]*)\/public_html\//\/$1\//; |
$newsrc=~s/\/home\/([^\/]*)\/public_html\//\/$1\//; |
$newsrc=~s/\/\.\//\//; |
$newsrc=~s/\/\.\//\//; |
$newsrc=~s/\/([^\/]+)\.(ps|eps)/\//; |
$newsrc=~s/\/([^\/]+)\.(ps|eps)/\//; |
|
if ($newsrc=~/\/home\/httpd\/lonUsers\//) { |
|
$newsrc=~s/\/home\/httpd\/lonUsers//; |
|
$newsrc=~s/\/([^\/]+)\/(\w)\/(\w)\/(\w)\//\/$1\//; |
|
} |
return ' \graphicspath{{/home/httpd/prtspool'.$newsrc.'}}\includegraphics[width='.$width_param.' mm]{'.$file.'} '; |
return ' \graphicspath{{/home/httpd/prtspool'.$newsrc.'}}\includegraphics[width='.$width_param.' mm]{'.$file.'} '; |
} |
} |
|
|