Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision ce2cccd9

Von Moritz Bunkus vor fast 14 Jahren hinzugefügt

  • ID ce2cccd9e6bf7dca9087912e2421aa2d3adb1be9
  • Vorgänger 961adb71
  • Nachfolger 64450411

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.

Unterschiede anzeigen:

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