]> wagnertech.de Git - kivitendo-erp.git/commitdiff
LaTeX-Escaping: gewisse Formen von »no line to end here« vermeiden
authorMoritz Bunkus <m.bunkus@linet-services.de>
Tue, 26 Jun 2018 11:57:04 +0000 (13:57 +0200)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Tue, 26 Jun 2018 12:00:16 +0000 (14:00 +0200)
Passiert, wenn im HTML so ein Konstrukt existert:

…Text</p><p>&nbsp;<br>

Das wird zu einem Paragraphen, einem Leerzeichen und einem forcierten
Zeilenumbruch:

----schipp----
Text

 \newline
----schipp----

Durch die Leerzeile fängt für LaTeX dann dort ein neuer Absatz an. Der
ist soweit leer. Das Leerzeichen am Anfang der Zeile ist kein
Inhalt. Also gibt es aus Sicht von LaTeX dann keinen Zeileninhalt,
sobald es das `\newline` trifft.

SL/Template/LaTeX.pm

index ba310a9d4a094b71477ee180cdadecf58d95e92a..130a42484d1405f49f88bcae7d8c0c67d9ff191b 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{ ^ ( \\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;
 }
 
   return $content;
 }