git.iko.soy/typeable/pandoc
on master help sign in
LaTeX writer: Handle consecutive linebreaks.

Closes #1733.

commit08abbc460427b56e972020aafa089390ef0c9a54 authorJohn MacFarlane <jgm@berkeley.edu> dateMon 15 Dec 2014, 22:04 (12 years ago) parent58ea1ce
1 file changed+10−2
src/Text/Pandoc/Writers/LaTeX.hs+10−2
src/Text/Pandoc/Writers/LaTeX.hs+10−2
@@ -681,7 +681,7 @@ sectionHeader unnumbered ref level lst = do
681681inlineListToLaTeX :: [Inline] -- ^ Inlines to convert
682682 -> State WriterState Doc
683683inlineListToLaTeX lst =
684− mapM inlineToLaTeX (fixLineInitialSpaces lst)
684+ mapM inlineToLaTeX (fixBreaks $ fixLineInitialSpaces lst)
685685 >>= return . hcat
686686 -- nonbreaking spaces (~) in LaTeX don't work after line breaks,
687687 -- so we turn nbsps after hard breaks to \hspace commands.
@@ -693,7 +693,15 @@ inlineListToLaTeX lst =
693693 fixNbsps s = let (ys,zs) = span (=='\160') s
694694 in replicate (length ys) hspace ++ [Str zs]
695695 hspace = RawInline "latex" "\\hspace*{0.333em}"
696−
696+ -- linebreaks after blank lines cause problems:
697+ fixBreaks [] = []
698+ fixBreaks ys@(LineBreak : LineBreak : _) =
699+ case span (== LineBreak) ys of
700+ (lbs, rest) -> RawInline "latex"
701+ ("\\\\[" ++ show (length lbs) ++
702+ "\\baselineskip]") : fixBreaks rest
703+ fixBreaks (y:ys) = y : fixBreaks ys
704+
697705isQuoted :: Inline -> Bool
698706isQuoted (Quoted _ _) = True
699707isQuoted _ = False