Hinweis auf doc/umstellung_eur.txt Beim Mandanten anlegen.
[kivitendo-erp.git] / SL / Template / LaTeX.pm
index d1c2080..c7d51e0 100644 (file)
@@ -5,6 +5,7 @@ use parent qw(SL::Template::Simple);
 use strict;
 
 use Cwd;
+use Unicode::Normalize qw();
 
 sub new {
   my $type = shift;
@@ -134,7 +135,7 @@ sub find_end {
 
     my $keyword_pos = $pos - 1 + $tag_start_len;
 
-    if ((substr($text, $keyword_pos, 2) eq 'if') || (substr($text, $keyword_pos, 3) eq 'foreach')) {
+    if ((substr($text, $keyword_pos, 2) eq 'if') || (substr($text, $keyword_pos, 7) eq 'foreach')) {
       $depth++;
 
     } elsif ((substr($text, $keyword_pos, 4) eq 'else') && (1 == $depth)) {
@@ -353,8 +354,13 @@ sub parse {
     return 0;
   }
 
-  binmode OUT, ":utf8" if $::locale->is_utf8;
-  print(OUT $new_contents);
+  if ($::locale->is_utf8) {
+    binmode OUT, ":utf8";
+    print OUT Unicode::Normalize::normalize('C', $new_contents);
+
+  } else {
+    print OUT $new_contents;
+  }
 
   if ($form->{"format"} =~ /postscript/i) {
     return $self->convert_to_postscript();
@@ -388,8 +394,7 @@ sub convert_to_postscript {
            "> $form->{tmpfile}.err");
     if ($?) {
       $ENV{HOME} = $old_home;
-      $self->{"error"} = $form->cleanup();
-      $self->cleanup();
+      $self->{"error"} = $form->cleanup($latex);
       return 0;
     }
   }
@@ -401,7 +406,7 @@ sub convert_to_postscript {
 
   if ($?) {
     $self->{"error"} = "dvips : $!";
-    $self->cleanup();
+    $self->cleanup('dvips');
     return 0;
   }
   $form->{tmpfile} =~ s/dvi$/ps/;
@@ -433,9 +438,8 @@ sub convert_to_pdf {
     system("${latex} --interaction=nonstopmode $form->{tmpfile} " .
            "> $form->{tmpfile}.err");
     if ($?) {
-      $ENV{HOME} = $old_home;
-      $self->{"error"} = $form->cleanup();
-      $self->cleanup();
+      $ENV{HOME}     = $old_home;
+      $self->{error} = $form->cleanup($latex);
       return 0;
     }
   }
@@ -447,7 +451,7 @@ sub convert_to_pdf {
 }
 
 sub _get_latex_path {
-  return $main::latex_bin || 'pdflatex';
+  return $::lx_office_conf{applications}->{latex} || 'pdflatex';
 }
 
 sub get_mime_type() {