Estou interessado em usar o PyLatex para automatizar uma tabela com diversas entradas de forma que não precise percorrê-la manualmente toda vez que precisar alterar ou adicionar uma entrada. Na última coluna desta tabela é necessária a referência de onde tirei o lançamento.
Até o momento não encontrei nenhum exemplo de como usar PyLatex com estilos de Bibliografia, você pode saber um exemplo de como fazer isso?
Responder1
Na verdade, nada de especial é necessário, apenas uma questão de adicionar o pacote apropriado etc. ao preâmbulo e \printbibliography
(ou \bibliography{<filename>}
) no documento. O código é curto e, suponho, bastante autoexplicativo.
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')
Esse script Python irá gerar este código em 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}
Desconsiderando a bobagem de começar \normalsize
e terminartodolinha com a %
, o único problema que precisa ser corrigido é remover os colchetes ao redor do -
in \addbibresource
. Ou seja, deveria ser \addbibresource{biblatex-examples.bib}
. (Não sei por que esses aparelhos foram adicionados, nem como removê-los.)
Executando o normal pdflatex
+ biber
+ pdflatex
on ex.tex
, e você obtém
Responder2
Eu tive o mesmo problema. Basta pegar o código de Torborn T. e apagar os colchetes "{" e "}". Digite este comando:
doc.preamble.append(pl.Command('addbibresource',arguments=[pl.NoEscape(r"biblatex-examples.bib")]))
em vez de:
doc.preamble.append(pl.Command('addbibresource',arguments=["biblatex-examples.bib"]))