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() {
config/kivitendo.conf.default
164 164
html2ps = html2ps
165 165
# Location of the Ghostscript binary
166 166
ghostscript = gs
167
# Location of the pdflatex (or compatible, e.g. xetex) binary
168
latex = pdflatex
167
# Location of the program to create PDFs from TeX documents
168
latex = latexmk -pdf
169 169
# Location of the Python interpreter to use when converting from
170 170
# OpenDocument to PDF. Some distributions compile UNO support only
171 171
# into binaries located in different locations than the main Python
doc/UPGRADE
3 3

  
4 4
** BITTE FERTIGEN SIE VOR DEM UPGRADE EIN BACKUP IHRER DATENBANK(EN) AN! **
5 5

  
6
Upgrade auf v3.x.x
7

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

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

  
20

  
6 21
Upgrade auf v3.7.0
7 22

  
8 23
Es sind keine neuen Perl-Abhängigkeiten hinzugekommen.
doc/changelog
21 21
   'subtract_month: n', 'subtract_days: n'. Die Einstellung im Job muss wie immer json
22 22
   kodiert passieren. Falls keine Parameter gesetzt sind, werden die Bücher am 10. des
23 23
   Monats rückwirkend am letzten Tag des Vorvormonats geschlossen.
24
 - LaTeX-Druckvorlagen werden nun standardmäßig nicht mehr zwei mal
25
   durch den LaTeX-Interpreter übersetzt. Statt dessen wird in der
26
   Standardkonfiguration das Programm »latexmk -pdf« aufgerufen, das
27
   selbständig feststellen kann, ob eine mehrfache Ausführung nötig
28
   ist, z.B. um Referenzen richtig auflösen zu können. Bei
29
   existierenden Installationen muss dafür in der Konfigurationsdatei
30
   »config/kivitendo.conf« der Pfad in der Einstellung
31
   »[applications]« → »latex« umgestellt werden, z.B. auf »latexmk
32
   -pdf«.
24 33

  
25 34
2022-09-19 - Release 3.7.0
26 35

  
doc/dokumentation.xml
2410 2410
        <para>Wird gar kein Fehler angezeigt, sondern nur der Name des
2411 2411
        Templates, heißt das normalerweise, dass das LaTeX Binary nicht
2412 2412
        gefunden wurde. Prüfen Sie den Namen in der Konfiguration (Standard:
2413
        <literal>pdflatex</literal>), und stellen Sie sicher, dass pdflatex
2413
        <literal>latexmk -pdf</literal>), und stellen Sie sicher, dass latexmk
2414 2414
        (oder das von Ihnen verwendete System) vom Webserver ausgeführt werden
2415 2415
        darf.</para>
2416 2416

  
......
7467 7467
        export PATH=/usr/local/texlive/2020/bin/x86_64-linux:$PATH
7468 7468
        hash -r
7469 7469

  
7470
        exec pdflatex &quot;$@&quot;
7470
        exec latexmk -pdf &quot;$@&quot;
7471 7471
        ------------------------------------------------------------
7472 7472

  
7473 7473
        4. In config/kivitendo.conf den Parameter »latex« auf den Pfad zu »run_pdflatex.sh« setzen

Auch abrufbar als: Unified diff