Crear sus propios estilos para Pybliographer.
Zoltán Kóta
zoltank@gmail.com
Frédéric Gobry
frederic.gobry@epfl.ch

Creative Commons Compartir Igual 3.0

# Estilos nuevos

Es posible describir su propio estilo bibliográfico escribiendo un sencillo archivo XML. El archivo XML debería tener la siguiente cabecera:

          <?xml version="1.0"?>

La descripción completa debería caber en un par de etiquetas <bibstyle>, cuyo contenido se describe brevemente en esta sección. Se sugiere que el usuario interesado mire en la DTD correspondiente, que describe detalladamente la sintaxis permitida. Esta DTD se puede encontrar en la misma carpeta que la de los archivos de estilo predeterminados.

# Formateado global

El archivo de estilo XML describe cómo se organizan los diferentes campos de datos para crear un estilo bibliográfico. Por ejemplo, puede especificar que un artículo empieza con el título del artículo en negrita, seguido de los nombres de los autores, etc.

Sin embargo, actualmente XML no puede describir información de bajo nivel, por ejemplo, cómo debería ser la salida de un nombre de autor. Esto se hace apuntando a un conjunto de funciones python, agrupadas en un módulo. Considere el siguiente ejemplo:

      <module name="generic">
        <define field="author">full_authors</define>
        <define field="editor">first_last_full_authors</define>
        <define field="date">european_date</define>
        <define method="keys">string_keys</define>
      </module>

En este ejemplo, se requiere que los campos autor estén formateados con la función `full_authors()`, ubicada en el módulo generic.

Un módulo se debe declarar en el archivo pybrc.py, con una línea como:

    Autoload.preregister ('style','Generic','Pyblio.Style.Generic')

La definición precisa de las funciones de formateado se explica mejor mirando, por ejemplo, el código de Generic.py.

# Definición bibliográfica

Una vez que se ha especificado el formato básico de las definiciones, es posible describir el aspecto de las bibliografías actuales con las siguientes etiquetas:

<style name="stylename">

Esta etiqueta especifica el estilo de visualización actual, entre bold, italic, slanted, emph.

<inentry name="entryname">

Esta etiqueta encierra un bloque que sólo aparece en las entradas de tipo entryname.

<notinentry name="entryname">

Esta etiqueta encierra un bloque que sólo aparece en las entradas que no son de tipo entryname.

<infield name="fieldname">

Esta etiqueta encierra un bloque que sólo aparece en las entradas que cuando el campo fieldname especificado existe en la entrada actual.

<notinfield name="fieldname">

Esta etiqueta encierra un bloque que sólo aparece en las entradas que cuando el campo fieldnameespecificado no existe en la entrada actual.

<content name="fieldname"/>

Esta etiqueta vacía se reemplaza con el contenido del campo actual (cuando se sitúa en un bloque <infield>) o el contenido del campo especificado como atributo.

<separator>

El contenido de esta etiqueta se evalúa a nada cuando no hay texto publicado hasta ahora. Es una forma conveniente de añadir un delimitador después de una serie de campos sin preocuparse del caso especial cuando los campos no están definidos.

Los archivos de estilo existentes son una buena fuente de ejemplos.

# Futuro del formato

En el futuro, este formato rudimentario se reemplazará por un mecanismo basado en XSL, que debería incluir tanto la definición de XML como la de los módulos de python, proporcionando de este modo archivos de estilo independientes, interpretables por cualquier analizador XSL.