Datenbank-Abhängigkeits-Skripte für release 3.5.3
[kivitendo-erp.git] / SL / Template / LaTeX.pm
index 8a579ef..130a424 100644 (file)
@@ -98,6 +98,8 @@ sub _format_html {
   $content =~ s{ ^ ( \\newline \  )+ }{ _lb_to_space($1) }gxe;                              # convert line breaks at the start of the text to vertical space
   $content =~ s{ ( \n\n+ ) ( \\newline \  )+ }{ $1 . _lb_to_space($2) }gxe;                 # convert line breaks at the start of a paragraph to vertical space
   $content =~ s{ ( \\end\{ [^\}]+ \} \h* ) ( \\newline \  )+ }{ $1 . _lb_to_space($2) }gxe; # convert line breaks after LaTeX environments like lists to vertical space
+  $content =~ s{ ^ \h+ \\newline }{\\newline}gmx;
+  $content =~ s{ \n\n \h* \\newline \h* }{\n\n}gmx;
 
   return $content;
 }
@@ -123,6 +125,9 @@ sub format_string {
     // $formatters{ $self->{default_content_type} }
     // $formatters{ text };
 
+  $content  =~ s{[^\p{Print}\n]|\p{Cf}}{}g;
+  $variable =~ s{[^\p{Print}\n]|\p{Cf}}{}g;
+
   return $formatter->($self, $content, variable => $variable);
 }
 
@@ -448,9 +453,9 @@ sub parse {
       $contents = "[% TAGS $self->{tag_start} $self->{tag_end} %]\n" . $contents;
     }
 
-    $form->prepare_global_vars;
+    my $globals = global_vars();
 
-    $::form->init_template->process(\$contents, $form, \$new_contents) || die $::form->template->error;
+    $::form->template->process(\$contents, { %$form, %$globals }, \$new_contents) || die $::form->template->error;
   } else {
     $new_contents = $self->parse_block($contents);
   }
@@ -637,4 +642,15 @@ sub parse_and_create_pdf {
   return (file_name => do { $tex_file_name =~ s/tex$/pdf/; $tex_file_name });
 }
 
+sub global_vars {
+  {
+    AUTH            => $::auth,
+    INSTANCE_CONF   => $::instance_conf,
+    LOCALE          => $::locale,
+    LXCONFIG        => $::lx_office_conf,
+    LXDEBUG         => $::lxdebug,
+    MYCONFIG        => \%::myconfig,
+  };
+}
+
 1;