Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision c686f4cd

Von Moritz Bunkus vor etwa 2 Jahren hinzugefügt

  • ID c686f4cd005ee7295579a4fc4eedd36355efc0cf
  • Vorgänger 4d4da297
  • Nachfolger bb9569ae

LaTeX-Druckvorlagen: nicht immer zwei mal den LaTeX-Interpreter aufrufen

LaTeX-Druckvorlagen werden nun standardmäßig nicht mehr zwei mal durch
den LaTeX-Interpreter übersetzt. Statt dessen wird in der
Standardkonfiguration das Programm »latexmk -pdf« aufgerufen, das
selbständig feststellen kann, ob eine mehrfache Ausführung nötig ist,
z.B. um Referenzen richtig auflösen zu können.

Bei existierenden Installationen muss dafür in der Konfigurationsdatei
»config/kivitendo.conf« der Pfad in der Einstellung »[applications]« →
»latex« umgestellt werden, z.B. auf »latexmk -pdf«. Andere
TeX-Interpreter wie luatex werden ebenfalls unterstützt; siehe Ausgabe
von »latexmk -help«.

Unterschiede anzeigen:

SL/Template/LaTeX.pm
564 564

  
565 565
  my $latex = $self->_get_latex_path();
566 566

  
567
  for (my $run = 1; $run <= 2; $run++) {
568
    if (system("${latex} --interaction=nonstopmode $form->{tmpfile} " .
569
               "> $form->{tmpfile}.err") == -1) {
570
      die "system call to $latex failed: $!";
571
    }
572
    if ($?) {
573
      $self->{"error"} = $form->cleanup($latex);
574
      return 0;
575
    }
567
  if (system("${latex} --interaction=nonstopmode $form->{tmpfile} " .
568
             "> $form->{tmpfile}.err") == -1) {
569
    die "system call to $latex failed: $!";
570
  }
571
  if ($?) {
572
    $self->{"error"} = $form->cleanup($latex);
573
    return 0;
576 574
  }
577 575

  
578 576
  $form->{tmpfile} =~ s/tex$/dvi/;
......
611 609

  
612 610
  my $latex = $self->_get_latex_path();
613 611

  
614
  for (my $run = 1; $run <= 2; $run++) {
615
    if (system("${latex} --interaction=nonstopmode $form->{tmpfile} " .
616
               "> $form->{tmpfile}.err") == -1) {
617
      die "system call to $latex failed: $!";
618
    }
612
  if (system("${latex} --interaction=nonstopmode $form->{tmpfile} " .
613
             "> $form->{tmpfile}.err") == -1) {
614
    die "system call to $latex failed: $!";
615
  }
619 616

  
620
    if ($?) {
621
      $self->{error} = $form->cleanup($latex);
622
      return 0;
623
    }
617
  if ($?) {
618
    $self->{error} = $form->cleanup($latex);
619
    return 0;
624 620
  }
625 621

  
626 622
  $form->{tmpfile} =~ s/tex$/pdf/;
......
631 627
}
632 628

  
633 629
sub _get_latex_path {
634
  return $::lx_office_conf{applications}->{latex} || 'pdflatex';
630
  return $::lx_office_conf{applications}->{latex} || 'latexmk -pdf';
635 631
}
636 632

  
637 633
sub get_mime_type() {

Auch abrufbar als: Unified diff