pandoc not converting latex style citations correctly

user1027169 picture user1027169 · Jan 12, 2013 · Viewed 7.3k times · Source

I want to use latex-style citations \cite{key} in my markdown so that I can create tex and pdf documents nicely using pandoc. However, when I cite something, it shows the keyword in brackets instead of the citation style, such as author name or citation number. In other words, I want it to show up in the PDF as "This is my citation [1]" but instead it is appearing as "This is my citation [mykey]". Also, my references list isn't showing up after I add my # References header. What is going on here?

Below is my sample command for producing this along with the sample files and my current incorrect output file (test.pdf).

pandoc test.md --biblatex --biblio test.bib --csl chicago-author-date.csl -o test.pdf

test.md

% My test pandoc-ument

I want to reference this: \cite{Gepasi1993}

# References

test.bib

@ARTICLE{Gepasi1993,
    Author         = {P. Mendes},
    Journal        = {Comput. Applic. Biosci.},
    Pages          = {563--571},
    Title          = {GEPASI: A software package for modelling the dynamics, steady states and control of biochemical and other systems.},
    Volume         = {9},
    Year           = {1993}
}

test.pdf

I want to reference this: [Gepasi1993]

Answer

John MacFarlane picture John MacFarlane · Jan 12, 2013

The --biblatex option is not for writing biblatex directly in markdown. What it does is convert native pandoc markdown citations, like

[@Gepasil1993, p. 5] 

to biblatex citations in LaTeX output.

If you use pandoc markdown citations instead of the LaTeX ones, you'll find that the citations work. Use this command:

pandoc test.md --biblio test.bib --csl chicago-author-date.csl -o test.pdf 

with this input:

I want to reference this: [@Gepasi1993] 

Pandoc's citation format is documented in the Pandoc User's Guide.

If you really want to use raw biblatex citations in your markdown input, you can, but then you need to take care of the bibliography stuff yourself. You'd do it this way:

pandoc test.md --parse-raw -t latex -s > test.tex 
pdflatex test 
biber test 
pdflatex test 
pdfltatex test