X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FTemplate%2FLaTeX.pm;h=130a42484d1405f49f88bcae7d8c0c67d9ff191b;hb=1cbccb529604a1cafecd521c9d49da924eb72efe;hp=8a579ef46f3a9f883e23bb237238f5edad5b5046;hpb=066cdace62af6f25e9e29249aa0325cc247b132b;p=kivitendo-erp.git diff --git a/SL/Template/LaTeX.pm b/SL/Template/LaTeX.pm index 8a579ef46..130a42484 100644 --- a/SL/Template/LaTeX.pm +++ b/SL/Template/LaTeX.pm @@ -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;