我能找到的所有关于引用和 LaTeX 的帖子都是关于直接在 LaTeX 中引用的。我正在使用模板通过 LaTeX(和 Pandoc)将 Obsidian markdown 文件转换为 PDF。
有没有办法可以使用\cite{@citekey}
Zotero 让 LaTeX 自动处理引用?
这样我就可以在 Obsidian 中编写文本,"quote bla bla"^[@Smith2022, 15]
然后它会通过 LaTeX 和 Libary.bib 文件呈现为类似内容"quote bla bla"^[Smith 2022, 15]
(此处“^[]”是脚注)。
理想情况下,这还会在参考书目部分以芝加哥作者-日期格式创建完整注释。类似于 Microsoft Word 插件根据所用引文创建参考书目。
编辑:我的测试 .latex 文件:
\begin{filecontents}{foo.bib}
@article{foo,
author={dingle},
tile={Foo is funny},
year={2022},
}
@article{anotherkey,
author = {Writer, A.},
year = {2011},
title = {Headline},
publisher = {Publication},
}
\end{filecontents}
\documentclass{article}
% Load BibLaTeX and set the style to Author-Year
\usepackage[style=authoryear]{biblatex}
% Tell BibLaTeX to use the file `example.bib` for the bibliography database
\addbibresource{foo.bib}
\begin{document}
Cite a reference \cite[]{foo}
Force a citation to be made via footnote \footcite{anotherkey}
\printbibliography
\end{document}
foo.bib
与我的 .latex 文件位于同一文件夹中,当前包括:
@article{foo,
author={foo},
tile={Foo is funny},
year={2022},
}
@article{anotherkey,
author = {Writer, A.},
year = {2011},
title = {Headline},
publisher = {Publication},
}
@ARTICLE{Gill,
author = "A. E. Gill",
title = "Some Simple Solutions for Heat-Induced Tropical Circulation",
journal = "Quart. J. R. Met. Soc.",
volume = 106,
year = 1980,
pages = "447-462",
}
答案1
我不明白你对此有什么问题,但我希望一个最小的例子可以解决任何问题。例如,你有这个foo.md
文件:
foo @foo and [@foo]
默认情况下,pandoc 不知道您引用了任何内容,因此从 markdown 到 LaTeX 的转换只会产生纯文本:
foo @foo and {[}@foo{]}
但是如果你告知 pandoc 你正在使用 bibtex 书目(Zotero 可以做到这一点)--bibliography foo.bib
,那么foo.bib
:
@article{foo,
author={foo},
tile={Foo is funny},
year={2022},
}
那么结果是
foo foo (2022) and (foo 2022)
\hypertarget{references}{%
\section*{References}\label{references}}
\addcontentsline{toc}{section}{References}
\hypertarget{refs}{}
\begin{cslreferences}
\leavevmode\hypertarget{ref-foo}{}%
foo. 2022. ``Foo is funny.''
\end{cslreferences}
因此参考部分已经包含在内。现在,您只需使用选项-s
(standalone) 再次转换它即可获得可编译文件,而不仅仅是此处显示的块,即:
pandoc -s -f markdown -t latex foo.md --bibliography foo.bib -o foo.tex
...或者直接获取 pdf:
pandoc -s -f markdown -t pdf foo.md --bibliography foo.bib -o foo.pdf
--biblatex
如果您想要由 LaTeX 而不是 pandoc 生成的参考文献,那么您可以添加生成该 LaTeX 文本的选项:
foo \textcite{foo} and \autocite{foo}
或者--natbib
结果是:
foo \citet{foo} and \citep{foo}
当然,还要添加-s
和-bibliography foo.bib
以制作完整的乳胶文件。
请注意,这里不包含参考文献,而是使用 bibtex 或 biber 生成参考文献的 LaTeX 代码(每种情况也不同),因此您无法使用 natbib 或 biblatex 选项直接从 pandoc 获取 PDF 版本。如果您不清楚如何使用 LaTeX 编译这些版本,看这里。
例如,使用 natbib 的结果应该是:
foo foo [2022] 和 [foo, 2022]
参考
foo。Foo 很有趣。2022。
但比直接弄乱 pandoc 的选项更好的是,添加一个 YAML 标头并使用一个功能强大的解释器。例如,quarto render foo.qmd
在提示系统中,foo.qmd
文件为:
---
format:
pdf:
biblio-style: apa
cite-method: biblatex
bibliography: foo.bib
---
foo @foo and [@foo]
结果是这样的foo.pdf
:
您还可以通过单击从 VScode 和 Rstudio 渲染四开文件。
答案2
我设法搞清楚了!问题出在我的编辑器上。Gummi 和 TexStudio 似乎都默认使用 BibTeX 作为参考书目的后端。我无法弄清楚 Gummi 的问题,但对于 TeXstudio,我可以选择 Biber 来执行此操作,现在它可以正常工作了 :)