- › IntroducciónDescripción: Qué es biblio-py, para qué sirve y sus características importantes
- › InstalaciónObtener biblio-py. Instrucciones de instalación manual y en un sistema Gentoo Linux
- › Uso de los programasUso de los programas incluidos con el paquete
- › Hágalo Ud. mismoInstrucciones para usar biblio-py en sus programas
- › Uso avanzadoDetalles y uso avanzado del paquete
Descripción^ TOP
Biblio-py es un paquete escrito en el lenguaje python que permite administrar bibliografía. contiene dos sub-paquetes:
- yapbib: "Yet Another Python BIBliography" es otra Herramienta para manejo de bibliografía dirigido especialmente (aunque no en forma exclusiva) para archivos BibTeX.
- query_ads: Una herramienta simple para extraer referencias de la base de datos de Harvard
El paquete está funcionando bien pero trataré de realizar los ajustes necesarios si son reportados.
Características^ TOP
- Programas de Software Libre, con licencia GPL (Libre para usar-modificar-redistribuir).
- Modelo de programación orientado a objetos.
- Lectura de formato BibTeX y formato portable de la base de datos de Harvard (ADS portable format).
- Conversión a formatos BibTex, LaTeX, HTML y XML.
- Usa un formato interno standard en python a través del módulo cPickle.
- Convierte acentos y algunos caracteres especiales a XML.
- Entiende (algunas) expresiones matemáticas. Por ahora principalmente subíndices y superíndices. Es relativamente extender estas capacidad.
- Incluye algunos programas simples para manejar bases de datos, obtener bibliografía de la base de datos online y para extraer las citas de un documento LaTeX.
- Puede importar el paquete en sus programas y así utilizar toda la capacidad de python para manipular los datos acorde a sus necesidades.
Instalación^ TOP
Puede instalarse usando easy_install, directamente del código fuente o a través de un ebuild, adecuado para una instalación en Gentoo Linux
Using Easy Install
Simplemente escriba en una terminal:
$>easy_install biblio-py
o
$>pip install biblio-py
Si está actualizando a una nueva versión, simplemente escriba
$>pip install --upgrade biblio-py
Instalación Manual
- Descargue el archivo comprimido con la última versión
- Grábelo en un directorio temporario.
- Descomprima el archivo e instale utilizando el setup
$>tar -xvzf biblio-py-x.x.x.tar.gz $>cd biblio-py-x.x.x $>./setup.py install
Instalación Gentoo
- Descargue el ebuild y cópielo en su portage local tree.
- Ejecute:
$>echo dev-python/biblio-py >> /etc/portage/package.keywords $>ebuild biblio-py-x.x.x.ebuild digest $>emerge biblio-py
Modo de uso^ TOP
El paquete incluye tres scripts:
get_papers.py
, bibmanage.py
y
bibextract.py
.
Para obtener ayuda en cualquiera de ellos escriba:
<script> -h
<script> --help
Ejemplos de bibmanage
- Ejemplo: Importe el archivo BibTeX myrefs.bib y guarde los
datos en el formato interno en la el archivo
myrefs.dmp
:$>bibmanage.py myrefs.bib -d myrefs.dmp
myrefs.dmp
al cual se accede mucho más rápidamente que a un archivo bibtex. - Ejemplo: Para unir dos archivos bibtex y guardarlo en uno nuevo
mientras además se guarda la base en formato interno al archivo
database.dmp
utilice:$>bibmanage.py myrefs1.bib myrefs1.bib -f bib -o bib allrefs.bib -o database.dump --keep-keys $>bibmanage.py myrefs1.bib myrefs1.bib -f bib -o allrefs.bib -o database.dump
Las primeras siete letras (o menos) del nombre del primer autor + año + abreviatura de revista + p + página. - Ejemplo: Seleccione de un archivo bibtex comprimido (bz2) sólo
aquellas entradas que tienen una dada frase en la clave original y
con salida por pantalla:
$>bibmanage.py myrefs.bib.bz2 --keep-keys -s substring:_code -o -
- Ejemplo: Para seleccionar de un archivo bibtex comprimido (bz2)
sólo aquellas entradas que tienen una dada frase en la clave
interna (como describimos anteriormente) y con salida por pantalla
utilice uno de los dos comandos:
$>bibmanage.py myrefs.bib.bz2 --keep-keys -s substring:key -o - $>bibmanage.py myrefs.bib.bz2 -s substring:_code -o -
- Ejemplo: Seleccione sólo aquellas entradas cuyo autor es (entre
otros) autor1,B. y escriba la salida en formato HTML al archivo
autor1.html use uno de los siguientes (el uso de opciones cortas o
largas es equivalente):
$>bibmanage.py myrefs.dmp -s autor1,B:author -o autor1.html -f html $>bibmanage.py myrefs.dmp --search=autor1,B:author --output=autor1.html --format=html
- El último ejemplo puede hacerse sobre el archivo bibtex pero es
un proceso un poco más lento
$>bibmanage.py myrefs.bib -s autor1,B:author -o autor1.html -f html
- Ejemplo: Seleccione sólo aquellas entradas cuyo autor es (entre
otros) autor1,B. pero no autor2,C e imprímalos en formato LaTeX al
archivo ejemplo.tex:
$>bibmanage.py myrefs.dmp -s autor1,B:author -x autor2,C:author -o ejemplo.tex -f
- Restrinja los resultados del último ejemplo a trabajos
publicados entre los años 2004 y 2006
$>bibmanage.py myrefs.dmp -x autor1,B:author -x autor2,C:author \ --start-year=2004 --end-year=2006 -o ejemplo.tex -f
Ejemplos get_papers
- Ejemplo: Descargue referencias a todos los trabajos en la base
de datos de Harvard para un autor dado en un dado año
$>get_papers.py --author=Einstein,A. --year=1905
- Ejemplo: Uso de algunas opciones
$>get_papers.py --author=Einstein,A. --year=1905 -f html -o biblio.html $>get_papers.py --author=Einstein,A. --year=1905 -f latex --output=biblio.tex $>get_papers.py --author=Einstein,A. --year=1905 -f latex --sort=date,reverse
Ejemplos bibextract
- Ejemplo: El uso más simple de este script para obtener
un archivo con las entradas citadas en un documento
document.tex
odocument.aux
sería:$>bibextract document.tex $>bibextract document.aux
document.bib
con todas las entradas citadas.
Hágalo usted mismo^ TOP
Es relativamente fácil usar los módulos en sus programas (scripts) en python. Utilice los scripts incluidos como ejemplos de uso. Son relativamente pequeños pero tienen todos los ingredientes necesarios. A continuación mostramos algunos ejemplos más simples:Script simple
El ejemplo más simple para convertir su base de archivos bibtex a una lista en latex podría ser algo como:
import yapbib.biblist as biblist
#
# Change here to your files
bibfile= yourbib.bib # input database
outputfile=myfile.tex # output latex file
# latexstyle, overrides default values
latexstyle={ 'url': None, # Do not include url
'doi': None, # Do not include doi
'author': (r'\textbf{',r'}'), # Write the authors in boldface
}
b=biblist.BibList()
b.import_bibtex(bibfile)
# Sort them in your specified order and export them to latex list
b.sort(['year','firstpage','author','journal'],reverse=True)
b.export_latex(outputfile,style=latexstyle)
Manipulación extra de los datos
Puede manipular las entradas a su necesidad antes de convertirlas (aunque ese es el propósito del programa incluido: bibmanage.py)
import yapbib.biblist as biblist
#
# Change here to your files
bibfile= yourbib.bib # input database
outputfile=myfile.tex # output latex file
# latexstyle, overrides default values
latexstyle={ 'url': None, # Do not include url
'doi': None, # Do not include doi
'author': (r'\textbf{',r'}'), # Write the authors in boldface
}
b=biblist.BibList()
b.import_bibtex(bibfile)
# Select only some items
items= b.search(findstr='name1',fields=['author','key'])
# Create a reduced database
bout= biblist.BibList()
for it in items:
bout.add_item(b.get_item(it),it)
# Sort them in your specified order and export them to latex list
bout.sort(['year','firstpage','author','journal'],reverse=True)
bout.export_latex(outputfile,style=latexstyle)
Explore el módulo en forma interactiva
>>> import yapbib.biblist as biblist
>>> b=biblist.BibList()
>>> b.import_bibtex('mybib.bib')
>>> items= b.List() # Shows the keys of all entries
>>> items
['KEY1','KEY2']
>>> it= b.get_item(items[0]) # Get first item
>>> it= b.get_items()[0] # (Alternative) to get first item
>>> it.get_fields() # Show all fields for item
>>> it.preview() # Show a preview (brief info)
>>> bib= it.to_bibtex() # get item in BibTeX form
>>> tex= it.to_latex() # get item in LaTeX form
>>> html= it.to_html() # get item in html form
>>> print it # print full information on the item
>>> print unicode(it) # Use this if it has non-ascii characters