LaTeX reader: Fix parsing of optional arguments that contain braced text.
Closes #5740.
This commit is contained in:
parent
4dad7c5e86
commit
4778d03473
2 changed files with 12 additions and 4 deletions
|
@ -93,8 +93,6 @@ import Text.Pandoc.Readers.LaTeX.Types (ExpansionPoint (..), Macro (..),
|
|||
import Text.Pandoc.Shared
|
||||
import Text.Parsec.Pos
|
||||
|
||||
-- import Debug.Trace (traceShowId)
|
||||
|
||||
newtype DottedNum = DottedNum [Int]
|
||||
deriving (Show)
|
||||
|
||||
|
@ -447,7 +445,7 @@ doMacros' n inp = do
|
|||
args <- case optarg of
|
||||
Nothing -> getargs M.empty argspecs
|
||||
Just o -> do
|
||||
x <- option o bracketedToks
|
||||
x <- option o $ bracketedToks
|
||||
getargs (M.singleton 1 x) $ drop 1 argspecs
|
||||
rest <- getInput
|
||||
return (args, rest)
|
||||
|
@ -644,7 +642,8 @@ bracketed parser = try $ do
|
|||
bracketedToks :: PandocMonad m => LP m [Tok]
|
||||
bracketedToks = do
|
||||
symbol '['
|
||||
mconcat <$> manyTill (braced <|> (:[]) <$> anyTok) (symbol ']')
|
||||
concat <$> manyTill ((snd <$> withRaw (try braced)) <|> count 1 anyTok)
|
||||
(symbol ']')
|
||||
|
||||
parenWrapped :: PandocMonad m => Monoid a => LP m a -> LP m a
|
||||
parenWrapped parser = try $ do
|
||||
|
|
9
test/command/5740.md
Normal file
9
test/command/5740.md
Normal file
|
@ -0,0 +1,9 @@
|
|||
```
|
||||
% pandoc -t latex
|
||||
\newcommand\parenthesize[1][x]{(#1)}
|
||||
$\parenthesize$, $\parenthesize[y]$, $\parenthesize[\textsc{head}]$
|
||||
^D
|
||||
\newcommand\parenthesize[1][x]{(#1)}
|
||||
|
||||
\((x)\), \((y)\), \((\textsc{head})\)
|
||||
```
|
Loading…
Add table
Reference in a new issue