考虑以下 markdown 片段:
Connecting these native implementations to the Python world is enabled
by the [Cython](http://cython.org/) toolchain [@behnel2011cython].
我使用 pandoc 将 markdown 转换为 LaTeX:
pandoc --chapters ../Source/Chapters/Content.md -o ../Example/Chapters/Content.tex
这被转换为 LaTeX 并产生以下输出:
Connecting these native implementations to the Python world is enabled
by the \href{http://cython.org/}{Cython} toolchain~
{[}@behnel2011cython{]}.
为什么引用没有得到适当处理? 将其转换为应该很容易~\cite{behnel2011cython}
。 我是不是忘了给 pandoc 一些标记?
答案1
如果你想使用引用,你还必须定义 CSL 样式(引用样式语言)通过*.csl
-您必须引用的文件。
这是 Markdown 中的 MWE。它测试了几种不同的方法来为 Markdown 中的引文提供参考:
# Markdown source code for relevant part of this page
``` {.markdown}
i. [@nonexistent]
i. @nonexistent
i. @z1 says fooo.
i. @z1 [p. 30] says baaar.
i. @z1 [p. 30, with suffix] says blahblah.
i. @z1 [-@z2 p. 30; see also @z3] says blah-blubb.
i. In a footnote.[^1]
i. A citation group [see @z1 p. 34-35; also @z3 chap. 3].
i. Another one [see @z1 p. 34-35].
i. And still another, in a footnote.[^2]
i. Quote with a *suffix* and a *locator* [@z1 pp. 33, 35-37, and nothing else].
i. Quote with only one locator [@z1 and nowhere else].
i. Now a few *modifiers*[^3]...
i. With some extra Markup [*siehe* @z1 p. **32**].
i. Jane Doz doesnt like me [***siehe*** **@z4**].
[^1]: A citation without locators [@z3].
[^2]: Multiple citations [siehe @z2 chap. 3; @z3; @z1].
[^3]: ...like a quote without author: [-@z1]. And now OStR Oster with a locator [-@z2 p. 44].
$x^2 + y^2 = 1$ @z1
```
# Document output of Markdown code
i. [@nonexistent]
i. @nonexistent
i. @z1 says fooo.
i. @z1 [p. 30] says baaar.
i. @z1 [p. 30, with suffix] says blahblah.
i. @z1 [-@z2 p. 30; see also @z3] says blah-blubb.
i. In a footnote.[^1]
i. A citation group [see @z1 p. 34-35; also @z3 chap. 3].
i. Another one [see @z1 p. 34-35].
i. And still anoter, in a footnote.[^2]
i. Quote with a *suffix* and a *locator* [@z1 pp. 33, 35-37, and nothing else].
i. Quote with only one locator [@z1 and nowhere else].
i. Now a few *modifiers*[^3]...
i. With some extra Markup [*see also* @z1 p. **32**].
i. Jane Doz doesnt like me [***see*** **@z4**].
[^1]: A citation without locators [@z3].
[^2]: Multiple citations [siehe @z2 chap. 3; @z3; @z1].
[^3]: ...like a quote without author: [-@z1]. And now OStR Oster with a locator [-@z2 p. 44].
$x^2 + y^2 = 1$ @z1
# Bibliography
您可以使用以下 Pandoc 命令转换此 Markdown:
pandoc -V geometry="paperwidth=18cm, paperheight=34cm, margin=0.3cm" \
-V language=de-DE -V lang=ngerman \
--highlight-style=espresso --filter=pandoc-citeproc \
--biblio=my-biblio.bib --csl=stuttgart-media-university.csl \
-o stuttgart-media-university---csl.pdf mwe.md
从命令中可以看出,它引用了三个文件:
- Markdown 源代码,
mwe.md
。 - 定义要使用的 CSL 样式的附加文件,
stuttgart-media-university.csl
。(我从核心存储库下载了它,引用样式网站在GitHub。 第三个
my-biblio.bib
,其中包含我的引用参考。其内容如下:@Book{z1, author="Thales von Milet", title="Doppelwinkel-Funktionen", url="http://de.wikipedia.org/wiki/Formelsammlung_Trigonometrie#Doppelwinkelfunktionen", year="600 v.Chr.", address="Milet, Kleinasien", publisher="Wikipedia" } @Article{z2, author="OStR Dr. math.nat. Oster", title="Unterrichtsmaterialen für Klasse 9 (Mittelstufe)", year="1969", journal="Journal of Generic Studies", volume="9", pages="33-34" } @InCollection{z3, author="Elvis Presley, Madonna and Pink Floyd", title="Kombinatorik Hypergeometrischer Verteilungen", booktitle="Wiederholungslose Auswahlprobleme", editor="Cleopatra, Königin von Ägypten", publisher="Steintafeln Moses GmbH & Co. KG", address="Gizeh", year="30 v.Chr." } @Article{z4, author="Jane Doz", title="Why All Men Suck", year="2006", journal="Journal of Gender Studies", volume="6", pages="33-34" }
以下是生成的 PDF 页面的屏幕截图:
仔细查看该页面,您可以看到每个 Markdown 源引用参考文献如何准确地转化为最终的页面布局。
请注意,最终的页面布局很大程度上受您使用的特定 CSL 样式文件的影响!应用不同的 CSL,页面内容将会有所不同(具体来说:参考文献、脚注和“参考书目”部分都受到 CSL 的影响)。
我最近创建的用于测试 CSL 样式文件的 GitHub 存储库包含有关该主题的更详细的说明。
答案2
--biblatex
转换时只需使用该标志pandoc
:
pandoc --biblatex --chapters ../Source/Chapters/Content.md -o ../Example/Chapters/Content.tex
结果:
Connecting these native implementations to the Python world is enabled
by the \href{http://cython.org/}{Cython} toolchain
\autocite{behnel2011cython}.
你必须使用biblatex
包裹让它工作——但无论如何你都应该使用它,因为它非常棒:文档非常棒,而且软件包本身非常“成熟”。以下是一些相关问题,可帮助您入门:
答案3
作为替代方案,--biblatex
您可以使用--natbib
,以便使用LaTeX 包“natbib”命令(例如\citep
和)。\citet