version 1.227, 2004/07/12 17:57:36
|
version 1.229, 2004/07/15 15:13:52
|
Line 1153 sub start_br {
|
Line 1153 sub start_br {
|
$currentstring .= $token->[4]; |
$currentstring .= $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
my @tempo=@$tagstack; |
my @tempo=@$tagstack; |
my $sygnal=0; |
my $signal=0; |
for (my $i=$#tempo;$i>=0;$i--) { |
for (my $i=$#tempo;$i>=0;$i--) { |
if (($tempo[$i] eq 'b') || ($tempo[$i] eq 'strong') || |
if (($tempo[$i] eq 'b') || ($tempo[$i] eq 'strong') || |
($tempo[$i] eq 'ol') || ($tempo[$i] eq 'ul')) { |
($tempo[$i] eq 'ol') || ($tempo[$i] eq 'ul')) { |
$sygnal=1; |
$signal=1; |
last; |
last; |
} |
} |
} |
} |
if ($sygnal) { |
if ($signal) { |
$currentstring .= ' \vskip 0 mm '; |
$currentstring .= ' \vskip 0 mm '; |
} elsif ($$tagstack[-2] ne 'sub' && $$tagstack[-2] ne 'sup') { |
} elsif ($$tagstack[-2] ne 'sub' && $$tagstack[-2] ne 'sup') { |
$currentstring .= '\strut \\\\ \strut '; |
$currentstring .= '\strut \\\\ \strut '; |
Line 1803 sub start_table {
|
Line 1803 sub start_table {
|
$textwidth=$Apache::londefdef::table[-2]{'TeXlen'}[$Apache::londefdef::table[-2]{'row_number'}][$Apache::londefdef::table[-2]{'counter_columns'}]; |
$textwidth=$Apache::londefdef::table[-2]{'TeXlen'}[$Apache::londefdef::table[-2]{'row_number'}][$Apache::londefdef::table[-2]{'counter_columns'}]; |
} else { |
} else { |
#try to use all space not used before (minus 5% for LaTeX table internal) - rather silly |
#try to use all space not used before (minus 5% for LaTeX table internal) - rather silly |
my $textwidth=$Apache::londefdef::table[-2]{'width'}; |
$textwidth=$Apache::londefdef::table[-2]{'width'}; |
for (my $i=0;$i<$Apache::londefdef::table[-2]{'counter_columns'};$i++) { |
for (my $i=0;$i<$Apache::londefdef::table[-2]{'counter_columns'};$i++) { |
$textwidth=$textwidth-$Apache::londefdef::table[-2]{'TeXlen'}[0][$i]; |
$textwidth=$textwidth-$Apache::londefdef::table[-2]{'TeXlen'}[0][$i]; |
} |
} |
Line 1846 sub start_table {
|
Line 1846 sub start_table {
|
$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'}=[]; |
$Apache::londefdef::table[-1]{'objectlen'}=[]; |
$Apache::londefdef::table[-1]{'objectlen'}=[]; |
|
$Apache::londefdef::table[-1]{'objectsignal'}=[]; |
$Apache::londefdef::table[-1]{'maxlen'}=[]; |
$Apache::londefdef::table[-1]{'maxlen'}=[]; |
$Apache::londefdef::table[-1]{'minlen'}=[]; |
$Apache::londefdef::table[-1]{'minlen'}=[]; |
$Apache::londefdef::table[-1]{'content'}=[]; |
$Apache::londefdef::table[-1]{'content'}=[]; |
Line 1874 sub end_table {
|
Line 1875 sub end_table {
|
} |
} |
#free space and number of empty columns |
#free space and number of empty columns |
my ($available_space,$empty_columns)=($Apache::londefdef::table[-1]{'width'},0); |
my ($available_space,$empty_columns)=($Apache::londefdef::table[-1]{'width'},0); |
## &Apache::lonnet::logthis("Available space $Apache::londefdef::table[-1]{'width'}"); |
if ($#Apache::londefdef::table ne 0) {$available_space=0.9*$available_space;} |
for (my $jn=0;$jn<=$Apache::londefdef::table[-1]{'counter_columns'};$jn++) { |
for (my $jn=0;$jn<=$Apache::londefdef::table[-1]{'counter_columns'};$jn++) { |
if ($Apache::londefdef::table[-1]{'TeXlen'}[0][$jn]==0) { |
if ($Apache::londefdef::table[-1]{'TeXlen'}[0][$jn]==0) { |
$empty_columns++; |
$empty_columns++; |
Line 1905 sub end_table {
|
Line 1906 sub end_table {
|
$localmin=$Apache::londefdef::table[-1]{'objectlen'}[$in][$jn]; |
$localmin=$Apache::londefdef::table[-1]{'objectlen'}[$in][$jn]; |
} |
} |
} |
} |
if ($max_len[$jn]<$localmin) {$max_len[$jn]=$localmin;}#object size is bigger |
if ($max_len[$jn]<$localmin) { |
if ($min_len[$jn]<$localmin) {$min_len[$jn]=$localmin;}#object size is bigger |
$max_len[$jn]=$localmin; |
|
$Apache::londefdef::table[-1]{'objectsignal'}[$jn]=1; |
|
}#object size is bigger |
|
if ($min_len[$jn]<$localmin) { |
|
$min_len[$jn]=$localmin; |
|
$Apache::londefdef::table[-1]{'objectsignal'}[$jn]=1; |
|
}#object size is bigger |
if ($Apache::londefdef::table[-1]{'TeXlen'}[0][$jn]!=0) { |
if ($Apache::londefdef::table[-1]{'TeXlen'}[0][$jn]!=0) { |
$min_len[$jn]=0; |
$min_len[$jn]=0; |
$max_len[$jn]=0; |
$max_len[$jn]=0; |
Line 1939 sub end_table {
|
Line 1946 sub end_table {
|
$fwidth[$jn]=$min_len[$jn]; |
$fwidth[$jn]=$min_len[$jn]; |
} |
} |
} |
} |
|
#check if we have objects which can be scaled |
|
my $how_many_to_scale=0; |
|
my @to_scale=(); |
|
for (my $jn=0;$jn<=$#max_len;$jn++) { |
|
if ($Apache::londefdef::table[-1]{'objectsignal'}[$jn] eq '1') { |
|
$how_many_to_scale++; |
|
push @to_scale, $jn; |
|
} |
|
} |
|
if ($how_many_to_scale>0) { |
|
my $space_to_adjust=($space_neeeded-$available_space)/$how_many_to_scale; |
|
foreach my $jn (@to_scale) { |
|
for (my $in=0;$in<=$Apache::londefdef::table[-1]{'row_number'};$in++) { |
|
$Apache::londefdef::table[-1]{'content'}[$in][$jn]=~m/width\s*=\s*(\d+\.?\d*\s*(mm|cm|in|pc|pt)*)/; |
|
if ($1 ne '') { |
|
my $current_length=&recalc($1); |
|
$current_length=~/(\d+\.?\d*)/; |
|
$current_length=$current_length-$space_to_adjust; |
|
$Apache::londefdef::table[-1]{'content'}[$in][$jn]=~s/width\s*=\s*(\d+\.?\d*\s*(mm|cm|in|pc|pt)*)/width=$current_length mm/; |
|
} |
|
$Apache::londefdef::table[-1]{'content'}[$in][$jn]=~m/\[(\d+\.?\d*)\s*mm\]/; |
|
if ($1 ne '') { |
|
my $current_length=$1; |
|
$current_length=$current_length-$space_to_adjust; |
|
$Apache::londefdef::table[-1]{'content'}[$in][$jn]=~s/\[(\d+\.?\d*)\s*mm\]/\[$current_length mm\]/; |
|
} |
|
} |
|
$fwidth[$jn]=$fwidth[$jn]-$space_to_adjust; |
|
} |
|
} |
} else { |
} else { |
#step 3. adjustment over minimal + corrections |
#step 3. adjustment over minimal + corrections |
my $enlarge_coef=$available_space/$space_neeeded; |
my $enlarge_coef=$available_space/$space_neeeded; |
Line 2013 sub end_table {
|
Line 2050 sub end_table {
|
for (my $in=0;$in<=$Apache::londefdef::table[-1]{'row_number'};$in++) { |
for (my $in=0;$in<=$Apache::londefdef::table[-1]{'row_number'};$in++) { |
for (my $jn=0;$jn<=$#fwidth;$jn++) { |
for (my $jn=0;$jn<=$#fwidth;$jn++) { |
if ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'c') { |
if ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'c') { |
$output.='\begin{center}'; |
$output.='\vspace*{-6 mm}\begin{center}'; |
} elsif ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'r') { |
} elsif ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'r') { |
$output.=' \hfill \llap{' |
$output.=' \hfill \llap{' |
} |
} |
$output.=$Apache::londefdef::table[-1]{'content'}[$in][$jn]; |
$output.=$Apache::londefdef::table[-1]{'content'}[$in][$jn]; |
if ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'c') { |
if ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'c') { |
$output.='\end{center}'; |
$output.='\end{center}\vspace*{-6 mm}'; |
} elsif ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'r') { |
} elsif ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'r') { |
$output.='} '; |
$output.='} '; |
} |
} |
Line 2177 sub end_td_tex {
|
Line 2214 sub end_td_tex {
|
$current_length=2.5*&LATEX_length($data); |
$current_length=2.5*&LATEX_length($data); |
my @words=split(/ /,$data); |
my @words=split(/ /,$data); |
foreach my $word (@words) { |
foreach my $word (@words) { |
my $lengthword=2.5*&LATEX_length($word); |
my $lengthword=2*&LATEX_length($word); |
if ($min_length<$lengthword) {$min_length=$lengthword;} |
if ($min_length<$lengthword) {$min_length=$lengthword;} |
} |
} |
} |
} |