@@ -516,12 +516,6 @@ isListBlock (OrderedList _ _) = True
516516isListBlock (DefinitionList _) = True
517517isListBlock _ = False
518518
519−isLineBreakOrSpace :: Inline -> Bool
520−isLineBreakOrSpace LineBreak = True
521−isLineBreakOrSpace SoftBreak = True
522−isLineBreakOrSpace Space = True
523−isLineBreakOrSpace _ = False
524−
525519-- | Convert Pandoc block element to LaTeX.
526520blockToLaTeX :: PandocMonad m
527521 => Block -- ^ Block to convert
@@ -599,7 +593,7 @@ blockToLaTeX (Div (identifier,classes,kvs) bs)
599593 (wrapColumns . wrapColumn . wrapDir . wrapLang . wrapNotes)
600594 <$> blockListToLaTeX bs
601595blockToLaTeX (Plain lst) =
602− inlineListToLaTeX $ dropWhile isLineBreakOrSpace lst
596+ inlineListToLaTeX lst
603597-- title beginning with fig: indicates that the image is a figure
604598blockToLaTeX (Para [Image attr@(ident, _, _) txt (src,'f':'i':'g':':':tit)]) = do
605599 (capt, captForLof, footnotes) <- getCaption True txt
@@ -623,7 +617,7 @@ blockToLaTeX (Para [Str ".",Space,Str ".",Space,Str "."]) = do
623617 then blockToLaTeX (RawBlock "latex" "\\pause")
624618 else inlineListToLaTeX [Str ".",Space,Str ".",Space,Str "."]
625619blockToLaTeX (Para lst) =
626− inlineListToLaTeX $ dropWhile isLineBreakOrSpace lst
620+ inlineListToLaTeX lst
627621blockToLaTeX (LineBlock lns) =
628622 blockToLaTeX $ linesToPara lns
629623blockToLaTeX (BlockQuote lst) = do
@@ -1083,7 +1077,7 @@ inlineListToLaTeX :: PandocMonad m
10831077 => [Inline] -- ^ Inlines to convert
10841078 -> LW m Doc
10851079inlineListToLaTeX lst =
1086− mapM inlineToLaTeX (fixLineInitialSpaces lst)
1080+ mapM inlineToLaTeX (fixLineInitialSpaces . fixInitialLineBreaks $ lst)
10871081 >>= return . hcat
10881082 -- nonbreaking spaces (~) in LaTeX don't work after line breaks,
10891083 -- so we turn nbsps after hard breaks to \hspace commands.
@@ -1095,6 +1089,12 @@ inlineListToLaTeX lst =
10951089 fixNbsps s = let (ys,zs) = span (=='\160') s
10961090 in replicate (length ys) hspace ++ [Str zs]
10971091 hspace = RawInline "latex" "\\hspace*{0.333em}"
1092+ -- We need \hfill\break for a line break at the start
1093+ -- of a paragraph. See #5591.
1094+ fixInitialLineBreaks (LineBreak:xs) =
1095+ RawInline (Format "latex") "\\hfill\\break\n" :
1096+ fixInitialLineBreaks xs
1097+ fixInitialLineBreaks xs = xs
10981098
10991099isQuoted :: Inline -> Bool
11001100isQuoted (Quoted _ _) = True