@@ -1451,6 +1451,7 @@ inline = choice [ whitespace
14511451 , autoLink
14521452 , spanHtml
14531453 , rawHtmlInline
1454+ , escapedNewline
14541455 , escapedChar
14551456 , rawLaTeXInline'
14561457 , exampleRef
@@ -1467,16 +1468,20 @@ escapedChar' = try $ do
14671468 (guardEnabled Ext_all_symbols_escapable >> satisfy (not . isAlphaNum))
14681469 <|> (guardEnabled Ext_angle_brackets_escapable >>
14691470 oneOf "\\`*_{}[]()>#+-.!~\"<>")
1470− <|> (guardEnabled Ext_escaped_line_breaks >> char '\n')
14711471 <|> oneOf "\\`*_{}[]()>#+-.!~\""
14721472
1473+escapedNewline :: PandocMonad m => MarkdownParser m (F Inlines)
1474+escapedNewline = try $ do
1475+ guardEnabled Ext_escaped_line_breaks
1476+ char '\\'
1477+ lookAhead (char '\n') -- don't consume the newline (see #3730)
1478+ return $ return B.linebreak
1479+
14731480escapedChar :: PandocMonad m => MarkdownParser m (F Inlines)
14741481escapedChar = do
14751482 result <- escapedChar'
14761483 case result of
14771484 ' ' -> return $ return $ B.str "\160" -- "\ " is a nonbreaking space
1478− '\n' -> guardEnabled Ext_escaped_line_breaks >>
1479− return (return B.linebreak) -- "\[newline]" is a linebreak
14801485 _ -> return $ return $ B.str [result]
14811486
14821487ltSign :: PandocMonad m => MarkdownParser m (F Inlines)