在 pylatex 中添加参考书目

在 pylatex 中添加参考书目

我对使用 PyLatex 来自动化包含多个条目的表格很感兴趣,这样我就不需要每次需要更改或添加条目时都手动浏览它。在此表的最后一列中,需要引用我从哪里获取条目。

到目前为止,我还没有找到任何关于如何将 PyLatex 与书目栏一起使用的例子,你能知道如何做的例子吗?

答案1

其实不需要做任何特别的事情,只需在文档的序言和\printbibliography(或\bibliography{<filename>})中添加适当的包等即可。代码很短,我想,相当一目了然。

import pylatex as pl

# dict with data for table - dict key is citation key
tabledata = dict(
                 aksin=['Foo', 42],
                 angenendt=['Bar', 7],
                 bertram=['Baz',3.14],
                 doody=['Foobar',199]
                 )

doc = pl.Document()

# add biblatex package to preamble
doc.preamble.append(pl.Package('biblatex',options=['sorting=none']))
doc.preamble.append(pl.Command('addbibresource',arguments=["biblatex-examples.bib"]))

# make table
with doc.create(pl.Tabular("l l l",booktabs=True)) as table:
    table.add_row(['Desc','Number','Cite'])
    table.add_hline()
    for key in tabledata.keys():
        table.add_row(tabledata[key]+[pl.Command('cite',arguments=[key])])


doc.append(pl.Command('printbibliography'))

doc.generate_tex('ex')

该 Python 脚本将生成以下代码ex.tex

\documentclass{article}%
\usepackage[T1]{fontenc}%
\usepackage[utf8]{inputenc}%
\usepackage{lmodern}%
\usepackage{textcomp}%
\usepackage{lastpage}%
\usepackage{booktabs}%
%
\usepackage[sorting=none]{biblatex}%
\addbibresource{biblatex{-}examples.bib}%
%
\begin{document}%
\normalsize%
\begin{tabular}{@{}l l l@{}}%
\toprule%
Desc&Number&Cite\\%
\midrule%
Baz&3.14&\cite{bertram}\\%
Foobar&199&\cite{doody}\\%
Foo&42&\cite{aksin}\\%
Bar&7&\cite{angenendt}\\\bottomrule%
%
\end{tabular}%
\printbibliography%
\end{document}

忽略一开始的愚蠢\normalsize忽略开始和结束的每一个行中%,需要修复的一个问题是删除-中的 周围的括号\addbibresource。也就是说,它应该是\addbibresource{biblatex-examples.bib}。(我不知道为什么要添加这些括号,也不知道如何删除它们。)

运行通常的pdflatex++ biberon pdflatexex.tex你会得到

代码输出

答案2

我遇到了同样的问题。只需获取 Torborn T. 的代码并删除括号“{”和“}”。输入以下命令:

doc.preamble.append(pl.Command('addbibresource',arguments=[pl.NoEscape(r"biblatex-examples.bib")]))

代替:

doc.preamble.append(pl.Command('addbibresource',arguments=["biblatex-examples.bib"]))

相关内容