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