@@ -182,7 +182,8 @@ escapeLexer = do
182182 let skipSeqs = ["%", "{", "}", "&", "\n", ":", "\"", "0", "c"]
183183 subsSeqs = [ ("-", '-'), (" ", ' '), ("\\", '\\'), ("[lq]", '“'), ("[rq]", '”')
184184 , ("[em]", '—'), ("[en]", '–'), ("*(lq", '«'), ("*(rq", '»')
185− , ("t", '\t'), ("e", '\\'), ("`", '`') ]
185+ , ("t", '\t'), ("e", '\\'), ("`", '`'), ("^", ' '), ("|", ' ')
186+ , ("'", '`') ]
186187 substitute :: PandocMonad m => (String,Char) -> ManLexer m EscapeThing
187188 substitute (from,to) = try $ string from >> return (EChar to)
188189 skip :: PandocMonad m => String -> ManLexer m EscapeThing
@@ -219,7 +220,7 @@ escapeLexer = do
219220 escUnknown = do
220221 c <- anyChar
221222 pos <- getPosition
222− logOutput $ SkippedContent ("Unknown escape seq \\" ++ [c]) pos
223+ logOutput $ SkippedContent ("Unknown escape sequence \\" ++ [c]) pos
223224 return ENothing
224225
225226currentFont :: PandocMonad m => ManLexer m FontKind
@@ -240,7 +241,7 @@ lexMacro :: PandocMonad m => ManLexer m ManToken
240241lexMacro = do
241242 char '.' <|> char '\''
242243 many spacetab
243− macroName <- many1 (letter <|> oneOf ['\\', '"'])
244+ macroName <- many1 (letter <|> oneOf ['\\', '"', '&'])
244245 args <- lexArgs
245246 let joinedArgs = unwords $ fst <$> args
246247 knownMacro mkind = MMacro mkind args
@@ -269,7 +270,8 @@ lexMacro = do
269270 -- TODO better would be [[RoffStr]], since one arg may have different fonts
270271 lexArgs :: PandocMonad m => ManLexer m [RoffStr]
271272 lexArgs = do
272− args <- many oneArg
273+ args <- many $ try oneArg
274+ many spacetab
273275 eofline
274276 return args
275277