@@ -227,8 +227,12 @@ isNote _ = False
227227
228228-- | Wrap inlines to line length, treating footnotes in a way that
229229-- makes sense in LaTeX and ConTeXt.
230−wrappedTeX :: Monad m => ([Inline] -> m Doc) -> [Inline] -> m Doc
231−wrappedTeX listWriter sect = do
230+wrappedTeX :: Monad m
231+ => Bool -- | Include % on line before notes.
232+ -> ([Inline] -> m Doc) -- | Inline list writer.
233+ -> [Inline]
234+ -> m Doc
235+wrappedTeX includePercent listWriter sect = do
232236 let (firstpart, rest) = break isNote sect
233237 firstpartWrapped <- wrapped listWriter firstpart
234238 if null rest
@@ -236,17 +240,23 @@ wrappedTeX listWriter sect = do
236240 else do let (note:rest') = rest
237241 restWrapped <- if null rest'
238242 then return empty
239− else wrappedTeX listWriter rest'
243+ else wrappedTeX includePercent listWriter rest'
240244 noteText <- listWriter [note]
241− return $ firstpartWrapped <> PP.char '%' $$ noteText $$ restWrapped
245+ return $ firstpartWrapped <>
246+ (if includePercent then PP.char '%' else empty) $$
247+ noteText $$ restWrapped
242248
243249-- | Wrap inlines if the text wrap option is selected, specialized
244250-- for LaTeX and ConTeXt.
245−wrapTeXIfNeeded :: Monad m => WriterOptions -> ([Inline] -> m Doc) ->
246− [Inline] -> m Doc
247−wrapTeXIfNeeded opts = if writerWrapText opts
248− then wrappedTeX
249− else ($)
251+wrapTeXIfNeeded :: Monad m
252+ => WriterOptions
253+ -> Bool -- | Include % on line before notes.
254+ -> ([Inline] -> m Doc) -- | Inline list writer.
255+ -> [Inline]
256+ -> m Doc
257+wrapTeXIfNeeded opts includePercent = if writerWrapText opts
258+ then wrappedTeX includePercent
259+ else ($)
250260
251261--
252262-- Parsing