diff options
-rw-r--r-- | src/Text/Pandoc/Readers/LaTeX.hs | 17 | ||||
-rw-r--r-- | tests/latex-reader.latex | 2 | ||||
-rw-r--r-- | tests/writer.latex | 2 |
3 files changed, 16 insertions, 5 deletions
diff --git a/src/Text/Pandoc/Readers/LaTeX.hs b/src/Text/Pandoc/Readers/LaTeX.hs index a4157da2f..02c7361d7 100644 --- a/src/Text/Pandoc/Readers/LaTeX.hs +++ b/src/Text/Pandoc/Readers/LaTeX.hs @@ -391,7 +391,7 @@ para = do -- bibliographic :: GenParser Char ParserState Block -bibliographic = choice [ maketitle, title, authors, date ] +bibliographic = choice [ maketitle, title, subtitle, authors, date ] maketitle :: GenParser Char st Block maketitle = try (string "\\maketitle") >> spaces >> return Null @@ -404,11 +404,22 @@ title = try $ do updateState (\state -> state { stateTitle = tit }) return Null +subtitle :: GenParser Char ParserState Block +subtitle = try $ do + string "\\subtitle{" + tit <- manyTill inline (char '}') + spaces + updateState (\state -> state { stateTitle = stateTitle state ++ + Str ":" : LineBreak : tit }) + return Null + authors :: GenParser Char ParserState Block authors = try $ do string "\\author{" - raw <- many1 (notFollowedBy (char '}') >> inline) - let authors' = map normalizeSpaces $ splitBy (== LineBreak) raw + let andsep = try $ string "\\and" >> notFollowedBy letter >> + spaces >> return '&' + raw <- sepBy (many $ notFollowedBy (char '}' <|> andsep) >> inline) andsep + let authors' = map normalizeSpaces raw char '}' spaces updateState (\s -> s { stateAuthors = authors' }) diff --git a/tests/latex-reader.latex b/tests/latex-reader.latex index 135ee57bb..119ad0881 100644 --- a/tests/latex-reader.latex +++ b/tests/latex-reader.latex @@ -17,7 +17,7 @@ \setcounter{secnumdepth}{0} \VerbatimFootnotes % allows verbatim text in footnotes \title{Pandoc Test Suite} -\author{John MacFarlane\\Anonymous} +\author{John MacFarlane \and Anonymous} \date{July 17, 2006} \begin{document} \maketitle diff --git a/tests/writer.latex b/tests/writer.latex index 15a45a521..8cf7d4887 100644 --- a/tests/writer.latex +++ b/tests/writer.latex @@ -32,7 +32,7 @@ \VerbatimFootnotes % allows verbatim text in footnotes \title{Pandoc Test Suite} -\author{John MacFarlane\\Anonymous} +\author{John MacFarlane \and Anonymous} \date{July 17, 2006} \begin{document} |