Revision ce2cccd9
Von Moritz Bunkus vor fast 14 Jahren hinzugefügt
SL/Template/LaTeX.pm | ||
---|---|---|
4 | 4 |
|
5 | 5 |
use strict; |
6 | 6 |
|
7 |
use Cwd; |
|
8 |
|
|
7 | 9 |
sub new { |
8 | 10 |
my $type = shift; |
9 | 11 |
|
... | ... | |
374 | 376 |
$form->{tmpfile} =~ s/\Q$userspath\E\///g; |
375 | 377 |
|
376 | 378 |
my $latex = $self->_get_latex_path(); |
379 |
my $old_home = $ENV{HOME}; |
|
380 |
$ENV{HOME} = $userspath =~ m|^/| ? $userspath : getcwd() . "/" . $userspath; |
|
377 | 381 |
|
378 | 382 |
for (my $run = 1; $run <= 2; $run++) { |
379 | 383 |
system("${latex} --interaction=nonstopmode $form->{tmpfile} " . |
380 | 384 |
"> $form->{tmpfile}.err"); |
381 | 385 |
if ($?) { |
386 |
$ENV{HOME} = $old_home; |
|
382 | 387 |
$self->{"error"} = $form->cleanup(); |
383 | 388 |
$self->cleanup(); |
384 | 389 |
return 0; |
... | ... | |
388 | 393 |
$form->{tmpfile} =~ s/tex$/dvi/; |
389 | 394 |
|
390 | 395 |
system("dvips $form->{tmpfile} -o -q > /dev/null"); |
396 |
$ENV{HOME} = $old_home; |
|
397 |
|
|
391 | 398 |
if ($?) { |
392 | 399 |
$self->{"error"} = "dvips : $!"; |
393 | 400 |
$self->cleanup(); |
... | ... | |
415 | 422 |
$form->{tmpfile} =~ s/\Q$userspath\E\///g; |
416 | 423 |
|
417 | 424 |
my $latex = $self->_get_latex_path(); |
425 |
my $old_home = $ENV{HOME}; |
|
426 |
$ENV{HOME} = $userspath =~ m|^/| ? $userspath : getcwd() . "/" . $userspath; |
|
418 | 427 |
|
419 | 428 |
for (my $run = 1; $run <= 2; $run++) { |
420 | 429 |
system("${latex} --interaction=nonstopmode $form->{tmpfile} " . |
421 | 430 |
"> $form->{tmpfile}.err"); |
422 | 431 |
if ($?) { |
432 |
$ENV{HOME} = $old_home; |
|
423 | 433 |
$self->{"error"} = $form->cleanup(); |
424 | 434 |
$self->cleanup(); |
425 | 435 |
return 0; |
426 | 436 |
} |
427 | 437 |
} |
428 | 438 |
|
439 |
$ENV{HOME} = $old_home; |
|
429 | 440 |
$form->{tmpfile} =~ s/tex$/pdf/; |
430 | 441 |
|
431 | 442 |
$self->cleanup(); |
Auch abrufbar als: Unified diff
Vor dem Ausführen von (pdf)latex das HOME auf das users-Verzeichnis setzen
Es gibt Situationen, in denen (pdf)latex Fontdateien für bestimmte
Schriftgrößen on the fly erzeugen muss. Diese werden in ~/.texmf-var
gespeichert. Deshalb muss das Verzeichnis, das (pdf)latex für HOME
hält, vom Webserver schreibbar sein.
Verhält sich analog zur Situation mit Umwandlung von
OpenDocument-Vorlagen nach PDF; da muss OpenOffice nach
~/.openoffice.org schreiben.