diff options
author | John MacFarlane <fiddlosopher@gmail.com> | 2013-03-09 10:20:12 -0800 |
---|---|---|
committer | John MacFarlane <fiddlosopher@gmail.com> | 2013-03-09 10:33:25 -0800 |
commit | f7229b147314042f946dfded3b441ab0fae260a0 (patch) | |
tree | fd40edcaa87e399a7299133b2b9919e102b8407a /src/Text/Pandoc/Readers | |
parent | be165a21ad15d9843d3d79aed651b89f623b49a9 (diff) | |
download | pandoc-f7229b147314042f946dfded3b441ab0fae260a0.tar.gz |
LaTeX reader: citation handling changes.
Previously, a LaTeX citation would always be parsed as a Citation
element, with the raw LaTeX in the [Inline] part.
Now, the LaTeX citation is parsed as a Citation element only if
`--biblio` was specified (i.e. only if there is a nonempty set
of references in readerReferences). Otherwise it is parsed as
raw LaTeX.
This will make it possible to simplify some things in the markdown
writer. It also makes the LaTeX reader behave more like the Markdown
reader.
Diffstat (limited to 'src/Text/Pandoc/Readers')
-rw-r--r-- | src/Text/Pandoc/Readers/LaTeX.hs | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/Text/Pandoc/Readers/LaTeX.hs b/src/Text/Pandoc/Readers/LaTeX.hs index 5a2ab599b..880997a6d 100644 --- a/src/Text/Pandoc/Readers/LaTeX.hs +++ b/src/Text/Pandoc/Readers/LaTeX.hs @@ -1021,7 +1021,10 @@ cites mode multi = try $ do citation :: String -> CitationMode -> Bool -> LP Inlines citation name mode multi = do (c,raw) <- withRaw $ cites mode multi - return $ cite c (rawInline "latex" $ "\\" ++ name ++ raw) + refs <- getOption readerReferences + return $ if null refs + then rawInline "latex" $ "\\" ++ name ++ raw + else cite c mempty complexNatbibCitation :: CitationMode -> LP Inlines complexNatbibCitation mode = try $ do @@ -1040,8 +1043,10 @@ complexNatbibCitation mode = try $ do optional $ char ';' return $ addPrefix pref $ addSuffix suff $ cits' (c:cits, raw) <- withRaw $ grouped parseOne - return $ cite (c{ citationMode = mode }:cits) - (rawInline "latex" $ "\\citetext" ++ raw) + refs <- getOption readerReferences + return $ if null refs + then rawInline "latex" $ "\\citetext" ++ raw + else cite (c{ citationMode = mode}:cits) mempty -- tables |