Está en la página 1de 333

Manual de usuario de calibre

Versin 2.82.0

Kovid Goyal

marzo 18, 2017


ndice general

1. Secciones 3

ndice de Mdulos Python 307

ndice 309

I
II
Manual de usuario de calibre, Versin 2.82.0

calibre es un gestor de biblioteca de libros electrnicos. Con calibre puede leer, convertir y catalogar libros electrnicos
en la mayora de los principales formatos. Tambin puede comunicarse con muchos dispositivos de lectura de libros
electrnicos. Puede obtener metadatos para los libros de Internet. Puede descargar peridicos y convertirlos en libros
electrnicos para una lectura ms cmoda. Es multiplataforma, funciona en Linux, Windows y OS X.
Acaba de iniciar calibre. Y ahora qu? Antes de que calibre pueda hacer nada con sus libros electrnicos, tiene que
saber de ellos. Arrastre y suelte algunos archivos de libro electrnico en calibre o pulse el botn Aadir libros
y seleccione los libros con los que quiere trabajar. Una vez que haya aadido los libros, aparecern en la ventana
principal de manera parecida a sta:

Cuando haya admirado la lista de los libros que acaba de aadir durante un tiempo suficiente, probablemente quiera
leer alguno. Para ello tendr que convertir el libro a un formato que su lector entienda. La primera vez que ejecute
calibre, el Asistente de bienvenida se iniciar y configurar calibre para su dispositivo lector. La conversin es muy
sencilla, no tiene ms que seleccionar el libro que quiere convertir y pulsar el botn Convertir libros. Ignore todas
las opciones por ahora y pulse Aceptar. El pequeo icono en la esquina inferior derecha empezar a girar. Cuando
deje de girar, el libro convertido est listo. Pulse el botn Mostrar para leer el libro.
Si quiere leer el libro en el lector, conctelo al equipo, espere a que calibre lo detecte (10-20 segundos) y pulse el botn
Enviar al dispositivo. Cuando el icono deje de girar de nuevo, desconecte el lector y ya puede leer! Si no convirti
el libro en el paso anterior, calibre lo convertir automticamente al formato que necesite el dispositivo lector.
Para iniciarse en un uso ms avanzado, debera leer sobre La interfaz grfica de usuario (pgina 3). Si quiere an ms
potencia y versatilidad, aprenda Interfaz de lnea de rdenes (pgina 249). Tambin puede encontrar til la lista de
Preguntas frecuentes (pgina 114).

ndice general 1
Manual de usuario de calibre, Versin 2.82.0

2 ndice general
CAPTULO 1

Secciones

1.1 La interfaz grfica de usuario

La interfaz grfica de usuario (GUI) da acceso a todas las funciones de gestin de biblioteca y conversin de formatos
de libro electrnico. El proceso bsico para usar calibre comienza aadiendo libros a la biblioteca desde el disco duro.
calibre intentar leer automticamente los metadatos de los libros y los aadir a la base de datos interna. Una vez que
estn en la base de datos, puede realizar distintas Acciones (pgina 4) sobre ellos, incluidas la conversin de un formato
a otro, la transferecencia a un dispositivo de lectura, la visualizacin en el equipo y la modificacin de metadatos. Esta
ltima accin incluye la modificacin de la portada, descripcin y etiquetas entre otros detalles. Tenga en cuenta que
calibre crea copias de los archivos que aada. Los archivos originales no se alteran.
La interfaz se divide en varias secciones:

Acciones (pgina 4)
Preferencias (pgina 11)
Catlogos (pgina 11)
Buscar y ordenar (pgina 12)
La interfaz de bsqueda (pgina 12)
Guardar bsquedas (pgina 16)
Bibliotecas virtuales (pgina 16)
Extraer metadata de los nombres de archivo (pgina 16)
Detalles del libro (pgina 17)
Explorador de etiquetas (pgina 19)
Cuadro de portadas (pgina 21)
Explorador de portadas (pgina 22)

3
Manual de usuario de calibre, Versin 2.82.0

Vista rpida (pgina 22)


Tareas (pgina 23)
Atajos de teclado (pgina 23)

1.1.1 Acciones

La barra de herramientas de acciones ofrece un acceso inmediato a algunas acciones usuales. Si pulsa con el botn
derecho sobre los botones puede realizar variaciones de la accin predeterminada. Tenga en cuenta que la barra de
herramientas de acciones puede tener un aspecto distinto dependiendo de si hay algn dispositivo de lectura conectado
al equipo.

Aadir libros (pgina 4)


Editar metadatos (pgina 5)
Convertir libros (pgina 6)
Mostrar (pgina 6)
Enviar al dispositivo (pgina 7)
Descargar noticias (pgina 7)
Biblioteca (pgina 8)
Dispositivo (pgina 8)
Guardar en el disco (pgina 9)
Conectar y compartir (pgina 9)
Eliminar libros (pgina 10)

Aadir libros

La accin Aadir libros tiene siete variantes accesibles pulsando con el botn derecho sobre el
botn.
1. Aadir libros desde un nico directorio: Abre un dilogo de seleccin de archivo y le permite especificar qu
libros de un directorio aadir. Esta accin es sensible al contexto, es decir, depende de qu catlogo (pgina 11)
est seleccionado. Si est seleccionada la Biblioteca, los libros se aadirn a la biblioteca. Si est seleccionado
el dispositivo de lectura, los libros se copiarn al dispositivo, etc.
2. Aadir libros de directorios, incluyendo subdirectorios. (Un libro por directorio, se asume que cada ar-
chivo de libro electrnico es el mismo libro en un formato diferente): Le permite elegir un directorio. Se

4 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

buscar en el directorio y todos sus subdirectorios de manera recursiva y todos los libros que se encuentren se
aadirn a la biblioteca. calibre asume que cada directorio contiene un nico libro y que todos los archivos de
libro en el directorio corresponden al mismo libro en distintos formatos. Esta accin es la inversa de la accin
Guardar en el disco (pgina 9), es decir, puede Guardar en el disco, eliminar los libros y volver a aadirlos sin
prdida de informacin excepto por la fecha (suponiendo que no haya modificado ninguna configuracin de la
accin Guardar en el disco).
3. Aadir libros de directorios, incluyendo subdirectorios. (Mltiples libros por directorio, se asume que
cada archivo de libro electrnico es un libro diferente): Le permite elegir un directorio donde se buscar
recursivamente, incluyendo todos sus subdirectorios, y todos los libros electrnicos encontrados se aadirn a
la biblioteca. calibre asume que cada directorio contiene varios libros. Se supone que todos los archivos de libro
electrnico con el mismo nombre en un directorio corresponden al mismo libro en distinto formato. Los archivos
con nombres distintos se aadirn como libros distintos.
4. Aadir varios libros desde un archivo (ZIP/RAR): Le permite aadir mltiples libros que estn almacenados
en los archivos ZIP o RAR seleccionados. Es una va rpida para evitar tener que descomprimir los archivos
primero y luego aadir los libros con alguna de las dos opciones anteriores.
5. Add empty book (Book Entry with no formats): Allows you to create a blank book record. This can be used
to then manually fill out the information about a book that you may not have yet in your collection.
6. Aadir a partir del ISBN: Le permite aadir uno o ms libros introduciendo sus ISBN.
7. Aadir archivos a los registros de libros seleccionados: Le permite aadir o actualizar los archivos asociados
con un libro existente en la biblioteca.
La accin Aadir libros puede leer metadatos de una amplia variedad de formatos de libro electrnico. Adems,
intenta extraer metadatos a partir del nombre de archivo. Vea la seccin Extraer metadata de los nombres de archivo
(pgina 16) para saber cmo configurar esto.
Para aadir un formato adicional a un libro existente, puede hacer cualquiera de estas tres cosas:
1. Arrastrar y soltar un archivo en el panel de detalles del libro, en la parte derecha de la ventana principal.
2. Pulse con el botn derecho sobre Aadir libros y elija Aadir archivos a los registros de libros seleccionados.
3. Pulsar sobr el botn rojo para aadir libros en la parte superior derecha del dilogo Modificar metadatos, acce-
sible mediante la accin Editar metadatos (pgina 5).

Editar metadatos

La accin Modificar metadatos tiene cuatro variantes accesibles pulsando con el botn derecho
sobre el botn de la accin.
1. Modificar metadatos por separado: Le permite modificar los metadatos de los libros uno a uno, con la opcin
de obtener los metadatos, incluidas las portadas, de Internet. Tambin le permite aadir o eliminar formatos
especficos de un libro.
2. Modificar metadatos en masa: Le permite modificar campos de metadatos comunes a un gran nmero de libros
simultneamente. La operacin se realiza sobre todos los libros que estn seleccionados en la Vista de biblioteca
(pgina 12).
3. Descargar metadatos y portadas: Descarga metadatos y portadas (si estn disponibles) para los libros selec-
cionados en la lista de libros.

1.1. La interfaz grfica de usuario 5


Manual de usuario de calibre, Versin 2.82.0

4. Unir registros de libros: Le ofrece la posibilidad de unir los metadatos y formatos de dos o ms registros de
libros. Puede elegir borrar o mantener los registros distintos del primero seleccionado.
Para ms detalles vea Modificar metadatos de libros electrnicos (pgina 111).

Convertir libros

Los libros electrnicos pueden convertirse de una variedad de formatos al formato que su
lector de libros electrnicos prefiera. Muchos libros electrnicos a la venta estarn protegidos por tecnologa de gestin
digital de derechos1 (DRM). calibre no convertir estos libros. Es sencillo eliminar la DRM de muchos formatos, pero
como esto puede ser ilegal, es su responsabilidad encontrar las herramientas para liberar sus libros y luego usar calibre
para convertirlos.
Para la mayora de los usuarios, la conversin es cuestin de una sola pulsacin. Si quiere saber ms sobre el proceso
de conversin, vea Conversin de libros (pgina 59).
La accin Convertir libros tiene tres variantes accesibles pulsando con el botn derecho sobre el botn de la accin.
1. Convertir por separado: Le permite especificar opciones de conversin para personalizarla conversin de cada
libro seleccionado.
2. Convertir en masa: Le permite especificar opciones una sola vez y convertir un nmero de libros en masa.
3. Crear un catlogo de los libros en la biblioteca de calibre: Le permite generar un listado completo de los libros
en la biblioteca, incluyendo todos los metadatos, en formatos como XML, CSV, BiBTeX, EPUB y MOBI. El
catlogo contendr todos los libros que se muestren actualmente en la vista de biblioteca. Esto le permite usar las
funciones de bsqueda para limitar los libros catalogados. Adems, si selecciona varios libros con el ratn, slo
se incluirn esos libros. Si genera el catlogo en un formato de libro electrnico como EPUB, MOBI o AZW3,
la prxima vez que conecte un dispositivo de lectura el catlogo se enviar automticamente al dispositivo. Para
ms informacin sobre cmo funcionan los catlogos, lea Crear catlogos AZW3 EPUB MOBI (pgina 204).

Mostrar

La accin Mostrar abre el libro en un programa visualizador de libros electrnicos. calibre tiene un
visor incorporado para muchos formatos de libro electrnico. Para otros formatos usa la aplicacin predeterminada del
sistema operativo. Puede configurar qu formatos se abren con el visor interno en Preferencias > Comportamiento. Si
un libro tiene ms de un formato, puede abrir un formato especfico pulsando con el botn derecho sobre el botn de
la accin.

1 https://drmfree.calibre-ebook.com/about#drm

6 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

Enviar al dispositivo

La accin Enviar al dispositivo tiene ocho variantes accesibles pulsando con el botn derecho
sobre el botn de la accin.
1. Enviar a la memoria principal: Los libros seleccionados se copian en la memoria principal del dispositivo de
lectura.
2. Enviar a la tarjeta de memoria A: Los libros seleccionados se copian a la tarjeta de memoria (A) en el
dispositivo de lectura.
3. Enviar a la tarjeta de memoria B: Los libros seleccionados se copian a la tarjeta de memoria (B) en el dispo-
sitivo de lectura.
4. Enviar formato especfico a: Los libros seleccionados se copian al lugar de almacenamiento seleccionado en
el dispositivo, en el formato que especifique.
5. Desconectar dispositivo. Desconecta el dispositivo de calibre.
6. Asignar accin predeterminada de enviar al dispositivo: Le permite especificar cul de las acciones (1 a 5, o
7) ser la accin predeterminada cuando se pulsa el botn principal.
7. Enviar y eliminar de la biblioteca: Los libros seleccionados se copian al lugar de almacenamiento seleccionado
en el dispositivo y despues se borran de la biblioteca.
8. Obtener anotaciones (experimental): Copia las anotaciones que pueda haber en un libro del dispositivo al
campo de comentarios en los metadatos del libro en la biblioteca de calibre.
Puede controlar el nombre de archivo y la estructura de carpetas de los archivos que se envan al dispositivo estable-
ciendo una plantilla en Preferencias > Importar y exportar > Enviar libros a dispositivos. Vase tambin El lenguaje
de plantillas de calibre (pgina 146).

Descargar noticias

La accin:Obtener noticias descarga noticias de distintos sitios web y las convierte en un libro
electrnico que pued leer en un dispositivo de lectura. Normalmente, el libro electrnico creado se aade a la biblioteca,
pero si tiene un dispositivo conectado cuando termina la descarga, el libro tambin se copia al lector automticamente.
La accin Obtener noticias usa frmulas simples (10-15 lneas de cdigo) por cada sitio de noticias. Para saber cmo
crear frmulas para sus fuentes de noticias preferidas, vea Aadir su sitio de noticias favorito (pgina 24).
La accin Obtener noticias tiene tres variantes accesibles pulsando con el botn derecho sobre el botn de la accin.
1. Planificar descarga de noticias: Le permite planificar la descarga de las fuentes de noticias seleccionadas de
los cientos disponibles. La planificacin puede establecerse de manera individual para cada fuente de noticias
seleccionada y permite seleccionar das de la semana especficos o un nmero de das de intervalo entre descar-
gas.

1.1. La interfaz grfica de usuario 7


Manual de usuario de calibre, Versin 2.82.0

2. Aadir una nueva fuente de noticias: Le permite crear una frmula simple para descargar noticias de un sitio
de noticias personalizado al que quiera acceder. Crear una frmula puede ser tan simple como especificar la
direccin URL de un canal RSS, o puede ser ms detallado, creando un cdigo basado en python para la tarea.
Para ms informacin vase Aadir su sitio de noticias favorito (pgina 24).
3. Descargar todas las fuentes de noticias planificadas: Hace que calibre empiece inmediatamente a descargar
todas las fuentes de noticias que tenga planificadas.

Biblioteca

La accin Biblioteca le permite crear, eliminar o cambiar el nombre a una biblioteca, o cambiar de
una biblioteca a otra. calibre le permite crear tantas bibliotecas como desee. Puede, por ejemplo, crear una biblioteca
de ficcin, una de no ficcin, una de idiomas extranjeros, una de proyectos, o cualquier estructura que le convenga.
Las bibliotecas son la estructura de organizacin de mayor nivel dentro de calibre. Cada biblioteca tiene su propio
conjunto de etiquetas, categoras y ubicacin de almacenamiento base.
1. Cambiar o crear biblioteca...: Le permite: a) conectar con una biblioteca de calibre existente en otra ubicacin,
b) crear una biblioteca vaca en una nueva ubicacin o c) mover la biblioteca actual a una nueva ubicacin.
2. Cambio rpido: Le permite cambiar de una biblioteca a otra si han sido registradas o creadas con calibre.
3. Cambiar el nombre a la biblioteca: Le permite cambiar el nombre a una biblioteca.
4. Eliminar biblioteca: Le permite dar de baja una biblioteca en calibre.
5. <nombre de biblioteca>: Las acciones 5, 6, etc. le dan acceso inmediato a las bibliotecas que haya creado o
registrado. Esta lista contiene slo las 5 bibliotecas ms usadas. Para tener la lista completa, use el men Cambio
rpido.
6. Mantenimiento de la biblioteca: Le permite comprobar la coherencia de los datos en la biblioteca actual,
detectar problemas y restaurar la base de datos de la biblioteca a partir de copias de respaldo.

Nota: Los metadatos de los libros, como el ttulo, autor y etiquetas, se almacenan en un nico archivo en la carpeta de
la biblioteca de calibre, llamado metadata.db. Si este archivo se corrompe (un suceso muy infrecuente) pueden perderse
los metadatos. Por suerte, calibre copia automticamente los metadatos de cada libro en su correspondiente carpeta
como un archivo OPF. Mediante la accin Restaurar base de datos bajo Mantenimiento de la biblioteca, descrita
anteriormente, puede hacer que calibre reconstruya el archivo metadata.db a partir de los archivos OPF individuales.

Puede copiar o mover libros entre diferentes bibliotecas (una vez que haya configurado ms de una biblioteca) pulsando
con el botn derecho sobre un libro y seleccionando la accin Copiar a biblioteca.

Dispositivo

La accin Dispositivo le permite ver los libros en la memoria principal o en las tarjetas de almacena-

8 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

miento de un dispositivo o desconectarlo de calibre. Este icono aparece automticamente en la barra de herramientas
principal de calibre cuando se conecta un dispositivo soportado. Puede pulsar sobre l para ver los libros en el dispo-
sitivo. Tambin puede arrastrar y soltar libros de la biblioteca de calibre sobre el icono para copiarlos al dispositivo.
Anlogamente, puede arrastrar y soltar libros del dispositivo sobre el icono de la biblioteca en la barra de herramientas
para copiarlos del dispositivo a la biblioteca de calibre.

Guardar en el disco

La accin Guardar en el disco tiene cinco variantes, accesibles pulsando con el botn derecho
sobre el botn de la accin.
1. Guardar en el disco: Guarda los libros seleccionados en el disco, organizados por directorios. La
estructura de directorios es algo as:

Author_(sort)
Title
Book Files

Puede controlar el nombre de archivo y la estructura de carpetas de los libros guardados en el disco
estableciendo una plantilla en Preferencias > Importar y exportar > Guardar libros en disco. Vase
tambin El lenguaje de plantillas de calibre (pgina 146).
2. Guardar en el disco, en un nico directorio: Guarda los libros seleccionados en el disco, en un
nico directorio.
Con las opciones 1 y 2 se guardan en el disco todos los formatos, incluidos los metadatos, de cada libro
seleccionado. Los metadatos se almacenan en un archivo OPF. Los libros guardados pueden volver a ser
importados a la biblioteca sin prdida de informacin usando la accin Aadir libros (pgina 4).
3. Guardar solamente el formato *<principal>* en disco: Guarda los libros seleccionados en el
disco con la estructura de directorios mostrada en (1), pero slo en el formato principal. Puede
establecer el formato preferido en Preferencias > Comportamiento > Formato de salida principal.
4. Guardar slo el formato *<principal>* en un nico directorio: Guarda los libros seleccionados
en el disco, en un nico directorio, pero slo en el formato principal.
5. Guardar un solo formato en disco...: Guarda los libros seleccionados en el disco con la estructura
de directorios mostrada en (1), pero slo en el formato que seleccione en la lista emergente.

Conectar y compartir

La accin Conectar y compartir le permite conectar manualmente con un dispositivo o carpeta


en el equipo. Tambin le permite configurar la biblioteca de calibre para que pueda accederse a travs de un navegador
web o por correo electrnico.

1.1. La interfaz grfica de usuario 9


Manual de usuario de calibre, Versin 2.82.0

La accin Conectar y compartir tiene cuatro variantes accesibles pulsando con el botn derecho sobre el
botn de la accin.
1. Conectar a carpeta: Le permite conectar con cualquier carpeta en el equipo como si fuera un
dispositivo y usar las funciones que calibre ofrece para los dispositivos con esa carpeta. Esto es til
si tiene un dispositivo que no est soportado por calibre pero que est disponible como un disco
USB.
2. Conectar a iTunes: Le permite conectar con la base de datos de iTunes como si fuera un dispositivo.
Una vez que los libros se han enviado a iTunes, puede usar iTunes para copiarlos en los dispositivos
de Apple.
3. Iniciar servidor de contenidos: Inicia el servidor web incorporado en calibre. Cuando se ha ini-
ciado, la biblioteca de calibre ser accesible mediante un navegador web a travs de Internet (si
quiere que as sea). Puede configurar cmo se accede al servidor web en Preferencias > Compartir
> Compartir por la red.
4. Configurar el intercambio de libros por correo electrnico: Le permite compartir libros y canales
de noticias por correo electrnico. Despus de configurar las direcciones de correo para esta opcin,
calibre enviar actualizaciones de noticias y de libros a las direcciones suministradas. Puede confi-
gurar cmo se envan los correos electrnicos en Preferencias > Compartir > Compartir libros por
correo electrnico. Una vez que haya configurado una o varias direcciones de correo, esta entrada
del men se sustituir por entradas para enviar libros a las direcciones configuradas.

Eliminar libros

La accin Eliminar libros elimina libros permanentemente, as que sela con cuidado. Es
sensible al contexto, es decir, su comportamiento depende de qu catlogo (pgina 11) tenga seleccionado. Si tiene
seleccionada la Biblioteca, los libros se eliminarn de la biblioteca. Si tiene seleccionado el dispositivo de lectura, los
libros se eliminarn del dispositivo. Para eliminar un formato especfico de un libro use la accin Editar metadatos
(pgina 5). Eliminar libros tambin tiene seis variantes accesibles pulsando con el botn derecho sobre el men de la
accin.
1. Eliminar libros seleccionados: Le permite eliminar permanentemente todos los libros seleccionados en la
lista de libros
2. Eliminar archivos de un formato especfico de los libros seleccionados...: Le permite eliminar permanente-
mente archivos de un formato determinado de los libros seleccionados en la lista de libros.
3. Eliminar todos los formatos de los libros seleccionados, excepto...: Le permite eliminar permanentemente
los archivos de libro de cualquier formato excepto el especificado de los libros seleccionados en la lista de libros.
4. Eliminar todos los formatos de los libros seleccionados: Le permite eliminar permanentemente todos los
archivos de libro de los libros seleccionados en la lista de libros. Slo quedarn los metadatos.
5. Eliminar portadas de los libros seleccionados: Le permite eliminar permanentemente los archivos de imagen
de portada de los libros seleccionados en la lista de libros.
6. Eliminar los libros correspondientes del dispositivo: Le permite eliminar de un dispositivo conectado los
archivos de libro que correspondan a los libros seleccionados en la lista de libros.

Nota: Tenga en cuenta que al usar Eliminar libros para eliminar libros de la biblioteca de calibre, el registro del libro

10 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

se borra permanentemente, pero en Windows y OS X los archivos se mueven a la papelera de reciclaje. Esto le permite
recuperarlos si cambia de opinin.

1.1.2 Preferencias

La accin Preferencias le permite cambiar la manera en que funcionan distintos aspectos de


calibre. Tiene cuatro variantes accesibles pulsando con el botn derecho sobre el botn de la accin.
1. Preferencias: Le permite cambiar la manera en que funcionan los distintos aspectos de calibre. Esta accin
tambin se activa simplemente pulsando sobre el botn.
2. Ejecutar el asistente de bienvenida: Le permite iniciar el asistente de bienvenida, que apareci la primera vez
que se ejectu calibre.
3. Obtener complementos para mejorar calibre: Abre una nueva ventana que muestra complementos para cali-
bre. Estos complementos estn desarrollados por terceros para extender las funciones de calibre.
4. Reiniciar en el modo de depuracin: Le permite activar un modo de depuracin, que puede ayudar a los
desarrolladores de calibre a resolver los problemas que pueda encontrar con el programa. Para la mayora de los
usuarios esta opcin debe permanecer desactivada, a menos que un desarrollador le indique que la active.

1.1.3 Catlogos

Un catlogo es una coleccin de libros. calibre puede gestionar dos tipos diferences de catlogos:
1. Biblioteca: Es una coleccin de libros almacenados en la biblioteca de calibre en el equipo.
2. Dispositivo: Es una coleccin de libros almacenados en un dispositivo de lectura. Estar disponible cuando
conecte el dispositivo al equipo.
Muchas operaciones, como aadir o eliminar libros, visualizarlos, etc., son sensibles al contexto. As, por ejemplo, si
pulsa el botn Mostrar cuando tiene el catlogo Dipositivo seleccionado, calibre abrir los archivos en el dispositivo
para mostrarlos. Si tiene el catlogo Biblioteca seleccionado, se abrirn los archivos en la biblioteca de calibre.

1.1. La interfaz grfica de usuario 11


Manual de usuario de calibre, Versin 2.82.0

1.1.4 Buscar y ordenar

La seccin de bsqueda y ordenacin le permite realizar varias acciones muy tiles sobre las colecciones de libros.
Puede ordenarlas por ttulo, autor, fecha, calificacin, etc. pulsando sobre los ttulos de las columnas. Tambin
puede ordenar por varias columnas (ordenacin secundaria). Por ejemplo, si pulsa sobre la columna ttulo y
luego sobre la columna autor, los libros se ordenarn por autor y todas las entradas del mismo autor estarn
ordenadas por ttulo.
Puede buscar un libro determinado o un conjunto de libros usando la barra de bsqueda. Ms adelante hay ms
informacin sobre bsquedas.
Puede modificar metadatos de manera rpida y cmoda pulsando dos veces sobre la entrada que quiere modificar
en la lista.
Puede realizar Acciones (pgina 4) sobre conjuntos de libros. Para seleccionar varios libros tiene varias opciones:
Mantener pulsada la tecla Ctrl y pulsar sobre los libros que quiera seleccionar.
Mantener pulsada la tecla Mays y pulsar sobre el primer y ltimo libro de un grupo que quiera seleccio-
nar.
Puede configurar qu campos se muestran usando el dilogo Preferencias (pgina 11).

1.1.5 La interfaz de bsqueda

Puede buscar en todos los metadatos introduciendo los trminos de bsqueda en la barra de bsqueda. Las bsquedas
no distinguen entre maysculas y minsculas. Por ejemplo:

Asimov Foundation format:lrf

Esto encontrar todos los libros en la biblioteca que tengan Asimov y Foundation en los metadatos y que estn
disponibles en formato LRF. Otros ejemplos:

author:Asimov and not series:Foundation


title:"The Ring" or "This book is about a ring"
format:epub publisher:feedbooks.com

12 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

De manera predeterminada las bsquedas son de tipo contiene. Un elemento coincide si el texto de bsqueda aparece
en cualquier lugar en los metadatos indicados. Hay otros dos tipos de bsqueda disponibles: bsquedas de igualdad y
bsquedas usando expresiones regulares2 .
Las bsquedas de igualdad se indican precediendo el texto de bsqueda con el signo igual (=). Por ejemplo, la bsqueda
tag:`ciencia" encontrar ciencia pero no ciencia ficcin o historia de la ciencia. Las bsquedas por
expresin regular se indican precediendo el texto de bsqueda con una tilde (~). Puede usarse cualquier expresin
regular compatible con python3 . Tenga en cuenta que las barras invertidas usadas para incluir caracteres especiales en
las expresiones regulares deben duplicarse, porque las barras invertidas aisladas se eliminan al procesar las bsquedas.
Por ejemplo, para encontrar un parntesis literal debe introducir \\(. Las bsquedas con expresiones regulares son de
tipo contiene a no ser que la expresin contenga puntos de anclaje.
En caso de que necesite buscar un texto que empiece por un signo igual o una tilde, incluya una barra invertida al
principio.
Escriba los textos de bsqueda entre comillas () si el texto contiene parntesis o espacios. Por ejemplo, para bus-
car la etiqueta Ciencia ficcin deber escribir tag:`ciencia ficcin". Si escribe tag:=ciencia ficcin
encontrar todos los libros con la etiqueta ciencia y que contengan la palabra ficcin en cualquier metadato.
Puede construir bsquedas avanzadas de manera sencilla usando el dilogo de Bsqueda avanzada, al que se accede
pulsando el botn .

Los campos disponibles para bsquedas son: tag, title, author, publisher, series, series_index,
rating, cover, comments, format, identifiers, date, pubdate, search, size y las columnas perso-
nalizadas. Si est conectado algn dispositivo, el campo ondevice est tambin disponible para buscar en la vista
de biblioteca de calibre. Para conocer el nombre de bsqueda de una columna personalizada, ponga el cursor del ratn
sobre el encabezado de la columna en la vista de biblioteca.
La sintaxis para buscar fechas es:

pubdate:>2000-1 Will find all books published after Jan, 2000


date:<=2000-1-3 Will find all books added to calibre before 3 Jan, 2000
pubdate:=2009 Will find all books published in 2009

Si la fecha es ambigua, la configuracin local actual se usa para la comparacin de fechas. Por ejemplo, con una
configuracin mm/dd/yyyy, 2/1/2009 se interpreta como 1 Feb 2009; con una configuracin dd/mm/yyyy, se interpreta
como 2 Ene 2009. Hay algunas palabras especiales disponibles. El texto hoy significa la fecha de hoy, sea la que sea.
Los textos ayer y estemes (o sus equivalentes traducidos al idioma actual) tambin funcionan. Adems, el texto
dasatrs (tambin traducido) puede usarse para indicar una fecha de hace un cierto nmero de das. Por ejemplo:

date:>10daysago
date:<=45daysago

Para evitar problemas potenciales con textos traducidos al usar versiones de calibre en idiomas distintos del ingls, los
textos _today, _yesterday, _thismonth y _daysago estn siempre disponibles. No estn traducidos.
Puede buscar libros que tengan un formato de cierto tamao de esta manera:

size:>1.1M Will find books with a format larger than 1.1MB


size:<=1K Will find books with a format smaller than 1KB

Los campos numricos y de fecha permiten usar los operadores de relacin = (igual), > (mayor), >= (mayor o igual),
< (menor), <= (menor o igual) y != (distinto). Los campos de calificacin se consideran numricos. Por ejemplo, la
bsqueda rating:>=3 encontrar todos los libros con una calificacin de 3 o ms.
2 https://es.wikipedia.org/wiki/Expresi%C3%B3n_regular
3 https://docs.python.org/2/library/re.html

1.1. La interfaz grfica de usuario 13


Manual de usuario de calibre, Versin 2.82.0

Puede realizar una bsqueda por el nmero de elementos en campos de valor mltiple, como las etiquetas. Estas
bsquedas empiezan por el carcter #, y despus se usa la misma sintaxis que en los campos numricos. Por ejemplo,
para buscar todos los libros con ms de cuatro etiquetas, use tags:#>4. Para buscar todos los libros con exactamente
diez etiquetas, use tags:#=10.
Los nmeros de serie se pueden buscar. Para las series normales, el nombre de bsqueda es series_index. Para
columnas personalizadas de serie, use el nombre de bsqueda de la columna seguido de _index. Por ejemplo, para
buscar los nmeros de una columna personalizada de serie llamada #mi_serie, se usara el nombre de bsqueda
#mi_serie_index. Los nmeros de serie son nmeros, por lo que se pueden usar los operadores de relacin
descritos anteriormente.
El campo especial search se usa para las bsquedas guardadas. Si guarda una bsqueda con el nombre Los li-
bros de mi cnyuge, puede introducir search:"Los libros de mi cnyuge" en la barra de bsqueda para
reutilizar la bsqueda guardada. Ms adelante hay ms informacin sobre el guardado de bsquedas.
Puede buscar libros que contengan o no un campo usando los valores especiales true y false. Por ejemplo:

cover:false will give you all books without a cover


series:true will give you all books that belong to a series
comments:false will give you all books with an empty comment
format:false will give you all books with no actual files (empty records)

Las columnas personalizadas de s/no se pueden buscar. Si busca false, vaco o blanco se encontrarn todos
los libros con valor indefinido en la columna. Si busca true se encontrarn todos los libros que no tengan un valor
indefinido. Si busca s o marcado se encontrarn todos los libros con S en la columna. Si busca no o des-
marcado se encontrarn todos los libros con No en la columna. Tenga en cuenta que las palabras s, no, blanco,
vaco, marcado y desmarcado estn traducidas; puede usar tanto el equivalente en el idioma actual o la palabra
inglesa. Las palabras true y false y los valores especiales _yes, _no y _empty no estn traducidos.
Los elementos jerrquicos (por ejemplo A.B.C) emplean una sintaxis extendida para indicar las partes iniciales de la
jerarqua. Esto se hace aadiendo un punto entre el operador de coincidencia exacta (=) y el texto. Por ejemplo, la
bsqueda tags:=.A encontrar las etiquetas A y A.B, pero no las etiquetas AA o AA.B. La bsqueda tags:=.A.B
encontrar las etiquetas A.B y A.B.C, pero no la etiqueta A.
Los identificadores (isbn, doi, lccn, etc.) tambin usan una sintaxis extendida. En primer lugar, tenga en cuenta que un
identificador tiene la forma tipo:valor, como en isbn:123456789. La sintaxis extendida le permite especificar
de manera independiente qu tipo y valor buscar. Tanto la parte del tipo como la del valor pueden usar los tipos de
bsqueda de igualdad, expresiones regulares o contiene. Ejemplos:
identifiers:true encontrar libros con cualquier identificador.
identifiers:false encontrar libros sin identificador.
identifiers:123 encontrar libros con cualquier tipo de identificador cuyo valor contenga 123.
identifiers:=123456789 encontrar libros con cualquier tipo de identificador cuyo valor sea igual a
123456789.
identifiers:=isbn: e identifiers:isbn:true encontrarn libros con identificador de tipo isbn y
cualquier valor.
identifiers:=isbn:false encontrar libros sin identificador de tipo isbn.
identifiers:=isbn:123 encontrar libros con identificador de tipo isbn cuyo valor contenga 123.
identifiers:=isbn:=123456789 encontrar libros con identificador de tipo isbn cuyo valor sea igual a
123456789.
identifier:i:1 encontrar libros con identificadores cuyo tipo contenga una i y cuyo valor contenga un 1.

14 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

Figura 1.1: Dilogo de bsqueda avanzada

1.1. La interfaz grfica de usuario 15


Manual de usuario de calibre, Versin 2.82.0

1.1.6 Guardar bsquedas

calibre le permite guardar una bsqueda usada frecuentemente con un nombre especial, y luego usar dicha bsqueda
con una sola pulsacin. Para ello, cree la bsqueda escribiendo en la barra de bsqueda o con el explorador de etiquetas.
Despus escriba el nombre que desee darle a la bsqueda en el cuadro de bsquedas guardadas junto a la barra de
bsqueda. Pulse el icono con el signo ms junto al cuadro de bsquedas guardadas para guardar la bsqueda.
A partir de ahora podr acceder a la bsqueda guardada en el explorador de etiquetas, bajo Bsquedas. Una sola
pulsacin le permite volver a usar fcilmente bsquedas de cualquier complejidad, sin tener que crearlas de nuevo.

1.1.7 Bibliotecas virtuales

La opcin Biblioteca virtual es una manera de que calibre muestre slo algunos libros en vez de contener la biblioteca
completa. sta es una manera excelente de dividir la biblioteca completa en pequeas secciones fciles de manejar.
Para aprender cmo crear y usar bibliotecas virtuales, vea el cursillo Bibliotecas virtuales (pgina 209).

1.1.8 Extraer metadata de los nombres de archivo

Normalmente, calibre lee los metadatos a partir del contenido del archivo del libro. Sin embargo, puede configurarse
para leer los metadatos a partir del nombre de archivo, por medio de Preferencias > Aadir libros > Leer metadatos
desde el contenido del archivo.
Tambin puede controlar cmo se leen los metadatos desde el nombre del archivo utilizando expresiones regulares (ver
Todo acerca de cmo utilizar expresiones regulares en calibre (pgina 178)). En la seccin Aadir libros del cuadro
de dilogo de configuracin, puede especificar una expresin regular que calibre utilizar para tratar de adivinar los
metadatos a partir de los nombres de los archivos de libro electrnico que se aaden a la biblioteca. La expresin
regular predeterminada es:

title - author

es decir, asume que todos los caracteres hasta el primer - son el ttulo del libro y los caracteres subsiguientes son el
autor del libro. Por ejemplo, el nombre de archivo:

Foundation and Earth - Isaac Asimov.txt

ser interpretado con el ttulo: Foundation and Earth y autor: Isaac Asimov

Truco: Si el nombre del archivo no contiene ningn guin, la expresin regular anterior fallar.

16 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

1.1.9 Detalles del libro

El panel de detalles del libro muestra la portada y los metadatos para el libro que se encuentre seleccionado. Estos

1.1. La interfaz grfica de usuario 17


Manual de usuario de calibre, Versin 2.82.0

datos pueden ocultarse pulsando en el botn que se encuentra en la esquina inferior derecha de la ventana principal de
calibre. Se puede pulsar sobre los nombres de autor en el panel de detalles del libro, y al hacerlo el sistema abrir el
artculo de Wikipedia del respectivo autor. Esta opcin se puede personalizar pulsando con el botn derecho sobre el
nombre del autor y seleccionando la opcin Administrar este autor.
De manera similar, si se descargan metadatos del libro, el panel de detalles del libro mostrar automticamente enlaces
a las pginas del libro en Amazon, Worldcat, etc. desde donde se descargaron los metadatos.
Puede pulsar con el botn derecho individualmente en los formatos de libro electrnico en el panel Detalles del libro
para eliminarlos, compararlos con sus versiones originales, guardarlos en un disco, abrirlos con un programa externo,
etc.
Puede cambiar la portada del libro arrastrando y soltando una imagen en el panel de detalles del libro. Si desea
modificar la imagen de portada en un programa externo, pulse con el botn derecho sobre la imagen y elija Abrir
portada con....
Tambin puede aadir archivos de libro electrnico para el libro actual simplemente arrastrando y soltando los archivos
en el panel de detalles del libro.
Al pulsar dos veces en el panel de detalles del libro la informacin se desplegar en una nueva ventana.
Finalmente, puede personalizar qu informacin se mostrar en el panel de detalles del libro en Preferencias > Apa-
riencia > Detalles del libro.

18 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

1.1.10 Explorador de etiquetas

El explorador de etiquetas le permite navegar en la coleccin por autor, etiquetas, serie, etc. Si pulsa en cualquiera de
los elementos del explorador de etiquetas, por ejemplo el nombre del autor Isaac Asimov, la lista de libros a la derecha
mostrar solamente los libros de ese autor. Puede pulsar tambin en las diversas categoras. Por ejemplo, pulsando
Serie obtendr una lista de los libros en cualquier serie.
La primera pulsacin sobre un elemento restringe la lista de libros a aquellos que contienen o coinciden con un
elemento. Siguiendo con el ejemplo anterior, si pulsamos sobre Isaac Asimov se mostrarn los libros de este autor.
Al pulsar otra vez sobre el elemento se cambia lo que se muestra, dependiendo de si el elemento tiene descendientes
(ver subcategoras y elementos jerrquicos ms adelante). En el mismo ejemplo, si pulsamos otra vez sobre Isaac
Asimov se restringe la lista de libros a los que no son de Isaac Asimov. Una tercera pulsacin elimina la restriccin y
muestra todos los libros. Si mantiene pulsada la tecla Ctrl o Mays y pulsa en varios elementos, se crearn restricciones
basadas en varios elementos. Por ejemplo, puede mantener pulsada la tecla Ctrl y pulsar en las etiquetas Historia
y Europa para buscar libros sobre historia europea. El explorador de etiquetas construye expresiones de bsqueda
que se introducen automticamente en la barra de bsqueda. Examinar lo que genera el explorador de etiquetas es una
buena manera de aprender cmo construir expresiones bsicas.

1.1. La interfaz grfica de usuario 19


Manual de usuario de calibre, Versin 2.82.0

Los iconos de los elementos del explorador de etiquetas estn coloreados parcialmente. La cantidad de color depende
de la calificacin promedio de los libros en la categora. Por ejemplo, si los libros de Isaac Asimov tienen una califica-
cin media de cuatro estrellas, el icono para Isaac Asimov en el explorador de etiquetas est coloreado en 4/5. Puede
colocar el cursor del ratn sobre el icono para ver la calificacin promedio.
Los elementos ms externos del explorador de etiquetas, como Autores y Series, se llaman categoras. Puede crear
nuevas categoras, llamadas categoras de usuario, que resultan tiles para organizar los libros. Por ejemplo, puede
usar el editor de categoras de usuario (pulse en Modificar el explorador de etiquetas > Administrar autores, etiquetas,
etc. > Administrar categoras de usuario) para crear una categora llamada Autores favoritos y luego asignar los
elementos de sus autores favoritos a la categora. Las categoras de usuario pueden tener subcategoras. Por ejemplo, la
categora de usuario Favoritos.Autores es una subcategora de Favoritos. Podra tener tambin Favoritos.Series,
y entonces habra dos subcategoras dentro de Favoritos. Puede crear subcategoras pulsando con el botn derecho
sobre una categora de usuario, eligiendo Aadir una subcategora a ... e introduciendo el nombre de la subcategora;
o usando el editor de categoras de usuario e introduciendo nombres como en el ejemplo anterior de Favoritos.
Puede buscar categoras de usuario de la misma manera que las categoras predefinidas, pulsando sobre ellas. Hay cuatro tipos d

1. todo lo que coincida con un elemento de la categora, indicado por un solo signo ms verde.
2. todo lo que coincida con un elemento de la categora o sus subcategoras, indicado por dos signos ms
verdes.
3. todo lo que no coincida con ningn elemento de la categora, indicado por un signo menos rojo.
4. todo lo que no coincida con ningn elemento de la categora o sus subcategoras, indicado por dos signos
menos rojos.
Tambin es posible crear jerarquas dentro de algunas categoras de texto como las etiquetas, series y columnas de
texto. Estas jerarquas se muestran como un pequeo tringulo, permitiendo ocultar los subelementos. Para usar jerar-
quas de elementos en una categora debe ir a Preferencias > Apariencia e introducir el nombre de la(s) categora(s) en
el cuadro Categoras con elementos jerrquicos. Una vez hecho esto, los elementos en dicha categora que conten-
gan puntos se mostrarn usando el pequeo tringulo. Por ejemplo, supongamos que crea una columna personalizada
llamada Gnero e indica que contiene elementos jerrquicos. Los elementos tales como Misterio.Intriga y Miste-
rio.Espaol se mostrarn como Misterio con el tringulo al lado. Al pulsar sobre el tringulo se mostrarn Intriga
y Espaol como subelementos. Vase Gestionar subgrupos de libros, por ejemplo gnero (pgina 138) para ms
informacin.
Los elementos jerrquicos (elementos que tienen descendientes) usan las mismas cuatro bsquedas al pulsar que las
categoras de usuario. Los elementos sin descendientes usan dos de las bsquedas: todo lo que coincida y todo lo
que no coincida.
Puede arrastrar y soltar elementos del explorador de etiquetas sobre las categoras de usuario para aadirlos a la
categora. Si el origen es una categora de usuario y se mantiene pulsada la tecla Mays mientras se arrastra, se mover
el elemento a la nueva categora. Tambin puede arrastrar y soltar libros de la lista de libros sobre elementos en el
explorador de etiquetas; al soltar un libro sobre un elemento, ste se aplicar sobre el libro soltado. Por ejemplo, si se
arrastra un libro sobre Isaac Asimov se establecer el autor de dicho libro en Isaac Asimov. Si se arrastra sobre
la etiqueta Historia se aadir la etiqueta Historia a las etiquetas del libro.
Hay una barra de bsqueda en la parte superior del Explorador de etiquetas que le permite encontrar cualquier elemento
en el Explorador de etiquetas. Adems, puede pulsar con el botn derecho sobre cualquier elemento y elegir entre
varias operaciones. Algunos ejemplos son: ocultarlo, cambiarle el nombre o abrir un cuadro de dilogo de Administrar
x, donde puede administrar los elementos de ese tipo. Por ejemplo el cuadro Administrar autores le permite cambiar
los nombres de los autores y controlr cmo se ordenan.
Puede controlar cmo se ordenan los elementos del explorador de etiquetas por medio del botn Modificar el explo-
rador de etiquetas en la parte inferior del explorador de etiquetas. Puede elegir entre ordenar por nombre, calificacin
promedio o popularidad (popularidad es el nmero de libros con un elemento en la biblioteca; por ejemplo, la popula-
ridad de Isaac Asimov es el nmero de libros de Isaac Asimov en la biblioteca).

20 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

1.1.11 Cuadro de portadas

Puede hacer que calibre muestre un cuadro de portadas en lugar de una lista de libros, si prefiere ver la biblioteca como
portadas en lugar de nombres. El Cuadro de portadas se activa pulsando en el botn de parrilla en la esquina inferior
derecha de la ventana principal de calibre. Puede personalizar los tamaos de las portadas y el fondo del cuadro de
portadas en Preferencias > Apariencia > Cuadro de portadas. Puede tambin mostrar cualquier campo especificado
bajo las portadas, como el ttulo, autores o calificacin, o una columna personalizada de diseo propio.

1.1. La interfaz grfica de usuario 21


Manual de usuario de calibre, Versin 2.82.0

1.1.12 Explorador de portadas

Adems del cuadro de portadas descrito anteriormente, puede hacer que calibre muestre las portadas en una sola
fila. Esto se activa por medio de un botn en la esquina inferior derecha de la ventana principal. En Preferencias >
Apariencia > Explorador de portadas puede cambiar el nmero de portadas que se muestran o hacer que el explorador
de portadas se abra en una ventana aparte.

1.1.13 Vista rpida

En ocasiones querr seleccionar un libro y obtener rpidamente una lista de libros con el mismo valor de alguna
categora (autores, etiquetas, editorial, serie, etc.) que el libro seleccionado, pero sin cambiar la vista actual de la
biblioteca. Puede conseguirlo con la vista rpida. La vista rpida abre una segunda ventana que muestra la lista de los
libros que coinciden con el valor de inters.
Por ejemplo, supongamos que quiere ver una lista de todos los libros con el mismo autor que el libro actualmente
seleccionado. Pulse en la celda del autor en el que est interesado y pulse la tecla Q. Se abrir una ventana con todos
los autores del libro a la izquierda y todos los libros del autor seleccionado a la derecha.
Algunos ejemplos de uso de la vista rpida: ver rpidamente qu otros libros:
tienen alguna etiqueta que el libro actualmente seleccionado tiene aplicada,
estn en la misma serie que el libro actual
tienen los mismos valores en una columna personalizada que el libro actual
estn escrtos por alguno de los autores del libro actual
sin cambiar los contenidos de la vista de la biblioteca.
La ventana de vista rpida se abre sobre la ventana de calibre y se mantendr abierta hasta que la cierre explcitamente.
Puede usar la vista rpida y la vista de biblioteca de calibre simultneamente. Por ejemplo, si en la vista de biblioteca
de calibre pulsa sobre una columna de categora (etiquetas, serie, editorial, autores, etc.) para un libro, el contenido
de la ventana de vista rpida cambiar para mostrar en el panel izquierdo los elementos de dicha categora para el
libro seleccionado (por ejemplo, las etiquetas para el libro). El primer elemento de la lista ser seleccionado y la vista
rpida mostrar en el panel derecho todos los libros de la biblioteca que hacen referencia a ese elemento. Pulse en otro
elemento del panel izquierdo para ver los libros con ese otro elemento.

22 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

Pulse dos veces sobre un libro en la ventana de vista rpida para seleccionar ese libro en la vista de biblioteca. Esto
tambin cambiar los elementos que se muestran en la ventana de vista rpida (el panel izquierdo) para mostrar los
elementos en el nuevo libro seleccionado.
Pulse dos veces manteniendo pulsada la tecla Mays (o Ctrl) sobre un libro en la ventana de vista rpida para abrir el
cuadro de modificacin de metadatos para dicho libro en la ventana de calibre.
Puede ver si una columna puede ser objeto de la vista rpida colocando el cursor del ratn sobre el encabezado de
la columna y mirando la ayuda emergente de dicho encabezado. Tambin puede pulsar con el botn derecho sobre el
encabezado de la columna para ver si la opcin Vista rpida se muestra en el men, en cuyo caso elegir la opcin
Vista rpida es equivalente a pulsar Q en la celda actual.
La vista rpida respeta la configuracin de biblioteca virtual, mostrando slo los libros en la biblioteca virtual actual.

1.1.14 Tareas

El panel de tareas muestra el nmero de tareas actualmente en ejecucin. Las tareas son procesos que se ejecutan de
manera separada. Incluyen la conversin de libros y la comunicacin con el dispositivo lector. Puede pulsar sobre el
panel de tareas para acceder a la lista de tareas. Una vez completada una tarea puede ver un registro detallado de dicha
tarea pulsando dos veces sobre ella en la lista. Esto es til para depurar tareas que no se hayan completado con xito.

1.1.15 Atajos de teclado

calibre tiene varios atajos de teclado que pueden ahorrarle tiempo y movimientos de ratn. Estos atajos estn activos
en la vista de lista de libros (mientras no se estn modificando los detalles de un libro particular), y la mayora de ellos
afecta al libro que est seleccionado. El visor de libros de calibre tiene sus propios atajos que pueden personalizarse
pulsando en el botn Preferencias del visor.

Nota: Nota: Los atajos de teclado de calibre no requieren una tecla modificadora (Alt, Opcin, Control, etc.), a no ser
que se especifique lo contrario. Slo necesita presionar tecla correspondiente, por ejemplo E para editar.

Tabla 1.1: Atajos de teclado

Atajo de teclado Accin


F2 (Tecla Intro en OS X) Modificar los metadatos del campo actualmente seleccionado en la lista de libros
A Aadir libros
Mays+A Aadir archivos a los registros de libros seleccionados
C Convertir los libros seleccionados
D Enviar al dispositivo
Supr Eliminar los libros seleccionados
E Modificar metadatos de los libros seleccionados
G Obtener libros
I Mostrar detalles del libro
K Modificar ndice
M Unir los registros de libros seleccionados
Alt+M Unir los registros seleccionados, mantener los originales
O Abrir carpeta contenedora

1.1. La interfaz grfica de usuario 23


Manual de usuario de calibre, Versin 2.82.0

Tabla 1.1 proviene de la pgina anterior


Atajo de teclado Accin
P Pulir libros
S Guardar en el disco
T Modificar libro
V Mostrar
Alt+V (Cmd+V en OS X) Mostrar un formato especfico
Alt+Mays+J Conmutar lista de tareas
Alt+Mays+B Conmutar explorador de portadas
Alt+Mays+D Conmutar detalles del libro
Alt+Mays+T Conmutar explorador de etiquetas
Alt+Mays+G Conmutar cuadro de portadas
Alt+A Mostrar libros del mismo autor que el libro actual
Alt+T Mostrar libros con las mismas etiquetas que el libro actual
Alt+P Mostrar libros de la misma editorial que el libro actual
Alt+Mays+S Mostrar libros de la misma serie que el libro actual
/, Ctrl+F Activar la barra de bsqueda
Ctrl+Mays+F Abrir el cuadro de dilogo de bsqueda avanzada
Esc Limpiar la bsqueda actual
Mays+Esc Llevar el foco a la lista de libros
Ctrl+Esc Limpiar la biblioteca virtual
Alt+Esc Limpiar la restriccin adicional
Ctrl+* Crear una biblioteca virtual temporal basada en la bsqueda actual
Ctrl+Derecha Seleccionar la siguiente pestaa de biblioteca virtual
Ctrl+Izquierda Seleccionar la pestaa de biblioteca virtual anterior
N, F3 Encontrar el siguiente libro que coincida con el criterio de bsqueda (slo funciona si el resalta
Mays+N, Mays+F3 Encontrar el libro anterior que coincida con el criterio de bsqueda (slo funciona si el resaltad
Ctrl+D Descargar metadatos y portadas
Ctrl+R Reiniciar calibre
Ctrl+Mays+R Reiniciar calibre en modo de depuracin
Ctrl+Mays+E Aadir libros vacos a calibre
Ctrl+M Conmutar marca para los libros seleccionados
Q Abrir la ventana de vista rpida para ver libros relacionados por serie, etiquetas, etc.
Mays+Q Llevar el foco al panel de vista rpida abierto
Mays+S Buscar en el panel de vista rpida
Ctrl+Q Salir de calibre

1.2 Aadir su sitio de noticias favorito

calibre tiene un estructura potente, flexible y fcil de usar para descargar noticias de Internet y convertirlas en un
libro electrnico. A continuacin se le mostrar, a travs de ejemplos, cmo acceder a las noticias de varios sitios de
Internet.
Para comprender mejor cmo utilizar la estructura, siga los ejemplos en el orden indicado a continuacin:

Recopilacin totalmente automtica (pgina 25)


El blog de calibre (pgina 25)
bbc.co.uk (pgina 27)

24 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

Personalizar el proceso de obtencin (pgina 27)


Usar la versin para imprimir de bbc.co.uk (pgina 27)
Sustituir los estilos de los artculos (pgina 28)
Dividir y reordenar (pgina 29)
Ejemplo de la vida real (pgina 43)
Consejos para desarrollar nuevas frmulas (pgina 45)
Lecturas adicionales (pgina 46)
Documentacin de la API (pgina 46)

1.2.1 Recopilacin totalmente automtica

Si la fuente de noticias es suficientemente simple, es posible que calibre sea capaz de obtener las noticias de forma
totalmente automtica, todo lo que tiene que hacer es proporcionar el URL. calibre rene toda la informacin necesaria
para descargar una fuente de noticias en una frmula. Si quiere aadir una fuente de noticias en calibre, debe crear una
frmula para ello. Veamos algunos ejemplos:

El blog de calibre

El blog de calibre es un blog de mensajes que describen varias caractersticas tiles de calibre de una manera sencilla
y accesible para los nuevos usuarios de calibre. Para descargar este blog en un libro electrnico, nos basamos en el
RSS del blog:

https://blog.calibre-ebook.com/feeds/posts/default

Obtenemos la direccin URL del RSS de la seccin Subscribe to al final de la pgina del blog, eligiendo Posts >
Atom. Para hacer que calibre descargue los canales y los convierta en un libro electrnico, debe pulsar con el botn
derecho en el botn Obtener noticias y luego el elemento del men Aadir una nueva fuente de noticias y el botn
Nueva frmula. Se abrir un cuadro de dilogo similar al que se muestra a continuacin.

1.2. Aadir su sitio de noticias favorito 25


Manual de usuario de calibre, Versin 2.82.0

Primero introduzca Blog de calibre dentro del campo Ttulo de la frmula. ste ser el ttulo del libro electr-
nico que se crear a partir de los artculos provenientes de los canales anteriores.
Los dos campos siguientes (Artculo ms antiguo y Nmero mximo de artculos por canal) le permiten controlar
cuntos artculos se descargan desde cada canal, ambos son suficientemente explcitos.
Para aadir los canales a la frmula, introduzca el ttulo y direccin URL del canal y pulse en el botn Aadir canal.
Una vez aadido el canal, simplemente pulse en el botn Aadir o actualizar frmula y ya est! Cierre el cuadro de
dilogo.
Para probar la nueva frmula, pulse en el botn Obtener noticias, en el submen Personalizado, y en Blog de calibre.
En un par de minutos, el nuevo libro electrnico descargado con las entradas al blog aparecer en la biblioteca principal
(si tiene conectado un dispositivo de lectura, aparecer en l en vez de la biblioteca). Seleccinelo y pulse en el botn
Mostrar para leerlo.
La razn por la que esto funcion tan bien, con tan poco esfuerzo, es que el blog proporciona una fuente RSS con
el contenido completo, es decir, el contenido del artculo est incrustado en el propio canal de informacin. Para la
mayora de las fuentes de noticias que proporcionan noticias de esta manera, con un canal RSS con el contenido
completo, no necesitar mayores esfuerzos para convertirlas en libros electrnicos. Ahora veremos en una fuente
de noticias que no proporciona un canal de noticias RSS con el contenido completo. En dichos canales, el artculo

26 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

completo es una pgina de Internet y el canal de informacin RSS slo contiene un enlace a la pgina con un breve
resumen del artculo.

bbc.co.uk

Vamos a probar los siguentes dos canales de The BBC:


1. Portal de noticias: https://newsrss.bbc.co.uk/rss/newsonline_world_edition/front_page/rss.xml
2. Ciencia y naturaleza: https://newsrss.bbc.co.uk/rss/newsonline_world_edition/science/nature/rss.xml
Siga el procedimiento descrito anteriormente en El blog de calibre (pgina 25) para crear una frmula para La BBC
(usando los canales RSS mencionados ms arriba). Al examinar el libro electrnico descargado, vemos que calibre ha
hecho un trabajo encomiable al extraer slo el contenido que significativo de la pgina de Internet de cada artculo. Sin
embargo, el proceso de extraccin no es perfecto. A veces quedan contenidos no deseados como los mens y las ayudas
a la navegacin o se elimina contenido que debera haber sido mantenido, como las cabeceras de los artculos. Para
que la extraccin de contenido sea perfecta, tendremos que personalizar el proceso de Obtencin, como se describe en
la siguiente seccin.

1.2.2 Personalizar el proceso de obtencin

Cuando desea perfeccionar el proceso de descarga, o descargar el contenido de un sitio de Internet particularmente
complejo, puede servirse de toda la potencia y flexibilidad de la estructura de una frmula. Con ese fin, en el cuadro
de dilogo Aadir nueva fuente de noticias, simplemente pulse en el botn Cambiar a modo avanzado.
La personalizacin ms fcil y a menudo ms productiva es el uso de la versin para imprimir de los artculos en lnea.
La versin para imprimir normalmente tiene mucho menos contenido superfluo y se transforma de maner ms fluida
en un libro electrnico. Vamos a tratar de utilizar la versin impresa de los artculos de La BBC.

Usar la versin para imprimir de bbc.co.uk

El primer paso es buscar en el libro electrnico que descargamos previamente de bbc.co.uk (pgina 27). Al final de
cada artculo, en el libro electrnico, hay una pequea resea que dice desde dnde ha sido descargado el artculo.
Copie y pegue la direccin URL en un navegador. Ahora en la pgina de Internet del artculo, busque un enlace que
apunta a la Versin para imprimir. Pulse en l para ver la versin para imprimir del artculo. Es mucho ms limpia!
Ahora compare ambas direcciones URL. En mi caso eran:
URL del artculo https://news.bbc.co.uk/2/hi/science/nature/7312016.stm
URL de la versin para imprimir https://newsvote.bbc.co.uk/mpapps/pagetools/print/news.bbc.co.uk/
2/hi/science/nature/7312016.stm
As que parece que para obtener la versin para imprimir, tenemos que poner delante de cada URL de artculo:
newsvote.bbc.co.uk/mpapps/pagetools/print/
Ahora en el Modo avanzado cuadro de dilogo de nuevas fuentes de noticias, debera ver algo as (recuerde seleccionar
la frmula La BBC antes de cambiar al modo avanzado):

1.2. Aadir su sitio de noticias favorito 27


Manual de usuario de calibre, Versin 2.82.0

Se puede ver que los campos del Modo bsico han sido traducidos a cdigo python de una manera directa. Necesitamos
aadir instrucciones para que esta frmula utilice la versin para imprimir de los artculos. Todo lo que se necesita es
aadir las siguientes dos lneas:
def print_version(self, url):
return url.replace('https://', 'https://newsvote.bbc.co.uk/mpapps/pagetools/print/
')

Esto es python, por lo que la sangra es importante. Despus de aadir las lneas, debe ser algo as:

En lo anterior, def print_version(self, url) define un mtodo que es utilizado por calibre para cada
artculo. url es la direccin URL del artculo original. Lo que hace print_version es tomar la direccin URL y
sustituirla por la nueva direccin URL que apunta a la versin para imprimir del artculo. Para aprender sobre python4
vea el cursillo5 (en ingls).
Ahora, pulse en el botn Aadir o actualizar frmula y se guardarn los cambios. Vuelva a descargar el libro electr-
nico. Ahora debe tener un libro electrnico muy mejorado. Uno de los problemas con la nueva versin es que los tipos
de letra en la pgina de Internet de la versin impresa son demasiado pequeos. Esto es corregido automticamente
cuando se convierte a un libro electrnico, pero incluso despus del proceso de correccin, el tamao de la letra de
los mens y barra de navegacin pueden llegar a ser demasiado grande en relacin con el texto del artculo. Para
solucionar esto, vamos a personalizar un poco ms, en la siguiente seccin.

Sustituir los estilos de los artculos

En la seccin anterior, hemos visto que el tamao de letra para los artculos de la versin impresa de La BBC era
demasiado pequeo. En la mayora de sitios de Internet, incluido La BBC, el tamao de letra se establece por medio
de las hojas de estilo CSS. Podemos desactivar la obtencin de dichas hojas de estilo aadiendo esta lnea:
4 https://www.python.org
5 https://docs.python.org/2/tutorial/

28 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

no_stylesheets = True

La frmula queda ahora como:

La nueva versin est bastante bien. Si es usted perfeccionista, querr leer la siguiente seccin, que trata de hacer
cambios en el contenido descargado.

Dividir y reordenar

calibre contiene funciones muy poderosas y flexibles a la hora de manipular el contenido descargado. Para mostrar
un par de ellas, echemos un nuevo vistazo a nuestra vieja amiga, la frmula La BBC (pgina 29). Mirando el cdigo
fuente (HTML) de un par de artculos (versiones para imprimir), vemos que tienen un pie de pgina que no contiene
ninguna informacin til, que figura en

<div class="footer">
...
</div>

Esto se puede quitar agregando:

remove_tags = [dict(name='div', attrs={'class':'footer'})]

a la frmula. Finalmente, reemplacemos parte del CSS que deshabilitamos anteriormente, con nuestro propio CSS,
ms adecuado para la conversin en un libro electrnico:

extra_css = '.headline {font-size: x-large;} \n .fact { padding-top: 10pt }'

Con estas adiciones, nuestra frmula ha alcanzado calidad de produccin, de hecho, est muy cerca de la frmula
real utilizada por calibre para la BBC, mostrada a continuacin:

##
# Title: BBC News, Sport, and Blog Calibre Recipe
# Contact: mattst - jmstanfield@gmail.com
##
# License: GNU General Public License v3 - http://www.gnu.org/copyleft/gpl.html
# Copyright: mattst - jmstanfield@gmail.com
##
# Written: November 2011
# Last Edited: 2011-11-19
##

1.2. Aadir su sitio de noticias favorito 29


Manual de usuario de calibre, Versin 2.82.0

__license__ = 'GNU General Public License v3 - http://www.gnu.org/copyleft/gpl.html'


__copyright__ = 'mattst - jmstanfield@gmail.com'

'''
BBC News, Sport, and Blog Calibre Recipe
'''

# Import the regular expressions module.


import re

# Import the BasicNewsRecipe class which this class extends.


from calibre.web.feeds.recipes import BasicNewsRecipe

class BBCNewsSportBlog(BasicNewsRecipe):

#
# **** IMPORTANT USERS READ ME ****
#
# First select the feeds you want then scroll down below the feeds list
# and select the values you want for the other user preferences, like
# oldest_article and such like.
#
#
# Select the BBC rss feeds which you want in your ebook.
# Selected feed have NO '#' at their start, de-selected feeds begin with a '#'.
#
# Eg. ("News Home", "http://feeds.bbci.co.uk/... - include feed.
# Eg. #("News Home", "http://feeds.bbci.co.uk/... - do not include feed.
#
# There are 68 feeds below which constitute the bulk of the available rss
# feeds on the BBC web site. These include 5 blogs by editors and
# correspondants, 16 sports feeds, 15 'sub' regional feeds (Eg. North West
# Wales, Scotland Business), and 7 Welsh language feeds.
#
# Some of the feeds are low volume (Eg. blogs), or very low volume (Eg. Click)
# so if "oldest_article = 1.5" (only articles published in the last 36 hours)
# you may get some 'empty feeds' which will not then be included in the ebook.
#
# The 15 feeds currently selected below are simply my default ones.
#
# Note: With all 68 feeds selected, oldest_article set to 2,
# max_articles_per_feed set to 100, and simultaneous_downloads set to 10,
# the ebook creation took 29 minutes on my speedy 100 mbps net connection,
# fairly high-end desktop PC running Linux (Ubuntu Lucid-Lynx).
# More realistically with 15 feeds selected, oldest_article set to 1.5,
# max_articles_per_feed set to 100, and simultaneous_downloads set to 20,
# it took 6 minutes. If that's too slow increase 'simultaneous_downloads'.
#
# Select / de-select the feeds you want in your ebook.
#
feeds = [
("News Home", "http://feeds.bbci.co.uk/news/rss.xml"),
("UK", "http://feeds.bbci.co.uk/news/uk/rss.xml"),
("World", "http://feeds.bbci.co.uk/news/world/rss.xml"),
# ("England", "http://feeds.bbci.co.uk/news/england/rss.xml"),

30 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

# ("Scotland", "http://feeds.bbci.co.uk/news/scotland/rss.xml"),
# ("Wales", "http://feeds.bbci.co.uk/news/wales/rss.xml"),
# ("N. Ireland", "http://feeds.bbci.co.uk/news/northern_ireland/rss.xml"),
# ("Africa", "http://feeds.bbci.co.uk/news/world/africa/rss.xml"),
# ("Asia", "http://feeds.bbci.co.uk/news/world/asia/rss.xml"),
# ("Europe", "http://feeds.bbci.co.uk/news/world/europe/rss.xml"),
# ("Latin America", "http://feeds.bbci.co.uk/news/world/latin_america/rss.xml
"),
# ("Middle East", "http://feeds.bbci.co.uk/news/world/middle_east/rss.xml"),
("US & Canada", "http://feeds.bbci.co.uk/news/world/us_and_canada/rss.xml"),
("Politics", "http://feeds.bbci.co.uk/news/politics/rss.xml"),
("Science/Environment",
"http://feeds.bbci.co.uk/news/science_and_environment/rss.xml"),
("Technology", "http://feeds.bbci.co.uk/news/technology/rss.xml"),
("Magazine", "http://feeds.bbci.co.uk/news/magazine/rss.xml"),
("Entertainment/Arts",
"http://feeds.bbci.co.uk/news/entertainment_and_arts/rss.xml"),
# ("Health", "http://feeds.bbci.co.uk/news/health/rss.xml"),
# ("Education/Family", "http://feeds.bbci.co.uk/news/education/rss.xml"),
("Business", "http://feeds.bbci.co.uk/news/business/rss.xml"),
("Special Reports", "http://feeds.bbci.co.uk/news/special_reports/rss.xml"),
("Also in the News", "http://feeds.bbci.co.uk/news/also_in_the_news/rss.xml"),
# ("Newsbeat", "http://www.bbc.co.uk/newsbeat/rss.xml"),
# ("Click", "http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/programmes/
click_online/rss.xml"),

("Blog: Nick Robinson (Political Editor)",


"http://feeds.bbci.co.uk/news/correspondents/nickrobinson/rss.sxml"),
# ("Blog: Mark D'Arcy (Parliamentary Correspondent)", "http://feeds.bbci.co.
uk/news/correspondents/markdarcy/rss.sxml"),

# ("Blog: Robert Peston (Business Editor)", "http://feeds.bbci.co.uk/news/


correspondents/robertpeston/rss.sxml"),

# ("Blog: Stephanie Flanders (Economics Editor)", "http://feeds.bbci.co.uk/


news/correspondents/stephanieflanders/rss.sxml"),

("Blog: Rory Cellan-Jones (Technology correspondent)",


"http://feeds.bbci.co.uk/news/correspondents/rorycellanjones/rss.sxml"),
("Sport Front Page",
"http://newsrss.bbc.co.uk/rss/sportonline_uk_edition/front_page/rss.xml"),
# ("Football", "http://newsrss.bbc.co.uk/rss/sportonline_uk_edition/football/
rss.xml"),

# ("Cricket", "http://newsrss.bbc.co.uk/rss/sportonline_uk_edition/cricket/
rss.xml"),

# ("Rugby Union", "http://newsrss.bbc.co.uk/rss/sportonline_uk_edition/rugby_


union/rss.xml"),

# ("Rugby League", "http://newsrss.bbc.co.uk/rss/sportonline_uk_edition/rugby_


league/rss.xml"),

# ("Tennis", "http://newsrss.bbc.co.uk/rss/sportonline_uk_edition/tennis/rss.
xml"),

# ("Golf", "http://newsrss.bbc.co.uk/rss/sportonline_uk_edition/golf/rss.xml
"),

# ("Motorsport", "http://newsrss.bbc.co.uk/rss/sportonline_uk_edition/
motorsport/rss.xml"),

# ("Boxing", "http://newsrss.bbc.co.uk/rss/sportonline_uk_edition/boxing/rss.
xml"),

# ("Athletics", "http://newsrss.bbc.co.uk/rss/sportonline_uk_edition/
athletics/rss.xml"),

# ("Snooker", "http://newsrss.bbc.co.uk/rss/sportonline_uk_edition/other_
sports/snooker/rss.xml"),

# ("Horse Racing", "http://newsrss.bbc.co.uk/rss/sportonline_uk_edition/other_


sports/horse_racing/rss.xml"),

1.2. Aadir su sitio de noticias favorito 31


Manual de usuario de calibre, Versin 2.82.0

# ("Cycling", "http://newsrss.bbc.co.uk/rss/sportonline_uk_edition/other_
sports/cycling/rss.xml"),
# ("Disability Sport", "http://newsrss.bbc.co.uk/rss/sportonline_uk_edition/
other_sports/disability_sport/rss.xml"),

# ("Other Sport", "http://newsrss.bbc.co.uk/rss/sportonline_uk_edition/other_


sports/rss.xml"),

# ("Olympics 2012", "http://newsrss.bbc.co.uk/rss/sportonline_uk_edition/


other_sports/olympics_2012/rss.xml"),

# ("N. Ireland Politics", "http://feeds.bbci.co.uk/news/northern_ireland/


northern_ireland_politics/rss.xml"),

# ("Scotland Politics", "http://feeds.bbci.co.uk/news/scotland/scotland_


politics/rss.xml"),

# ("Scotland Business", "http://feeds.bbci.co.uk/news/scotland/scotland_


business/rss.xml"),

# ("E. Scotland, Edinburgh & Fife", "http://feeds.bbci.co.uk/news/scotland/


edinburgh_east_and_fife/rss.xml"),

# ("W. Scotland & Glasgow", "http://feeds.bbci.co.uk/news/scotland/glasgow_


and_west/rss.xml"),

# ("Highlands & Islands", "http://feeds.bbci.co.uk/news/scotland/highlands_


and_islands/rss.xml"),

# ("NE. Scotland, Orkney & Shetland", "http://feeds.bbci.co.uk/news/scotland/


north_east_orkney_and_shetland/rss.xml"),

# ("South Scotland", "http://feeds.bbci.co.uk/news/scotland/south_scotland/


rss.xml"),

# ("Central Scotland & Tayside", "http://feeds.bbci.co.uk/news/scotland/


tayside_and_central/rss.xml"),

# ("Wales Politics", "http://feeds.bbci.co.uk/news/wales/wales_politics/rss.


xml"),

# ("NW. Wales", "http://feeds.bbci.co.uk/news/wales/north_west_wales/rss.xml


"),

# ("NE. Wales", "http://feeds.bbci.co.uk/news/wales/north_east_wales/rss.xml


"),

# ("Mid. Wales", "http://feeds.bbci.co.uk/news/wales/mid_wales/rss.xml"),


# ("SW. Wales", "http://feeds.bbci.co.uk/news/wales/south_west_wales/rss.xml
"),

# ("SE. Wales", "http://feeds.bbci.co.uk/news/wales/south_east_wales/rss.xml


"),

# ("Newyddion - News in Welsh", "http://feeds.bbci.co.uk/newyddion/rss.xml"),


# ("Gwleidyddiaeth", "http://feeds.bbci.co.uk/newyddion/gwleidyddiaeth/rss.xml
"),

# ("Gogledd-Ddwyrain", "http://feeds.bbci.co.uk/newyddion/gogledd-ddwyrain/
rss.xml"),

# ("Gogledd-Orllewin", "http://feeds.bbci.co.uk/newyddion/gogledd-orllewin/
rss.xml"),

# ("Canolbarth", "http://feeds.bbci.co.uk/newyddion/canolbarth/rss.xml"),
# ("De-Ddwyrain", "http://feeds.bbci.co.uk/newyddion/de-ddwyrain/rss.xml"),
# ("De-Orllewin", "http://feeds.bbci.co.uk/newyddion/de-orllewin/rss.xml"),
]

# **** SELECT YOUR USER PREFERENCES ****

# Title to use for the ebook.


#
title = 'BBC News'

# A brief description for the ebook.


#
description = u'BBC web site ebook created using rss feeds.'

32 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

# The max number of articles which may be downloaded from each feed.
# I've never seen more than about 70 articles in a single feed in the
# BBC feeds.
#
max_articles_per_feed = 100

# The max age of articles which may be downloaded from each feed. This is
# specified in days - note fractions of days are allowed, Eg. 2.5 (2 and a
# half days). My default of 1.5 days is the last 36 hours, the point at
# which I've decided 'news' becomes 'old news', but be warned this is not
# so good for the blogs, technology, magazine, etc., and sports feeds.
# You may wish to extend this to 2-5 but watch out ebook creation time will
# increase as well. Setting this to 30 will get everything (AFAICT) as long
# as max_articles_per_feed remains set high (except for 'Click' which is
# v. low volume and its currently oldest article is 4th Feb 2011).
#
oldest_article = 1.5

# Number of simultaneous downloads. 20 is consistantly working fine on the


# BBC News feeds with no problems. Speeds things up from the defualt of 5.
# If you have a lot of feeds and/or have increased oldest_article above 2
# then you may wish to try increasing simultaneous_downloads to 25-30,
# Or, of course, if you are in a hurry. [I've not tried beyond 20.]
#
simultaneous_downloads = 20

# Timeout for fetching files from the server in seconds. The default of
# 120 seconds, seems somewhat excessive.
#
timeout = 30

# The format string for the date shown on the ebook's first page.
# List of all values: http://docs.python.org/library/time.html
# Default in news.py has a leading space so that's mirrored here.
# As with 'feeds' select/de-select by adding/removing the initial '#',
# only one timefmt should be selected, here's a few to choose from.
#
# [Fri, 14 Nov 2011] (Calibre default)
timefmt = ' [%a, %d %b %Y]'
# timefmt = ' [%a, %d %b %Y %H:%M]' # [Fri, 14 Nov 2011 18:30]
# timefmt = ' [%a, %d %b %Y %I:%M %p]' # [Fri, 14 Nov 2011 06:30 PM]
# timefmt = ' [%d %b %Y]' # [14 Nov 2011]
# timefmt = ' [%d %b %Y %H:%M]' # [14 Nov 2011 18.30]
# timefmt = ' [%Y-%m-%d]' # [2011-11-14]
# timefmt = ' [%Y-%m-%d-%H-%M]' # [2011-11-14-18-30]

#
# **** IMPORTANT ****
#
# DO NOT EDIT BELOW HERE UNLESS YOU KNOW WHAT YOU ARE DOING.
#
# DO NOT EDIT BELOW HERE UNLESS YOU KNOW WHAT YOU ARE DOING.
#
# I MEAN IT, YES I DO, ABSOLUTELY, AT YOU OWN RISK. :)
#
# **** IMPORTANT ****
#

1.2. Aadir su sitio de noticias favorito 33


Manual de usuario de calibre, Versin 2.82.0

# Author of this recipe.


__author__ = 'mattst'

# Specify English as the language of the RSS feeds (ISO-639 code).


language = 'en_GB'

# Set tags.
tags = 'news, sport, blog'

# Set publisher and publication type.


publisher = 'BBC'
publication_type = 'newspaper'

# Disable stylesheets from site.


no_stylesheets = True

# Specifies an override encoding for sites that have an incorrect charset


# specified. Default of 'None' says to auto-detect. Some other BBC recipes
# use 'utf8', which works fine (so use that if necessary) but auto-detecting
# with None is working fine, so stick with that for robustness.
encoding = None

# Sets whether a feed has full articles embedded in it. The BBC feeds do
# not.
use_embedded_content = False

# Removes empty feeds - why keep them!?


remove_empty_feeds = True

# Create a custom title which fits nicely in the Kindle title list.
# Requires "import time" above class declaration, and replacing
# title with custom_title in conversion_options (right column only).
# Example of string below: "BBC News - 14 Nov 2011"
#
# custom_title = "BBC News - " + time.strftime('%d %b %Y')

'''
# Conversion options for advanced users, but don't forget to comment out the
# current conversion_options below. Avoid setting 'linearize_tables' as that
# plays havoc with the 'old style' table based pages.
#
conversion_options = { 'title' : title,
'comments' : description,
'tags' : tags,
'language' : language,
'publisher' : publisher,
'authors' : publisher,
'smarten_punctuation' : True
}
'''

conversion_options = {'smarten_punctuation': True}

# Specify extra CSS - overrides ALL other CSS (IE. Added last).
extra_css = 'body { font-family: verdana, helvetica, sans-serif; } \
.introduction, .first { font-weight: bold; } \
.cross-head { font-weight: bold; font-size: 125%; } \

34 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

.cap, .caption { display: block; font-size: 80%; font-style: italic;


} \
.cap, .caption, .caption img, .caption span { display: block; text-
align: center; margin: 5px auto; } \
.byl, .byd, .byline img, .byline-name, .byline-title, .author-name, .
author-position, \

.correspondent-portrait img, .byline-lead-in, .name, .bbc-role {


display: block; \

text-align: center; font-size: 80%; font-style: italic; margin:


1px auto; } \

.story-date, .published { font-size: 80%; } \


table { width: 100%; } \
td img { display: block; margin: 5px auto; } \
ul { padding-top: 10px; } \
ol { padding-top: 10px; } \
li { padding-top: 5px; padding-bottom: 5px; } \
h1 { text-align: center; font-size: 175%; font-weight: bold; } \
h2 { text-align: center; font-size: 150%; font-weight: bold; } \
h3 { text-align: center; font-size: 125%; font-weight: bold; } \
h4, h5, h6 { text-align: center; font-size: 100%; font-weight: bold;
}'

# Remove various tag attributes to improve the look of the ebook pages.
remove_attributes = ['border', 'cellspacing', 'align', 'cellpadding', 'colspan',
'valign', 'vspace', 'hspace', 'alt', 'width', 'height']

# Remove the (admittedly rarely used) line breaks, "<br />", which sometimes
# cause a section of the ebook to start in an unsightly fashion or, more
# frequently, a "<br />" will muck up the formatting of a correspondant's byline.
# "<br />" and "<br clear/>" are far more frequently used on the table formatted
# style of pages, and really spoil the look of the ebook pages.
preprocess_regexps = [(re.compile(r'<br[ ]*/>', re.IGNORECASE), lambda m: ''),
(re.compile(r'<br[ ]*clear.*/>', re.IGNORECASE), lambda m: '
')]

# Create regular expressions for tag keeping and removal to make the matches more
# robust against minor changes and errors in the HTML, Eg. double spaces, leading
# and trailing spaces, missing hyphens, and such like.
# Python regular expression ('re' class) page:
# http://docs.python.org/library/re.html

# ***************************************
# Regular expressions for keep_only_tags:
# ***************************************

# The BBC News HTML pages use variants of 'storybody' to denote the section of a
HTML
# page which contains the main text of the article. Match storybody variants:
'storybody',

# 'story-body', 'story body','storybody ', etc.


storybody_reg_exp = '^.*story[_ -]*body.*$'

# The BBC sport and 'newsbeat' (features) HTML pages use 'blq_content' to hold
the title
# and published date. This is one level above the usual news pages which have the
title

# and date within 'story-body'. This is annoying since 'blq_content' must also be
kept,

1.2. Aadir su sitio de noticias favorito 35


Manual de usuario de calibre, Versin 2.82.0

# resulting in a lot of extra things to be removed by remove_tags.


blq_content_reg_exp = '^.*blq[_ -]*content.*$'

# The BBC has an alternative page design structure, which I suspect is an out-of-
date
# design but which is still used in some articles, Eg. 'Click' (technology),
'FastTrack'

# (travel), and in some sport pages. These alternative pages are table based
(which is

# why I think they are an out-of-date design) and account for -I'm guesstimaking-
less

# than 1% of all articles. They use a table class 'storycontent' to hold the
article

# and like blq_content (above) have required lots of extra removal by


# remove_tags.
story_content_reg_exp = '^.*story[_ -]*content.*$'

# Keep the sections of the HTML which match the list below. The HTML page created
by
# Calibre will fill <body> with those sections which are matched. Note that the
# blq_content_reg_exp must be listed before storybody_reg_exp in keep_only_tags
due to

# it being the parent of storybody_reg_exp, that is to say the div class/id


'story-body'

# will be inside div class/id 'blq_content' in the HTML (if 'blq_content' is


there at

# all). If they are the other way around in keep_only_tags then blq_content_reg_
exp

# will end up being discarded.


keep_only_tags = [dict(name='table', attrs={'class': re.compile(story_content_reg_
exp, re.IGNORECASE)}),

dict(name='div', attrs={'class': re.compile(


blq_content_reg_exp, re.IGNORECASE)}),
dict(name='div', attrs={'id': re.compile(
blq_content_reg_exp, re.IGNORECASE)}),
dict(name='div', attrs={'class': re.compile(
storybody_reg_exp, re.IGNORECASE)}),
dict(name='div', attrs={'id': re.compile(storybody_reg_exp,
re.IGNORECASE)})]

# ************************************
# Regular expressions for remove_tags:
# ************************************

# Regular expression to remove share-help and variant tags. The share-help class
# is used by the site for a variety of 'sharing' type links, Eg. Facebook,
delicious,

# twitter, email. Removed to avoid page clutter.


share_help_reg_exp = '^.*share[_ -]*help.*$'

# Regular expression to remove embedded-hyper and variant tags. This class is


used to
# display links to other BBC News articles on the same/similar subject.
embedded_hyper_reg_exp = '^.*embed*ed[_ -]*hyper.*$'

# Regular expression to remove hypertabs and variant tags. This class is used to
# display a tab bar at the top of an article which allows the user to switch to
# an article (viewed on the same page) providing further info., 'in depth'
analysis,

36 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

# an editorial, a correspondant's blog entry, and such like. The ability to handle
# a tab bar of this nature is currently beyond the scope of this recipe and
# possibly of Calibre itself (not sure about that - TO DO - check!).
hypertabs_reg_exp = '^.*hyper[_ -]*tabs.*$'

# Regular expression to remove story-feature and variant tags. Eg. 'story-feature


',
# 'story-feature related narrow', 'story-feature wide', 'story-feature narrow'.
# This class is used to add additional info. boxes, or small lists, outside of
# the main story. TO DO: Work out a way to incorporate these neatly.
story_feature_reg_exp = '^.*story[_ -]*feature.*$'

# Regular expression to remove video and variant tags, Eg. 'videoInStoryB',


# 'videoInStoryC'. This class is used to embed video.
video_reg_exp = '^.*video.*$'

# Regular expression to remove audio and variant tags, Eg. 'audioInStoryD'.


# This class is used to embed audio.
audio_reg_exp = '^.*audio.*$'

# Regular expression to remove pictureGallery and variant tags, Eg.


'pictureGallery'.
# This class is used to embed a photo slideshow. See also 'slideshow'
# below.
picture_gallery_reg_exp = '^.*picture.*$'

# Regular expression to remove slideshow and variant tags, Eg. 'dslideshow-


enclosure'.
# This class is used to embed a slideshow (not necessarily photo) but both
# 'slideshow' and 'pictureGallery' are used for slideshows.
slideshow_reg_exp = '^.*slide[_ -]*show.*$'

# Regular expression to remove social-links and variant tags. This class is used
to
# display links to a BBC bloggers main page, used in various columnist's blogs
# (Eg. Nick Robinson, Robert Preston).
social_links_reg_exp = '^.*social[_ -]*links.*$'

# Regular expression to remove quote and (multi) variant tags, Eg. 'quote',
# 'endquote', 'quote-credit', 'quote-credit-title', etc. These are usually
# removed by 'story-feature' removal (as they are usually within them), but
# not always. The quotation removed is always (AFAICT) in the article text
# as well but a 2nd copy is placed in a quote tag to draw attention to it.
# The quote class tags may or may not appear in div's.
quote_reg_exp = '^.*quote.*$'

# Regular expression to remove hidden and variant tags, Eg. 'hidden'.


# The purpose of these is unclear, they seem to be an internal link to a
# section within the article, but the text of the link (Eg. 'Continue reading
# the main story') never seems to be displayed anyway. Removed to avoid clutter.
# The hidden class tags may or may not appear in div's.
hidden_reg_exp = '^.*hidden.*$'

# Regular expression to remove comment and variant tags, Eg. 'comment-introduction


'.
# Used on the site to display text about registered users entering
# comments.
comment_reg_exp = '^.*comment.*$'

1.2. Aadir su sitio de noticias favorito 37


Manual de usuario de calibre, Versin 2.82.0

# Regular expression to remove form and variant tags, Eg. 'comment-form'.


# Used on the site to allow registered BBC users to fill in forms, typically
# for entering comments about an article.
form_reg_exp = '^.*form.*$'

# Extra things to remove due to the addition of 'blq_content' in


# keep_only_tags.

# <div class="story-actions"> Used on sports pages for 'email' and 'print'.


story_actions_reg_exp = '^.*story[_ -]*actions.*$'

# <div class="bookmark-list"> Used on sports pages instead of 'share-help' (for


# social networking links).
bookmark_list_reg_exp = '^.*bookmark[_ -]*list.*$'

# <div id="secondary-content" class="content-group">


# NOTE: Don't remove class="content-group" that is needed.
# Used on sports pages to link to 'similar stories'.
secondary_content_reg_exp = '^.*secondary[_ -]*content.*$'

# <div id="featured-content" class="content-group">


# NOTE: Don't remove class="content-group" that is needed.
# Used on sports pages to link to pages like 'tables', 'fixtures', etc.
featured_content_reg_exp = '^.*featured[_ -]*content.*$'

# <div id="navigation">
# Used on sports pages to link to pages like 'tables', 'fixtures', etc.
# Used sometimes instead of "featured-content" above.
navigation_reg_exp = '^.*navigation.*$'

# <a class="skip" href="#blq-container-inner">Skip to top</a>


# Used on sports pages to link to the top of the page.
skip_reg_exp = '^.*skip.*$'

# Extra things to remove due to the addition of 'storycontent' in keep_only_tags,


# which are the alterative table design based pages. The purpose of some of these
# is not entirely clear from the pages (which are a total mess!).

# Remove mapping based tags, Eg. <map id="world_map">


# The dynamic maps don't seem to work during ebook creation. TO DO:
# Investigate.
map_reg_exp = '^.*map.*$'

# Remove social bookmarking variation, called 'socialBookMarks'.


social_bookmarks_reg_exp = '^.*social[_ -]*bookmarks.*$'

# Remove page navigation tools, like 'search', 'email', 'print', called


# 'blq-mast'.
blq_mast_reg_exp = '^.*blq[_ -]*mast.*$'

# Remove 'sharesb', I think this is a generic 'sharing' class. It seems to appear


# alongside 'socialBookMarks' whenever that appears. I am removing it as well
# under the assumption that it can appear alone as well.
sharesb_reg_exp = '^.*sharesb.*$'

# Remove class 'o'. The worst named user created css class of all time. The
creator

38 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

# should immediately be fired. I've seen it used to hold nothing at all but with
# 20 or so empty lines in it. Also to hold a single link to another article.
# Whatever it was designed to do it is not wanted by this recipe. Exact
# match only.
o_reg_exp = '^o$'

# Remove 'promotopbg' and 'promobottombg', link lists. Have decided to


# use two reg expressions to make removing this (and variants) robust.
promo_top_reg_exp = '^.*promotopbg.*$'
promo_bottom_reg_exp = '^.*promobottombg.*$'

# Remove 'nlp', provides heading for link lists. Requires an exact match due to
# risk of matching those letters in something needed, unless I see a variation
# of 'nlp' used at a later date.
nlp_reg_exp = '^nlp$'

# Remove 'mva', provides embedded floating content of various types. Variant 'mvb'
# has also now been seen. Requires an exact match of 'mva' or 'mvb' due to risk of
# matching those letters in something needed.
mva_or_mvb_reg_exp = '^mv[ab]$'

# Remove 'mvtb', seems to be page navigation tools, like 'blq-mast'.


mvtb_reg_exp = '^mvtb$'

# Remove 'blq-toplink', class to provide a link to the top of the page.


blq_toplink_reg_exp = '^.*blq[_ -]*top[_ -]*link.*$'

# Remove 'products and services' links, Eg. desktop tools, alerts, and so on.
# Eg. Class="servicev4 ukfs_services" - what a mess of a name. Have decided to
# use two reg expressions to make removing this (and variants) robust.
prods_services_01_reg_exp = '^.*servicev4.*$'
prods_services_02_reg_exp = '^.*ukfs[_ -]*services.*$'

# Remove -what I think is- some kind of navigation tools helper class, though I am
# not sure, it's called: 'blq-rst blq-new-nav'. What I do know is it pops up
# frequently and it is not wanted. Have decided to use two reg expressions to make
# removing this (and variants) robust.
blq_misc_01_reg_exp = '^.*blq[_ -]*rst.*$'
blq_misc_02_reg_exp = '^.*blq[_ -]*new[_ -]*nav.*$'

# Remove 'puffbox' - this may only appear inside 'storyextra', so it may not
# need removing - I have no clue what it does other than it contains links.
# Whatever it is - it is not part of the article and is not wanted.
puffbox_reg_exp = '^.*puffbox.*$'

# Remove 'sibtbg' and 'sibtbgf' - some kind of table formatting classes.


sibtbg_reg_exp = '^.*sibtbg.*$'

# Remove 'storyextra' - links to relevant articles and external sites.


storyextra_reg_exp = '^.*story[_ -]*extra.*$'

remove_tags = [dict(name='div', attrs={'class': re.compile(story_feature_reg_exp,


re.IGNORECASE)}),
dict(name='div', attrs={'class': re.compile(
share_help_reg_exp, re.IGNORECASE)}),
dict(name='div', attrs={'class': re.compile(
embedded_hyper_reg_exp, re.IGNORECASE)}),
dict(name='div', attrs={'class': re.compile(

1.2. Aadir su sitio de noticias favorito 39


Manual de usuario de calibre, Versin 2.82.0

hypertabs_reg_exp, re.IGNORECASE)}),
dict(name='div', attrs={'class': re.compile(
video_reg_exp, re.IGNORECASE)}),
dict(name='div', attrs={'class': re.compile(
audio_reg_exp, re.IGNORECASE)}),
dict(name='div', attrs={'class': re.compile(
picture_gallery_reg_exp, re.IGNORECASE)}),
dict(name='div', attrs={'class': re.compile(
slideshow_reg_exp, re.IGNORECASE)}),
dict(name='div', attrs={'class': re.compile(
quote_reg_exp, re.IGNORECASE)}),
dict(name='div', attrs={'class': re.compile(
hidden_reg_exp, re.IGNORECASE)}),
dict(name='div', attrs={'class': re.compile(
comment_reg_exp, re.IGNORECASE)}),
dict(name='div', attrs={'class': re.compile(
story_actions_reg_exp, re.IGNORECASE)}),
dict(name='div', attrs={'class': re.compile(
bookmark_list_reg_exp, re.IGNORECASE)}),
dict(name='div', attrs={'id': re.compile(
secondary_content_reg_exp, re.IGNORECASE)}),
dict(name='div', attrs={'id': re.compile(
featured_content_reg_exp, re.IGNORECASE)}),
dict(name='div', attrs={'id': re.compile(
navigation_reg_exp, re.IGNORECASE)}),
dict(name='form', attrs={'id': re.compile(
form_reg_exp, re.IGNORECASE)}),
dict(attrs={'class': re.compile(
quote_reg_exp, re.IGNORECASE)}),
dict(attrs={'class': re.compile(
hidden_reg_exp, re.IGNORECASE)}),
dict(attrs={'class': re.compile(
social_links_reg_exp, re.IGNORECASE)}),
dict(attrs={'class': re.compile(
comment_reg_exp, re.IGNORECASE)}),
dict(attrs={'class': re.compile(
skip_reg_exp, re.IGNORECASE)}),
dict(name='map', attrs={'id': re.compile(
map_reg_exp, re.IGNORECASE)}),
dict(name='map', attrs={'name': re.compile(
map_reg_exp, re.IGNORECASE)}),
dict(name='div', attrs={'id': re.compile(
social_bookmarks_reg_exp, re.IGNORECASE)}),
dict(name='div', attrs={'id': re.compile(
blq_mast_reg_exp, re.IGNORECASE)}),
dict(name='div', attrs={'class': re.compile(
sharesb_reg_exp, re.IGNORECASE)}),
dict(name='div', attrs={
'class': re.compile(o_reg_exp, re.IGNORECASE)}),
dict(name='div', attrs={'class': re.compile(
promo_top_reg_exp, re.IGNORECASE)}),
dict(name='div', attrs={'class': re.compile(
promo_bottom_reg_exp, re.IGNORECASE)}),
dict(name='div', attrs={
'class': re.compile(nlp_reg_exp, re.IGNORECASE)}),
dict(name='div', attrs={'class': re.compile(
mva_or_mvb_reg_exp, re.IGNORECASE)}),
dict(name='div', attrs={'class': re.compile(

40 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

mvtb_reg_exp, re.IGNORECASE)}),
dict(name='div', attrs={'class': re.compile(
blq_toplink_reg_exp, re.IGNORECASE)}),
dict(name='div', attrs={'class': re.compile(
prods_services_01_reg_exp, re.IGNORECASE)}),
dict(name='div', attrs={'class': re.compile(
prods_services_02_reg_exp, re.IGNORECASE)}),
dict(name='div', attrs={'class': re.compile(
blq_misc_01_reg_exp, re.IGNORECASE)}),
dict(name='div', attrs={'class': re.compile(
blq_misc_02_reg_exp, re.IGNORECASE)}),
dict(name='div', attrs={'class': re.compile(
puffbox_reg_exp, re.IGNORECASE)}),
dict(attrs={'class': re.compile(
sibtbg_reg_exp, re.IGNORECASE)}),
dict(attrs={'class': re.compile(
storyextra_reg_exp, re.IGNORECASE)})
]

# Uses url to create and return the 'printer friendly' version of the url.
# In other words the 'print this page' address of the page.
#
# There are 3 types of urls used in the BBC site's rss feeds. There is just
# 1 type for the standard news while there are 2 used for sports feed urls.
# Note: Sports urls are linked from regular news feeds (Eg. 'News Home') when
# there is a major story of interest to 'everyone'. So even if no BBC sports
# feeds are added to 'feeds' the logic of this method is still needed to avoid
# blank / missing / empty articles which have an index title and then no
# body.
def print_version(self, url):

# Handle sports page urls type 01:


if (url.find("go/rss/-/sport1/") != -1):
temp_url = url.replace("go/rss/-/", "")

# Handle sports page urls type 02:


elif (url.find("go/rss/int/news/-/sport1/") != -1):
temp_url = url.replace("go/rss/int/news/-/", "")

# Handle regular news page urls:


else:
temp_url = url.replace("go/rss/int/news/-/", "")

# Always add "?print=true" to the end of the url.


print_url = temp_url + "?print=true"

return print_url

# Remove articles in feeds based on a string in the article title or url.


#
# Code logic written by: Starson17 - posted in: "Recipes - Re-usable code"
# thread, in post with title: "Remove articles from feed", see url:
# http://www.mobileread.com/forums/showpost.php?p=1165462&postcount=6
# Many thanks and all credit to Starson17.
#
# Starson17's code has obviously been altered to suite my requirements.
def parse_feeds(self):

1.2. Aadir su sitio de noticias favorito 41


Manual de usuario de calibre, Versin 2.82.0

# Call parent's method.


feeds = BasicNewsRecipe.parse_feeds(self)

# Loop through all feeds.


for feed in feeds:

# Loop through all articles in feed.


for article in feed.articles[:]:

# Match key words and remove article if there's a match.

# Most BBC rss feed video only 'articles' use upper case 'VIDEO'
# as a title prefix. Just match upper case 'VIDEO', so that
# articles like 'Video game banned' won't be matched and
# removed.
if 'VIDEO' in article.title:
feed.articles.remove(article)

# Most BBC rss feed audio only 'articles' use upper case 'AUDIO'
# as a title prefix. Just match upper case 'AUDIO', so that
# articles like 'Hi-Def audio...' won't be matched and removed.
elif 'AUDIO' in article.title:
feed.articles.remove(article)

# Most BBC rss feed photo slideshow 'articles' use 'In Pictures',
# 'In pictures', and 'in pictures', somewhere in their title.
# Match any case of that phrase.
elif 'IN PICTURES' in article.title.upper():
feed.articles.remove(article)

# As above, but user contributed pictures. Match any case.


elif 'YOUR PICTURES' in article.title.upper():
feed.articles.remove(article)

# 'Sportsday Live' are articles which contain a constantly and


# dynamically updated 'running commentary' during a live sporting
# event. Match any case.
elif 'SPORTSDAY LIVE' in article.title.upper():
feed.articles.remove(article)

# Sometimes 'Sportsday Live' (above) becomes 'Live - Sport Name'.


# These are being matched below using 'Live - ' because removing all
# articles with 'live' in their titles would remove some articles
# that are in fact not live sports pages. Match any case.
elif 'LIVE - ' in article.title.upper():
feed.articles.remove(article)

# 'Quiz of the week' is a Flash player weekly news quiz. Match only
# the 'Quiz of the' part in anticipation of monthly and yearly
# variants. Match any case.
elif 'QUIZ OF THE' in article.title.upper():
feed.articles.remove(article)

# Remove articles with 'scorecards' in the url. These are BBC sports
# pages which just display a cricket scorecard. The pages have a mass
# of table and css entries to display the scorecards nicely. Probably
# could make them work with this recipe, but might take a whole day
# of work to sort out all the css - basically a formatting

42 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

# nightmare.
elif 'scorecards' in article.url:
feed.articles.remove(article)

return feeds

# End of class and file.

Esta frmula muestra slo la punta del iceberg en lo que se refiere a la potencia de calibre. Para explorar ms sobre las
capacidades de calibre, examinaremos un ejemplo de la vida real ms complejo en la siguiente seccin.

Ejemplo de la vida real

Un ejemplo real bastante complejo que expone ms partes de la API de BasicNewsRecipe es la frmula de The
New York Times
import string, re
from calibre import strftime
from calibre.web.feeds.recipes import BasicNewsRecipe
from calibre.ebooks.BeautifulSoup import BeautifulSoup

class NYTimes(BasicNewsRecipe):

title = 'The New York Times'


__author__ = 'Kovid Goyal'
description = 'Daily news from the New York Times'
timefmt = ' [%a, %d %b, %Y]'
needs_subscription = True
remove_tags_before = dict(id='article')
remove_tags_after = dict(id='article')
remove_tags = [dict(attrs={'class':['articleTools', 'post-tools', 'side_tool',
'nextArticleLink clearfix']}),

dict(id=['footer', 'toolsRight', 'articleInline', 'navigation',


'archive', 'side_search', 'blog_sidebar', 'side_tool', 'side_index']),

dict(name=['script', 'noscript', 'style'])]


encoding = 'cp1252'
no_stylesheets = True
extra_css = 'h1 {font: sans-serif large;}\n.byline {font:monospace;}'

def get_browser(self):
br = BasicNewsRecipe.get_browser()
if self.username is not None and self.password is not None:
br.open('https://www.nytimes.com/auth/login')
br.select_form(name='login')
br['USERID'] = self.username
br['PASSWORD'] = self.password
br.submit()
return br

def parse_index(self):
soup = self.index_to_soup('https://www.nytimes.com/pages/todayspaper/index.
html')

def feed_title(div):
return ''.join(div.findAll(text=True, recursive=False)).strip()

articles = {}

1.2. Aadir su sitio de noticias favorito 43


Manual de usuario de calibre, Versin 2.82.0

key = None
ans = []
for div in soup.findAll(True,
attrs={'class':['section-headline', 'story', 'story headline']}):

if div['class'] == 'section-headline':
key = string.capwords(feed_title(div))
articles[key] = []
ans.append(key)

elif div['class'] in ['story', 'story headline']:


a = div.find('a', href=True)
if not a:
continue
url = re.sub(r'\?.*', '', a['href'])
url += '?pagewanted=all'
title = self.tag_to_string(a, use_alt=True).strip()
description = ''
pubdate = strftime('%a, %d %b')
summary = div.find(True, attrs={'class':'summary'})
if summary:
description = self.tag_to_string(summary, use_alt=False)

feed = key if key is not None else 'Uncategorized'


if not articles.has_key(feed):
articles[feed] = []
if not 'podcasts' in url:
articles[feed].append(
dict(title=title, url=url, date=pubdate,
description=description,
content=''))
ans = self.sort_index_by(ans, {'The Front Page':-1, 'Dining In, Dining Out':1,
'Obituaries':2})
ans = [(key, articles[key]) for key in ans if articles.has_key(key)]
return ans

def preprocess_html(self, soup):


refresh = soup.find('meta', {'http-equiv':'refresh'})
if refresh is None:
return soup
content = refresh.get('content').partition('=')[2]
raw = self.browser.open('https://www.nytimes.com'+content).read()
return BeautifulSoup(raw.decode('cp1252', 'replace'))

Vemos varias caractersticas nuevas en esta frmula. En primer lugar, tenemos:

timefmt = ' [%a, %d %b, %Y]'

Esto hace que la fecha que aparece en la primera pgina del libro electrnico creado se muestre en este formato, Da,
Nmero de da Mes, Ao. Vea: attr:timefmt <calibre.web.feeds.news.BasicNewsRecipe.timefmt>.
Despus vemos un grupo de directivas para depurar el HTML descargado:

remove_tags_before = dict(name='h1')
remove_tags_after = dict(id='footer')
remove_tags = ...

stas eliminan todo lo que hay antes de la primera etiqueta <h1> y todo lo que hay despus de la prime-

44 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

ra etiqueta cuyo id es footer. Vanse remove_tags (pgina 54), remove_tags_before (pgina 54),
remove_tags_after (pgina 54).
La siguiente funcin interesante es:

needs_subscription = True
...
def get_browser(self):
...

needs_subscription = True le comunica a calibre que esta frmula necesita un nombre de usuario y contra-
sea para poder acceder al contenido. Esto hace que calibre pida un nombre de usuario y contrasea cada vez que in-
tente utilizar esta frmula. El cdigo en calibre.web.feeds.news.BasicNewsRecipe.get_browser()
(pgina 47) es el que realmente inicia la sesin en el sitio de Internet del New York Times. Una vez iniciada la se-
sin, calibre utilizar esta misma sesin para obtener todo el contenido. Vase mechanize6 para entender el cdigo en
get_browser.
La siguiente nueva funcin es el mtodo calibre.web.feeds.news.BasicNewsRecipe.
parse_index() (pgina 49). Su trabajo consiste en ir a https://www.nytimes.com/pages/todayspaper/index.html a
buscar la lista de los artculos que aparecen en el nmero de hoy. Aunque es ms compleja que simplemente usar el
RSS, la frmula crea un libro electrnico que se corresponde muy de cerca con el peridico del da. parse_index
hace un uso intensivo de BeautifulSoup7 para analizar la pgina del diario. Tambin puede utilizar otros programas
de anlisis, ms modernos, si no le gusta BeatifulSoup. calibre incluye lxml8 y html5lib9 , que son los programas de
anlisis recomendados. Para usarlos, sustituya la llamada a index_to_soup() por lo siguiente:

raw = self.index_to_soup(url, raw=True)


# For html5lib
import html5lib
root = html5lib.parse(raw, namespaceHTMLElements=False, treebuilder='lxml')
# For the lxml html 4 parser
from lxml import html
root = html.fromstring(raw)

La ltima nueva caracterstica es el mtodo calibre.web.feeds.news.BasicNewsRecipe.


preprocess_html() (pgina 50). Se puede utilizar para realizar transformaciones arbitrarias en cada pgina
HTML descargada. Aqu se usa para evitar la publicidad que nytimes muestra antes de cada artculo.

1.2.3 Consejos para desarrollar nuevas frmulas

La mejor manera de desarrollar nuevas frmulas es utilizar la interfaz de lnea de rdenes. Cree la frmula usando su
editor de python favorito y gurdela en un archivo, digamos mifrmula.recipe. La extensin .recipe es necesaria.
Puede descargar contenido usando esta frmula con la orden:

ebook-convert myrecipe.recipe .epub --test -vv --debug-pipeline debug

La orden ebook-convert descargar todas las pginas de Internet y las guardar en el archivo EPUB
mifrmula.epub. La opcin -vv hace que ebook-convert muestre una gran cantidad de informacin acerca de
lo que est haciendo. La opcin ebook-convert-recipe-input --test hace que se descargue slo un par
de artculos de un mximo de dos canales RSS. Adems, ebook-convert pondr el HTML descargado en el directorio
debug/input, donde debug es el directorio que haya especificado en la opcin :option:ebook-convert debug-
pipeline.
6 https://github.com/jjlee/mechanize
7 https://www.crummy.com/software/BeautifulSoup/documentation.html
8 http://lxml.de/
9 https://github.com/html5lib/html5lib-python

1.2. Aadir su sitio de noticias favorito 45


Manual de usuario de calibre, Versin 2.82.0

Una vez que la descarga est completa, puede ver el HTML descargado abriendo el archivo debug/input/index.
html en un navegador. Cuando que est satisfecho con la descarga y el procesado previo, puede generar libros elec-
trnicos en diferentes formatos, como se muestra a continuacin:

ebook-convert myrecipe.recipe myrecipe.epub


ebook-convert myrecipe.recipe myrecipe.mobi
...

Si est satisfecho con frmula y cree que existe suficiente demanda para justificar su inclusin en el conjunto de
frmulas incorporadas, comprtala en el Foro de frmulas de calibre10 (en ingls).

Nota: En OS X, las herramientas de lnea de rdenes estn dentro del paquete calibre, por ejemplo, si ha instalado ca-
libre en &#x2F;Aplicaciones las herramientas de lnea de rdenes estn en &#x2F;Aplicaciones&#x2F;
calibre.app&#x2F;Contents&#x2F;console.app&#x2F;Contents&#x2F;MacOS&#x2F;.

Ver tambin:
ebook-convert (pgina 265) La interfaz de la lnea de rdenes para todas las conversiones de libros electrnicos.

1.2.4 Lecturas adicionales

Para obtener ms informacin acerca de cmo escribir frmulas avanzadas usando algunas de las opciones disponibles
en BasicNewsRecipe debe consultar las siguientes fuentes:
Documentacin de la API (pgina 46) La documentacin de la clase BasicNewsRecipe y todos sus
mtodos y campos importantes.
BasicNewsRecipe11 El cdigo fuente de BasicNewsRecipe
Frmulas predefinidas12 El cdigo fuente de las frmulas predefinidas que incluye calibre
El foro de frmulas de calibre13 (en ingls) Un buen nmero de creadores de frmulas de calibre pasan
el rato aqu.

1.2.5 Documentacin de la API

Documentacin de la API para frmulas

La API para crear frmulas est definida por la clase BasicNewsRecipe (pgina 46)
class calibre.web.feeds.news.BasicNewsRecipe(options, log, progress_reporter)
La clase base que contiene la lgica necesaria para todas las frmulas. Reemplazando progresivamente las dis-
tintas funciones de esta clase, puede generar frmulas cada vez ms personalizadas y potentes. Para un cursillo
introductorio a la creacin de frmulas, vase Aadir su sitio de noticias favorito (pgina 24).
abort_article(msg=None)
Ejecute este mtodo dentro de cualquiera de los mtodos de preprocesado para cancelar la descarga del
artculo actual. Es til para evitar la descarga de artculos con contenido no adecuado, como artculos que
slo contienen vdeos.
10 https://www.mobileread.com/forums/forumdisplay.php?f=228
11 https://github.com/kovidgoyal/calibre/blob/master/src/calibre/web/feeds/news.py
12 https://github.com/kovidgoyal/calibre/tree/master/recipes
13 https://www.mobileread.com/forums/forumdisplay.php?f=228

46 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

abort_recipe_processing(msg)
Hace que el sistema de descarga de frmulas cancele la descarga de esta frmula, mostrando al usuario un
mensaje de informacin sencillo.
add_toc_thumbnail(article, src)
Utilice este mtodo desde populate_article_metadata con el atributo src de una etiqueta <img> del artculo
que quiera usar como la miniatura que representa el artculo en el ndice. Si la miniatura se usa realmente
o no depender del dispositivo (actualmente slo la usan los Kindles). Tenga en cuenta que la imagen a
que se hace referencia debe haber sido descargada con xito, de lo contrario se ignorar.
classmethod adeify_images(soup)
Si la frmula, al ser convertida a EPUB, tiene problemas con las imgenes cuando se muestra en Adobe
Digital Editions, utilice este mtodo desde postprocess_html() (pgina 49).
canonicalize_internal_url(url, is_link=True)
Devuelve un conjunto de representaciones cannicas de url. La implementacin predeterminada usa el
nombre del servidor y la ruta de acceso del URL, descartando parmetros de consulta, fragmentos, etc. Las
representaciones cannicas deben ser nicas para todos los URL de esta fuente de noticias. Si no lo son,
los enlaces internos pueden ser incorrectos.
Parmetros is_link Es True si el URL viene de un enlace interno en un archivo HTML.
False si el URL es el URL usado para descargar un artculo.
cleanup()
Usado cuando todos los artculos han sido descargados. selo para hacer limpieza, como cerrar sesiones
en los sitios que requieren suscripcin, etc.
clone_browser(br)
Clonar el navegador br. Los navegadores clonados se utilizan para las descargas multihilo, ya que me-
chanize no es seguro. Las rutinas de clonacin predeterminadas deberan reconocer la mayora de las
personalizaciones del navegador, pero si se hace algo extico en una frmula, debe sustituir este mtodo
en la frmula y clonarlo de forma manual.
Los navegadores clonados usan el mismo CookieJar seguro en varios hilos, de manera predeterminada, a
menos que haya personalizado el manejo de las cookies.
default_cover(cover_file)
Crear una portada genrica para las frmulas que no poseen una.
download()
Descargar y preprocesar todos los artculos de los canales RSS en esta frmula. Este mtodo debe utili-
zarse una sola vez en cada frmula. Si se usa ms de una vez se obtendr un comportamiento indefinido.
:return:Ruta de acceso al index.html
extract_readable_article(html, url)
Extrae el contenido del artculo principal desde html, lo depura y lo devuelve como una tupla
(html_artculo, ttulo_extrado). Basado en el algoritmo Readability original de Arc90.
get_article_url(article)
Sustituir en una subclase para personalizar la extraccin del URL que apunta al contenido de cada artculo.
Devuelve el URL del artculo. Se ejecuta con article, un objeto que representa un artculo analizado de
un canal. Vase feedparser14 . De manera predeterminada busca el enlace original (para canales agregados
mediante un servicio como feedburner o pheedo) y, si se encuentra, devuelve dicho enlace o article.link15
en caso contrario.
get_browser(*args, **kwargs)
Devuelve un navegador utilizado para obtener documentos desde Internet. De manera predeterminada
14 https://pythonhosted.org/feedparser/
15 https://pythonhosted.org/feedparser/reference-entry-link.html

1.2. Aadir su sitio de noticias favorito 47


Manual de usuario de calibre, Versin 2.82.0

devuelve un navegador mechanize16 que soporta cookies, ignora robots.txt, tiene en cuenta los refrescos y
tiene un agente de usuario de tipo mozilla firefox.
Si la frmula requiere un inicio de sesin, reemplace este mtodo en la subclase. Por ejemplo, el siguiente
cdigo se usa en la frmula del New York Times para iniciar la sesin y tener acceso total:

def get_browser(self):
br = BasicNewsRecipe.get_browser(self)
if self.username is not None and self.password is not None:
br.open('https://www.nytimes.com/auth/login')
br.select_form(name='login')
br['USERID'] = self.username
br['PASSWORD'] = self.password
br.submit()
return br

get_cover_url()
Devuelve un URL para la imagen de portada de este nmero o None. De manera predeterminada, devuelve
el valor del miembro self.cover_url que es normalmente None. Si quiere que la frmula descargue una
portada para el libro electrnico reemplace este mtodo en la subclase, o establezca la variable miembro
self.cover_url antes de utilizar este mtodo.
get_extra_css()
De manera predeterminada devuelve self.extra_css. Reemplcelo si desea generar el archivo extra_css
mediante un programa.
get_feeds()
Devuelve una lista de canales RSS para obtener en este perfil. Cada elemento de la lista debe ser una tupla
de 2 elementos de la forma (ttulo, url). Si el ttulo es None o un texto vaco, se utiliza el ttulo del canal
RSS. Este mtodo es til si la frmula tiene que hacer algn tipo de procesado para obtener la lista de
canales RSS para descargar. Si es as, reemplcelo en la subclase.
get_masthead_title()
Reemplcelo en la subclase para usar algo distinto del ttulo de la frmula
get_masthead_url()
Devuelve un URL a la imagen de cabecera de este nmero o None. De manera predeterminada, devuelve
el valor del miembro self.masthead_url que es normalmente None. Si quiere que la frmula descargue una
imagen de cabecera para el libro electrnico reemplace este mtodo en la subclase, o establezca la variable
miembro self.masthead_url antes de utilizar este mtodo. Las imgenes de cabecera se usan en los archivos
MOBI de Kindle.
get_obfuscated_article(url)
Si establece articles_are_obfuscated este mtodo se usa con cada URL de artculo. Debe devolver la ruta
de acceso a un archivo en el sistema que contenga el cdigo HTML del artculo. Este archivo es procesado
por el motor de recoleccin de HTML recursivo, por lo que puede contener enlaces a pginas o imgenes
en Internet.
Este mtodo es normalmente til para sitios que tratan de dificultar el acceso automtico al contenido de
los artculos.
classmethod image_url_processor(baseurl, url)
Realiza algn procesado sobre las direcciones URL de las imgenes (tal vez eliminando restricciones de
tamao para imgenes generadas dinmicamente, etc.) y devuelve la direccin URL procesada.
index_to_soup(url_or_raw, raw=False, as_tree=False)
Mtodo prctico que toma el URL de una pgina de ndice y devuelve un objeto BeautifulSoup17 que lo
16 https://github.com/jjlee/mechanize
17 https://www.crummy.com/software/BeautifulSoup/bs3/documentation.html

48 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

representa.
url_or_raw: Un URL o la pgina de ndice descargada como texto
is_link_wanted(url, tag)
Devuelve True si el enlace debe seguirse o False en caso contrario. De manera predeterminada, presenta
NotImplementedError, que hace que el programa de descarga lo ignore.
Parmetros
url La direccin URL que debe seguirse
tag La etiqueta de la que se extrajo la direccin URL
parse_feeds()
Crea una lista de artculos desde la lista de canales devuelta por BasicNewsRecipe.get_feeds()
(pgina 48). Devuelve una lista objetos Feed.
parse_index()
Este mtodo debe implementarse en las frmulas que analizan una pgina de Internet en lugar de canales
RSS para generar una lista de artculos. Normalmente se usa con fuentes de noticias que tienen una pgina
del tipo edicin impresa que enumera todos los artculos de la edicin impresa actual. Si se implementa
esta funcin, se usar con prioridad sobre BasicNewsRecipe.parse_feeds() (pgina 49).
Debe devolver una lista. Cada elemento de la lista debe ser una tupla de 2 elementos de la forma
('ttulo del canal', lista de artculos).
Cada lista de artculos deben contener diccionarios del tipo:

{
'title' : article title,
'url' : URL of print version,
'date' : The publication date of the article as a string,
'description' : A summary of the article
'content' : The full article (can be an empty string). Obsolete
do not use, instead save the content to a temporary
file and pass a file:///path/to/temp/file.html as
the URL.
}

Como ejemplo, vase la frmula para descargar The Atlantic. Adems, puede aadir author para el autor
del artculo.
Si desea cancelar el proceso por alguna razn y hacer que calibre muestre al usuario un simple mensaje en
lugar de un error, use abort_recipe_processing() (pgina 46).
populate_article_metadata(article, soup, first)
Called when each HTML page belonging to article is downloaded. Intended to be used to get article
metadata like author/summary/etc. from the parsed HTML (soup).
Parmetros article A object of class calibre.web.feeds.Article.
If you change the summary, remember to also change the text_summary :param soup: Parsed HTML
belonging to this article :param first: True iff the parsed HTML is the first page of the article.
postprocess_book(oeb, opts, log)
Ejecutar cualquier procesado posterior necesario sobre el libro electrnico descargado.
Parmetros
oeb Un objeto OEBBook
opts Opciones de conversin

1.2. Aadir su sitio de noticias favorito 49


Manual de usuario de calibre, Versin 2.82.0

postprocess_html(soup, first_fetch)
Este mtodo se ejecuta con el cdigo fuente de cada archivo HTML, despus de analizar sus imgenes y
enlaces. Puede usarse para efectuar un procesado arbitrario sobre el HTML. Debe devolver soup despus
del procesado.
Parmetros
soup Un objeto BeautifulSoup18 que contiene el HTML descargado.
first_fetch True si sta es la primera pgina de un artculo.
preprocess_html(soup)
Este mtodo se ejecuta con el cdigo fuente de cada archivo HTML, antes de analizar sus imgenes y
enlaces. Se ejecuta despus de la limpieza especificada por remove_tags, etc. Puede usarse para efectuar
un preprocesado arbitrario sobre el HTML. Debe devolver soup despus del procesado.
soup: Un objeto BeautifulSoup19 que contiene el HTML descargado.
preprocess_raw_html(raw_html, url)
Este mtodo se ejecuta con el cdigo fuente de cada archivo HTML, antes de convertirlo en un rbol de
objetos. raw_html es un texto unicode que representa el HTML en bruto descargado de Internet. url es la
direccin URL desde donde se descarg el HTML.
Tenga en cuenta que este mtodo acta antes de preprocess_regexps.
Este mtodo debe devolver el archivo raw_html procesado como un objeto unicode.
classmethod print_version(url)
Tomar un url que apunta a la pgina de Internet con el contenido del artculo y devuelve el URL de la
versin para imprimir del artculo. De manera predeterminada no hace nada. Por ejemplo:
def print_version(self, url):
return url + '?&pagewanted=print'

skip_ad_pages(soup)
Este mtodo se ejecuta con el cdigo fuente de cada archivo HTML descargado, antes de aplicar ningn
atributo de limpieza como remove_tags o keep_only_tags. Tenga en cuenta que preprocess_regexps ya
se habr aplicado. Est pensado para permitir que la frmula evite las pginas de publicidad. Si soup
representa una pgina de publicidad, devuelve el HTML de la pgina real. De lo contrario devuelve None.
soup: Un objeto BeautifulSoup20 que contiene el HTML descargado.
sort_index_by(index, weights)
Mtodo prctico para ordenar los ttulos en index segn weights. index se ordena en su lugar. Devuelve
index.
index: Una lista de ttulos.
weights: Un diccionario que asigna pesos a los ttulos. Si un ttulo del ndice no est en weights, se asume
que tiene un peso de 0.
classmethod tag_to_string(tag, use_alt=True, normalize_whitespace=True)
Mtodo prctico que toma un objeto Tag de BeautifulSoup21 y extrae el texto recursivamente, incluyendo
secciones CDATA y atributos alt. Devuelve un texto unicode posiblemente vaco.
use_alt: Si es True intenta usar el atributo alt para las etiquetas que no poseen contenido textual
tag: Un objeto Tag de BeautifulSoup22
18 https://www.crummy.com/software/BeautifulSoup/bs3/documentation.html
19 https://www.crummy.com/software/BeautifulSoup/bs3/documentation.html
20 https://www.crummy.com/software/BeautifulSoup/bs3/documentation.html
21 https://www.crummy.com/software/BeautifulSoup/bs3/documentation.html
22 https://www.crummy.com/software/BeautifulSoup/bs3/documentation.html

50 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

articles_are_obfuscated = False
Establzcalo a True e implemente get_obfuscated_article() (pgina 48) para manejar sitios de
Internet que tratan de dificultar la obtencin de contenido.
auto_cleanup = False
Extrae automticamente todo el texto de las pginas de artculos descargadas. Utiliza los algoritmos del
proyecto Readability. Si se establece en True, no hay necesidad de preocuparse de limpiar el cdigo HTML
manualmente (aunque la limpieza manual siempre ser mejor).
auto_cleanup_keep = None
Especifica los elementos que el algoritmo de limpieza automtica no debe eliminar nunca. La sintaxis es
una expresin XPath. Por ejemplo:

auto_cleanup_keep = '//div[@id="article-image"]' will keep all divs with


id="article-image"
auto_cleanup_keep = '//*[@class="important"]' will keep all elements
with class="important"
auto_cleanup_keep = '//div[@id="article-image"]|//span[@class="important"]'
will keep all divs with id="article-image" and spans
with class="important"

center_navbar = True
Si es True la barra de navegacin se alinea al centro, en caso contrario se alinea a la izquierda
compress_news_images = False
Si es False, se descartan todos los parmetros de escala y compresin y se dejan las imgenes sin modificar.
Si es True y los otros parmetros de compresin se dejan en sus valores predeterminados, las imgenes
jpeg se redimensionarn para adaptarse al tamao de la pantalla establecido por el perfil de salida y se
comprimen a un tamao mximo de (w h)/16, donde w y h son la anchura y altura redimensionadas
de la imagen.
compress_news_images_auto_size = 16
El factor utilizado cuando se comprimen automticamente las imgenes jpeg. Si se establece en None,
la compresin automtica se desactiva. De lo contrario, las imgenes se reducirn a un tamao en bytes
de (w h)/compress_news_images_auto_size, si es posible, reduciendo el nivel de calidad, donde w y
h son la anchura y la altura de la imagen en pxeles. La calidad mnima del jpeg ser 5/100 por lo que
es posible que no pueda cumplirse con esta restriccin. Este parmetro se puede anular con el parmetro
compress_news_images_max_size, que proporciona un tamao mximo fijo para las imgenes. Tenga en
cuenta que si se habilita scale_news_images_to_device entonces la imagen se ampliar primero y luego
su calidad se reducir hasta que su tamao sea menor que (w h)/factor donde w y h son ahora
las dimensiones de la imagen redimensionada. En otras palabras, esta compresin ocurre despus del
redimensionado.
compress_news_images_max_size = None
Establece la calidad de los archivos jpeg para que las imgenes no excedan el tamao dado (en kbytes).
Si se establece este parmetro, la compresin automtica va compress_news_images_auto_size no tiene
lugar. La calidad mnima del jpeg ser 5/100 por lo que es posible que no pueda cumplirse con esta
restriccin.
conversion_options = {}
Opciones especficas de la frmula para controlar la conversin del contenido descargado en un libro
electrnico. stas tienen prioridad sobre cualquier valor especificado por el usuario o un complemento,
por lo que deben utilizarse slo si es absolutamente necesario. Por ejemplo:

conversion_options = {
'base_font_size' : 16,
'tags' : 'mytag1,mytag2',
'title' : 'My Title',

1.2. Aadir su sitio de noticias favorito 51


Manual de usuario de calibre, Versin 2.82.0

'linearize_tables' : True,
}

cover_margins = (0, 0, #ffffff)


De manera predeterminada, la imagen de portada devuelta por get_cover_url() se utilizar como portada
para la publicacin. Si se establece un valor para esta variable en una frmula, calibre colocar la porta-
da descargada dentro de un marco cuya anchura y altura se expresan como un porcentaje de la portada
descargada. cover_margins = (10, 15, #ffffff) rellena la portada con un margen blanco de 10px a la iz-
quierda y derecha, 15px en la parte superior e inferior. Los nombres de los colores estn definidos en
https://www.imagemagick.org/script/color.php. Tenga en cuenta que, por alguna razn, white no siem-
pre funciona en Windows. Utilice #ffffff en su lugar.
delay = 0
Tiempo de espera, en segundos, entre descargas consecutivas. El argumento puede ser un nmero decimal
para indicar un tiempo ms preciso.
description = u
Un par de lneas que describen el contenido que descarga esta frmula. Se usar principalmente en una
interfaz grfica que presenta una lista de frmulas.
encoding = None
Especifica una codificacin para los sitios que tienen una especificacin de conjunto de caracteres incorrec-
ta. El error ms comn es declarar latin1 y usar cp1252. Si es None, trata de detectar la codificacin.
Si es un mtodo ejecutable, se usar con dos argumentos: el objeto de la frmula y el cdigo fuente para
descodificar. Debe devolver el cdigo descodificado.
extra_css = None
Especifique cualquier CSS extra que debe aadirse a los archivos HTML descargados. Ser insertado en eti-
quetas <style>, justo antes de la etiqueta de cierre </head> sustituyendo as todos los CSS excepto los que
estn declarados mediante el atributo style en etiquetas HTML individuales. Tenga en cuenta que si desea
generar un archivo extra_css mediante un programa debe reemplazar el mtodo get_extra_css()
(pgina 48). Por ejemplo:

extra_css = '.heading { font: serif x-large }'

feeds = None
Lista de canales para descargar. Puede ser [url1, url2, ...] o [('ttulo1', url1),
('ttulo2', url2), ...]
filter_regexps = []
Lista de expresiones regulares que determina qu enlaces ignorar. Si est vaca no se tiene en cuenta. Usado
slo si is_link_wanted no est implementado. Por ejemplo:

filter_regexps = [r'ads\.doubleclick\.net']

eliminar todos los URL que contengan ads.doubleclick.net.


Slo uno de entre BasicNewsRecipe.match_regexps (pgina 53) y BasicNewsRecipe.
filter_regexps (pgina 52) deben definirse.
handle_gzip = False
Establzcalo en True para usar transferencias comprimidas con gzip. Tenga en cuenta que algunos servi-
dores antiguos pueden fallar con esta opcin, por lo que est desactivada de manera predeterminada.
ignore_duplicate_articles = None
Ignorar duplicados de los artculos que estn presentes en ms de una seccin. Un artculo duplicado es un
artculo que tiene el mismo ttulo o direccin URL. Para ignorar artculos con el mismo ttulo, establzcalo
como:

52 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

ignore_duplicate_articles = {'title'}

En cambio, para utilizar las direcciones URL, establzcalo como:

ignore_duplicate_articles = {'url'}

Para hacer que coincida el ttulo o URL, establzcalo como:

ignore_duplicate_articles = {'title', 'url'}

keep_only_tags = []
Mantiene slo las etiquetas especificadas y sus descendientes. El formato para especificar una etiqueta
est definido en BasicNewsRecipe.remove_tags (pgina 54). Si la lista no est vaca, entonces la
etiqueta <body> se vaciar y se volver a llenar con las etiquetas que coincidan con las entradas en esta
lista. Por ejemplo:

keep_only_tags = [dict(id=['content', 'heading'])]

mantendr slo las etiquetas que posean un atributo id igual a content o heading.
language = und
El idioma en que estn las noticias. Debe ser un cdigo ISO-639 de dos o tres letras
masthead_url = None
De manera predeterminada, calibre usar la imagen predeterminada para la cabecera (slo en Kindle). D
un valor a esta variable en la frmula para proporcionar un URL para usar como cabecera.
match_regexps = []
Lista de expresiones regulares que determina qu enlaces seguir. Si est vaca, no se tiene en cuenta. Se
usa slo si is_link_wanted no est implementado. Por ejemplo:

match_regexps = [r'page=[0-9]+']

coincidir con todas las direcciones URLs que posean page=algn nmero.
Slo uno de entre BasicNewsRecipe.match_regexps (pgina 53) y BasicNewsRecipe.
filter_regexps (pgina 52) deben definirse.
max_articles_per_feed = 100
Nmero mximo de artculos para descargar de cada canal. Esto es til sobre todo para los canales
que no tienen fechas en los artculos. Para la mayora de los canales, debe usar BasicNewsRecipe.
oldest_article (pgina 53)
needs_subscription = False
Si es True, la interfaz grfica pedir al usuario un nombre y una contrasea para utilizar en la descarga. Si
se establece en .optional" el nombre y contrasea sern opcionales.
no_stylesheets = False
Opcin til para desactivar la carga de hojas de estilo en los sitios de Internet que tienen hojas de estilo
excesivamente complejas, poco apropiadas para la conversin a formatos de libro electrnico. Si es True,
las hojas de estilo no se descargan ni procesan
oldest_article = 7.0
Artculo ms antiguo para descargar desde la fuente de noticias. En das.
preprocess_regexps = []
Lista de reglas de sustitucin regexp para ejecutar sobre los HTML descargados. Cada elemento de la
lista debe ser una tupla de dos elementos. El primer elemento de la tupla debe ser una expresin regular

1.2. Aadir su sitio de noticias favorito 53


Manual de usuario de calibre, Versin 2.82.0

compilada y el segundo un mtodo ejecutable que toma un objeto de coincidencia nico y devuelve un
texto para sustituir a la coincidencia. Por ejemplo:

preprocess_regexps = [
(re.compile(r'<!--Article ends here-->.*</body>', re.DOTALL|re.IGNORECASE),
lambda match: '</body>'),
]

eliminar todo lo que haya entre <!Article ends here> y </body>.


publication_type = unknown
Tipo de publicacin. Establecer como newspaper, magazine o blog. Si se establece en None, no se
escribir el metadato de tipo de publicacin en el archivo opf.
recipe_disabled = None
Establecer a un texto no vaco para desactivar esta frmula. El texto se utilizar como el mensaje de
desactivacin.
recursions = 0
Nmero de niveles de enlaces para seguir en las pginas de internet de los artculos
remove_attributes = []
Lista de atributos para quitar de todas las etiquetas. Por ejemplo:

remove_attributes = ['style', 'font']

remove_empty_feeds = False
Si es True los canales vacos se eliminan de la salida. Esta opcin no tiene efecto si parse_index se reem-
plaza en la subclase. Est pensado slo para las frmulas que devuelven una lista de canales que utilizan
feeds o get_feeds() (pgina 48). Tambin se utiliza si se emplea la opcin ignore_duplicate_articles.
remove_javascript = True
Opcin til para eliminar todas las etiquetas javascript del archivo HTML descargado
remove_tags = []
Lista de etiquetas para ser eliminadas. Las etiquetas especificadas se eliminan del HTML descargado. Cada
etiqueta se especifica como un diccionario de la forma:

{
name : 'tag name', #e.g. 'div'
attrs : a dictionary, #e.g. {class: 'advertisment'}
}

Todas las claves son opcionales. Para una explicacin completa de los criterios de bsqueda, vase Beau-
tiful Soup23 (en ingls). Un ejemplo frecuente:

remove_tags = [dict(name='div', attrs={'class':'advert'})]

Esto eliminar todas las etiquetas <div class=advert> y todos sus elementos descendientes del HTML
descargado.
remove_tags_after = None
Elimina todas las etiquetas que se aparecen despus de la etiqueta especificada. La forma de especificar
una etiqueta se muestra en BasicNewsRecipe.remove_tags (pgina 54). Por ejemplo:

remove_tags_after = [dict(id='content')]

eliminar todas las etiquetas despus del primer elemento con id=content.
23 https://www.crummy.com/software/BeautifulSoup/bs3/documentation.html#Searching%20the%20Parse%20Tree

54 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

remove_tags_before = None
Elimina todas las etiquetas que aparecen antes de la etiqueta especificada. La forma de especificar una
etiqueta se da en BasicNewsRecipe.remove_tags (pgina 54). Por ejemplo:

remove_tags_before = dict(id='content')

eliminar todas las etiquetas antes del primer elemento con id=content.
requires_version = (0, 6, 0)
Versin mnima de calibre necesaria para usar esta frmula
resolve_internal_links = False
Si es True los enlaces en los artculos descargados que apunten a otros artculos descargados se cambian
para que apunten a la copia descargada del artculo en lugar de al URL original. Si lo establece en True,
puede que tambin necesite implementar canonicalize_internal_url() (pgina 47) para que
funcione con el esquema URL del sitio web concreto.
reverse_article_order = False
Invierte el orden de los artculos de cada canal
scale_news_images = None
Dimensiones mximas (anchura, altura) para redimensionar las imgenes. Si sca-
le_news_images_to_device es True, estas dimensiones son el tamao de la pantalla del dispositivo
establecido en el perfil de salida, a menos que no haya un perfil seleccionado, en cuyo caso se deja en el
valor que se le haya asignado (de manera predeterminada None).
scale_news_images_to_device = True
Cambiar el tamao de las imgenes para que quepan en la pantalla del dispositivo establecido por el perfil
de salida. Se omite si no hay un perfil de salida seleccionado.
simultaneous_downloads = 5
Nmero de descargas simultneas. Establecer en 1 si el servidor es exigente. Se reduce automticamente a
1 si BasicNewsRecipe.delay (pgina 52) > 0
summary_length = 500
Nmero mximo de caracteres en la descripcin breve
template_css = u\n .article_date {\n color: gray; font-family: monospace;\n }\n\n .article_description {\n text-indent: 0
El CSS que se usa para dar el estilo a las plantillas, por ejemplo, las barras de navegacin y los ndices. En
lugar de sustituir esta variable, puede usar extra_css en la frmula para personalizar la apariencia.
timefmt = [ %a, %d %b %Y]
El texto de formato para la fecha que se muestra en la primera pgina. Predeterminado: Nombre_del_da,
Nmero_del_da Nombre_del_mes Ao
timeout = 120.0
Tiempo de espera para obtener archivos desde el servidor, en segundos
title = uFuente de noticias desconocida
El ttulo que se usar para el libro electrnico
use_embedded_content = None
Normalmente se intenta deducir si un canal contiene artculos completos incrustados, sobre la base de la
longitud del contenido incrustado. Si es Ninguno, entonces se utiliza el mtodo predeterminado. Si es True,
se supone siempre que los canales contienen artculos incrustados y si es False, se supone siempre que los
canales no contienen artculos incrustados.

1.2. Aadir su sitio de noticias favorito 55


Manual de usuario de calibre, Versin 2.82.0

1.3 El visor de libros electrnicos

calibre incluye un visor de libros electrnicos que puede mostrar los principales formatos de libros electrnicos. El
visor es altamente personalizable y posee muchas funciones avanzadas.

Iniciar el visor (pgina 56)


Desplazarse por un libro electrnico (pgina 56)
Personalizar la apariencia de la experiencia de lectura (pgina 59)
Bsqueda en diccionarios (pgina 59)
Copiar texto e imgenes (pgina 59)

1.3.1 Iniciar el visor

Puede ver cualquiera de los libros de la biblioteca calibre seleccionando el libro y pulsando el botn Mostrar. Esto
abrir el libro en el visor de libros electrnicos. Tambin puede iniciar el visor por s mismo desde el men Inicio en
Windows o utilizando la orden ebook-viewer en Linux y OS X (primero debe instalar las herramientas de lnea de
rdenes en OS X en Preferencias > Avanzado > Miscelnea).

1.3.2 Desplazarse por un libro electrnico

Puede pasar las pginas en un libro utilizando los botones Siguiente pgina o :guilabel: Pgina anterior

, o pulsando las teclas Av Pg o Re Pg. A diferencia de la mayora de los lectores de libros electr-
nicos, calibre no obliga a ver libros en modo paginado. Puede desplazar el texto cantidades inferiores a una pgina
mediante el uso de la barra de desplazamiento o distintos atajos de teclado personalizables.

Marcadores

Si cierra el visor en medio de un libro, recordar dnde se detuvo la lectura y retornar a esa posicin la prxima vez

que abra el libro. Tambin puede establecer marcadores en el libro mediante el botn Marcador . Al ver
libros en formato EPUB, estos marcadores se guardan realmente en el mismo archivo EPUB. Puede aadir marcadores
y posteriormente, enviar el archivo a un amigo. Cuando abra el archivo, podr ver los marcadores.

56 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

ndice

Si el libro que est leyendo tiene definido un ndice, puede acceder a l pulsando el botn ndice . Se mostrar
una lista de secciones en el libro. Puede hacer pulsar en cualquiera de ellas para ir a la posicin correspondiente del
libro.

Navegar por ubicacin

Los libros electrnicos, a diferencia de los de papel, no tienen el concepto de pginas. En cambio, a medida que lea
el libro, se dar cuenta de que la posicin en el libro se muestra en la esquina superior izquierda en un cuadro como

ste . Esto muestra tanto la posicin actual como la longitud total del libro. Estos nmeros son
independientes del tamao de la pantalla y el tamao de la letra en que muestra el libro, y desempean un papel similar
al de los nmeros de pgina en los libros de papel. Puede introducir cualquier nmero que desee para ir a la ubicacin
correspondiente en el libro.
calibre tambin tiene un modo de referencia muy til. Puede activarlo pulsando en el botn Modo de referencia

. Una vez hecho esto, cada vez que se mueve el cursor sobre un prrafo, calibre mostrar un nmero exclu-
sivo formado por los nmeros de seccin y prrafo.

1.3. El visor de libros electrnicos 57


Manual de usuario de calibre, Versin 2.82.0

Puede usar este nmero para hacer especificar sin ambigedades las distantas partes de un libro al hablar con amigos
o al hacer referencias al libro en otros documentos. Puede introducir estos nmeros en la casilla Ir a... en la parte
superior de la ventana para ir a un lugar de referencia particular.
Si pulsa en enlaces dentro del libro electrnico para ir a diferentes partes del libro, como una nota al final, puede
utilizar los botones atrs y adelante en la esquina superior izquierda para volver a la posicin inicial. Estos botones se
comportan igual que los de un navegador de Internet.

58 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

1.3.3 Personalizar la apariencia de la experiencia de lectura

Puede cambiar los tamaos de letra sobre la marcha mediante el uso de los botones de tamao de letra .

Tambin puede hacer que el visor se muestre a pantalla completa pulsando el botn Pantalla completa . Si

pulsa en el botn Preferencias , podr cambiar los tipos de letra predeterminados utilizados por el visor por
los que prefiera, as como el tamao de letra predeterminado al iniciar el visor.
Puede lograr una personalizacin ms avanzada mediante la configuracin de una hoja de estilos de usuario. sta es
una hoja de estilos opcional que se aplicar a todos los libros. Por medio de ella puede hacer cosas como tener texto
en blanco sobre un fondo negro, cambiar estilos de prrafo, la justificacin del texto, etc. Para ver ejemplos de hojas
de estilo personalizadas utilizadas por otros usuarios de calibre, vea los foros24 (en ingls).

1.3.4 Bsqueda en diccionarios

Puede buscar el significado de las palabras en el libro actual pulsando con el botn dercho derecho sobre una palabra.
calibre utiliza el servidor de diccionario pblico dict.org para buscar palabras. La definicin se muestra en una
pequea caja en la parte inferior de la pantalla.

1.3.5 Copiar texto e imgenes

Puede seleccionar texto e imgenes arrastrando el contenido con el ratn y luego pulsando con el botn derecho para
copiar en el portapapeles. El material copiado se puede pegar en otra aplicacin como texto sin formato e imgenes.

1.4 Conversin de libros

calibre tiene un sistema de conversin diseado para que sea fcil de usar. Normalmente no tiene ms que aadir un
libro a calibre, pulsar en convertir y calibre intentar generar una salida tan parecida como sea posible a la entrada.
Sin embargo, calibre acepta un gran nmero de formatos de entrada, y no todos son tan adecuados como otros para
convertirse a otros formatos. En el caso de los formatos menos adecuados, o si simplemente desea tener mayor control
sobre el sistema de conversin, calibre tiene muchas opciones para ajustar los detalles del sistema de conversion. Tenga
en cuenta que el sistema de conversin de calibre no es un sustituto para un editor completo de libros electrnicos.
Para modificar libros le recomiendo que los convierta primero a EPUB o AZW3 con cailbre y luego use la funcin
Modificar libro para darle la forma perfecta. Despus puede usar el libro modificado como entrada para otros formatos
en calibre.
Este documento se referir principalmente a las opciones de conversin que se encuentran en el cuadro de dilogo de
conversin, mostrado a continuacin. Todas estas opciones tambin estn disponibles en la interfaz de lnea de rdenes
24 https://www.mobileread.com/forums/showthread.php?t=51500

1.4. Conversin de libros 59


Manual de usuario de calibre, Versin 2.82.0

para la conversin, documentada en ebook-convert (pgina 265). En calibre, puede obtener ayuda sobre cualquier
opcin manteniendo el cursor sobre ella, aparecer una ayuda emergente que describe la opcin.

Contents

Introduccin (pgina 61)


Apariencia (pgina 62)
Configuracin de pgina (pgina 65)
Procesado heurstico (pgina 65)
Buscar y sustituir (pgina 67)
Deteccin de estructura (pgina 67)
ndice (pgina 68)
Usar imgenes como ttulos de captulo al convertir documentos de entrada HTML (pgina 70)
Usar atributos de etiquetas para suministrar el texto de las entradas del ndice (pgina 70)

60 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

Cmo se establecen y guardan las opciones de conversin (pgina 70)


Consejos para formatos especficos (pgina 71)

1.4.1 Introduccin

Lo primero que debe comprender sobre el sistema de conversin es que est diseado como una serie de operaciones.
Esquemticamente, es alg as:

El formato de entrada se convierte primero a XHTML con el complemento de entrada apropiado. Despus este HTML
se transforma. En el ltimo paso, el XHTML procesado se convierte al formato de salida especificado con el comple-
mento de salida adecuado. Los resultados de la conversin pueden variar enormemente segn el formato de entrada.
Algunos formatos de entrada se convierten mucho mejorque otros. Una lista de los mejores formatos de origen para la
conversin est disponible aqu (pgina 115).
Todo el trabajo tiene lugar en las transformaciones que operan sobre la salida XHTML. Hay varias transformaciones,

1.4. Conversin de libros 61


Manual de usuario de calibre, Versin 2.82.0

por ejemplo, para insertar los metadatos del libro en una pgina al inicio del libro, para detectar encabezados de
captulo y crear un ndice automticamente, para ajustar los tamaos de letra proporcionalmente, etc. Es importante
recordar que todas las transformaciones actan sobre el XHTML creado por el complemento de entrada, no sobre el
archivo de entrada en s. As, por ejemplo, si pide a calibre que convierta un archivo RTF a EPUB, primero lo convertir
a XHTML internamente, se aplicarn las distintas transformaciones sobre el XHTML y despus el complemento de
salida crear el archivo EPUB, generando automticamente todos los metadatos, ndice, etc.

Puede ver este proceso en accin usando la opcin de depuracin . Simplemente especifique la ruta de

acceso a un directorio para la salida de depuracin. Durante la conversin, calibre guardar el XHTML generado por
las distintas etapas del proceso de conversin en subdirectorios separados. Los cuatro subdirectorios son:

Tabla 1.2: Stages of the conversion pipeline


Direc- Descripcin
torio
input Contiene el HTML creado por el complemento de entrada. selo para depurar el complemento de
entrada.
parsed El resultado del preprocesado y conversin a XHTML de la salida del complemento de entrada. selo
para depurar la deteccin de estructura.
struc- Posterior a la deteccin de estructura, pero anterior al aplanado de CSS y conversin de tamaos de
ture letra. selo para depurar la conversin de tamaos de letra y las transformaciones de CSS.
pro- Justo antes de que el libro pase al complemento de salida. selo para depurar el complemento de salida
cessed
Si desea modificar el documento de salida antes de que calibre lo convierta, lo mejor es modificar los archivos en
el subdirectorio input, comprimirlos en un archivo zip y usar ste como formato de entrada para las subsiguientes
conversiones. Para hacer esto use el cuadro de dilogo Modificar metadatos para aadir el zip como formato para el
libro y entonces, en la esquina superior izquierda del cuadro de dilogo de conversin, seleccione ZIP como formato
de entrada.
Este documento se ocupar principalmente de las distintas transformaciones que operan sobre el XHTML intermedio
y cmo controlarlas. Al final hay algunos consejos especficos para cada formato de entrada o salida.

1.4.2 Apariencia

Contents

Redimensionado de tamao de letra (pgina 63)


Espaciado de prrafos (pgina 64)
CSS adicional (pgina 64)
Miscelnea (pgina 64)

Las opciones de este grupo controlan varios aspectos del aspecto del libro electrnico convertido.

62 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

Redimensionado de tamao de letra

Una de las ventajas de la lectura electrnica es la posibilidad de ajustar los tamaos de letra segn las necesidades
individuales y las condiciones de iluminacin. calibre incluye sofisticados algoritmos para asegurar que todos los
libros que crea tienen tamaos de letra coherentes, independientemente de los tamaos de letra especificados en el
documento de entrada.
El tamao de letra base de un documento es el tamao de letra ms comn en el documento, es decir, el tamao del
texto principal del documento. Cuando especifica un Tamao de letra base, calibre redimensiona automticamente
todos los tamaos de letra del documento proporcionalmente, de manera que el tamao ms comn pasa a ser el
tamao base especificado y el resto de los tamaos de letra se redimensionan adecuadamente. Si elige un tamao de
letra base mayor har que todos los textos del documento sean mayores. Al establecer un tamao de letra base, para
obtener mejores resultados debe establecer tambin la clave de tamao de letra.
Normalmente calibre elegir automticamente un tamao de letra base adecuado para el perfil de salida que haya
seleccionado (ver Configuracin de pgina (pgina 65)). Si el tamao predeterminado no le satisface, puede especificar
otro aqu.
La opcin Clave de tamao de letra le permite especificar cmo se redimensionan los tamaos de letra que no son
el base. El algoritmo de redimensionado funciona usando una clave de tamao de letra, que no es ms que una lista
de tamaos de letra separados por comas. La clave de tamao de letra le dice a calibre cuntos escalones mayor o
menor debe ser un tamao determinado comparado con el tamao de letra base. La idea es que debe haber un nmero
limitado de tamaos de letra en un documento. Por ejemplo, un tamao para el texto principal, un par de tamaos
para distintos niveles de encabezados, y un par de tamaos para subndices o superndices, o notas a pie de pgina. La
clave de tamao de letra le permite a calibre clasificar los tamaos de letra en los documentos de entrada en distintas
casillas que corresponden a los distintos tamaos de letra lgicos.
Vemoslo con un ejemplo. Supongamos que el documento de origen que estamos convirtiendo lo produjo alguien con
una vista excelente y tiene un tamao de letra base de 8pt. Esto significa que el texto principal del documento tiene un
tamao de 8 pt, mientras que los encabezados son algo mayores (digamos 10pt y 12pt) y las notas a pie de pgina algo
menores (6pt). Si usamos las siguientes configuraciones:

Base font size : 12pt


Font size key : 7, 8, 10, 12, 14, 16, 18, 20

El documento de salida tendr un tamao de letra base de 12pt, encabezados de 14pt y 16pt y notas a pie de pgina de
8pt. Ahora supongamos que queremos que los encabezados mayores destaquen ms y hacer las notas a pie de pgina
algo mayores tambin. Para conseguir esto, debemos cambiar la clave de tamao de letra a:

New font size key : 7, 9, 12, 14, 18, 20, 22

Los encabezados mayores sern ahora de 18pt, mientras que las notas a pie de pgina sern de 9pt. Puede ajustar estos
valores para tratar de optimizarlos usando el asistente de redimensionado de tamaos de letra, al que se puede acceder
pulsando en el pequeo botn junto a la opcin Clave de tamao de letra.
Tambin puede desactivarse aqu todo el redimensionado de tamaos de letra en la conversin, si dese mantener los
tamaos de letra del documento de entrada.
Una opcin relacionada es Altura de lnea. La altura de lnea controla la separacin vertical entre renglones. De manera
predeterminada (una altura de lnea de 0), no se realiza ninguna manipulacin de alturas de lnea. Si especifica otro
valor, se incluir una altura de lnea en todos los lugares que no especifique su propia altura de lnea. Esto es una
herramienta bastante tosca y debera usarla en contadas ocasiones. Si quiere ajustar la altura de lnea en alguna seccin
particular de la entrada, es mejor usar el CSS adicional (pgina 64).

1.4. Conversin de libros 63


Manual de usuario de calibre, Versin 2.82.0

Espaciado de prrafos

Normalmente, los prrafos en XHTML se muestran con un espacio entre ellos y sin sangra en el primer rengln.
calibre tiene un par de opciones para controlar esto. Eliminar el espacio entre prrafos fuerza que no haya separacin
entre prrafos. Tambin establece la sangra en 1.5em (se puede cambiar) para indicar el inicio de cada prrafo. Insertar
una lnea en blanco entre prrafos hace lo contrario, asegurndose de que los prrafos estn separados por el espacio
correspondiente a un rengln. Ambas opciones son my generales, aaden o eliminan el espacio para todos los prrafos
(tcnicamente, para las etiquetas <p> y <div>). Esto es as para que pueda activar la opcin y tener la seguridad de que
hace lo que anuncia, sin importar lo enrevesado que pueda ser el archivo de entrada. La nica excepcin es cuando el
archivo de entrada usa saltos de lnea como espacio entre prrafos.
Si desea eliminar los espaciados entre todos los prrafos, exceptuando algunos, no utilice estas opciones. En lugar de
ello aada el siguiente cdigo CSS en CSS adicional (pgina 64):

p, div { margin: 0pt; border: 0pt; text-indent: 1.5em }


.spacious { margin-bottom: 1em; text-indent: 0pt; }

Despus, en el documento de origen, marque los prrafos que necesitan espaciado con class=spacious. Si el docu-
mento de entrada no est en formato HTML, use la opcin de depuracin, mencionada en la Introduccin para obtener
HTML (use el subdirectorio input).

CSS adicional

Esta opcin le permite especificar cdigo CSS arbitrario que se aplicar a todos los archivos HTML de la entrada.
Este cdigo CSS se aplica con muy alta prioridad, por lo que puede reemplazar la mayor parte del cdigo CSS en el
documento de entrada. Puede usar esta opcin para refinar la presentacin o dsiposicin del documento. Por ejemplo,
si desea que todos los prrafos de la clase endnote estn alineados a la derecha, aada:

.endnote { text-align: right }

o si desea cambiar la sangra de todos los prrafos:

p { text-indent: 5mm; }

CSS adicional es una opcin muy potente, pero necesita entender cmo funciona el cdigo CSS para sacarle el mximo
partido. Puede utilizar la opcin de depuracin mencionada anteriormente para ver el cdigo CSS presente en el
documento de entrada.

Miscelnea

Hay algunas opciones ms en esta seccin.


Sin justificacin de texto Normalmente, si el formato de salida lo soporta, calibre har que el libro de salida tenga
el texto justificado (es decir, un margen derecho uniforme). Esta opcin deshabilitar este comportamiento, en
cuyo caso se usar la justificacin especificada en el documento de entrada.
Linealizar tablas Algunos documentos mal diseados usan tablas para controlar la disposicin del texto en la pgina.
Cuando se convierten estos documentos suelen dar lugar a texto que se sale de la pgina y otros problemas. Esta
opcin extrae el contenido de las tablas y lo presenta de manera lineal. Tenga en cuenta que esta opcin linealiza
todas las tablas, as que sela slo cuando est seguro de que el documento de entrada no usa tablas con fines
legtimos, como, por ejemplo, para presentar informacin tabulada.
Transliterar los caracteres unicode a ASCII Translitera caracteres unicode a una representacin ASCII. selo con
precaucin debido a que reemplazar caracteres unicode con ASCII. Por ejemplo, sustituir
por Mikhail Gorbachiov. Adems, en algunos casos donde existen mltiples representacion de

64 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

un carcter (caracteres compartidos por los idiomas chino y japons, por ejemplo) se elegir la representacin
utilizada por mayor nmero de personas (chino, en este caso). Esta opcin es principalmente til si va a visuali-
zar el libro electrnico en un dispositivo que no admite caracteres unicode.
Codificacin de entrada Los documentos antiguos a veces no especifican su codificacin de caracteres. Al conver-
tirlos, esto puede resultar en errores en los caracteres no ingleses o en caracteres especiales como las comillas
curvas. calibre intenta detectar automticamente la codificacin de caracteres del documento de origen, pero no
siempre lo consigue. Puede forzarlo a que suponga una codificacin particular utilizando esta configuracin.
cp1252 es una codificacin usual para documentos generados por programas del sistema operativo Windows.
Debera leer tambin Cmo convierto un archivo que contiene caracteres exticos (acentuados, no latinos,
comillas tipogrficas, etc.)? (pgina 115) para ms informacin sobre temas de codificacin.

1.4.3 Configuracin de pgina

Las opciones de configuracin de pgina son para controlar la disposicin en la pantalla, como mrgenes y tamao de
pantalla. Hay opciones para establecer mrgenes de pgina, que usar el complemento de salida si el formato de salida
especificado admite mrgenes de pgina. Adems, debera seleccionar un perfil de entrada y un perfil de salida. Ambos
perfiles se encargan bsicamente de interpretar las dimensiones en los documentos de entrada o salida, los tamaos de
pantalla y las claves predeterminadas de tamao de letra.
Si sabe que el archivo concreto que va a convertir est pensado para un dispositivo o programa particular, elija el
correspondiente perfil de entrada, en caso contrario elija simplemente el perfl de entrada predeterminado. Si sabe que
los archivos producidos van a usarse con un tipo de dispositivo especfico, elija el perfil de salida correspondiente.
En particular, para archivos de salida MOBI debera elegir Kindle; para LIT, Microsoft Reader; y para EPUB, Sony
Reader. En el caso del formato EPUB, el perfil Sony Reader dar lugar a archivos EPUB que funcionen en cualquier
parte. Sin embargo, esto tiene algunos efectos secundarios, como insertar secciones artificiales para mantener el tamao
de los componentes individuales por debajo del lmite que requieren los dispositivos SONY. Para telfonos iPhone o
Andraid, elija el perfil de salida SONY. Si sabe que los archivos EPUB no van a leerse en un dispositivo SONY o
similar, use el perfil de salida predeterminado. Si va a generar archivos MOBI que no estn destinados al Kindle, elija
el perfil de salida Mobipocket.
El perfil de salida tambin controla el tamao de pantalla. Esto causar, por ejemplo, que las imgenes se redimen-
sionen automticamente para adaptarse a la pantalla en algunos formatos de salida. Por lo tanto elija el perfil de un
dispositivo que tenga una pantalla de tamao similar a su dispositivo.

1.4.4 Procesado heurstico

El procesado heurstico suministra una variedad de funciones que pueden utilizarse para detectar y corregir problemas
usuales en documentos con formato deficiente. Utilice estas funciones si el documento de entrada tiene este problema.
Puesto que estas funciones se basan en patrones comunes, sea consciente de que en algunos casos una opcin puede
degenerar en peores resultados, as que selas con precaucin. Como ejemplo, varias de estas opciones eliminarn
todos los espacios duros, o puede incluir falsos positivos relativos a la funcin.
Activar el procesado heurstico Esta opcin activa la etapa de procesamiento heurstico de calibre en el proceso de
conversin. Debe estar habilitada para que se apliquen varias subfunciones.
Unir lneas Si activa esta opcin, calibre intentar detectar y corregir saltos de lnea forzados en el documento usando
pistas como la puntuacin y la longitud del rengln. calibre primero intentar detectar si existen saltos de lnea
forzados, si no es as calibre no intentar unir renglones. Puede reducir el factor de unin de lneas si quiere
forzar a calibre a unir renglones.
Factor de unin de lneas Esta opcin controla el algoritmo que usa calibre para eliminar los saltos de lnea forzados.
Por ejemplo, si el valor de esta opcin es 0.4, eso significa que calibre eliminar los saltos de lnea de los
renglones cuya longitud sea menor del 40 % de todos los renglones del documento. Si el documento tiene slo
algunos saltos de lnea que necesitan la correccin, este valor debera reducirse a algo entre 0.1 y 0.2.

1.4. Conversin de libros 65


Manual de usuario de calibre, Versin 2.82.0

Detectar y marcar cabeceras y subcabeceras de captulos sin formato Si el documento no posee cabeceras de cap-
tulo y ttulos con un formato diferente del resto del texto, calibre puede usar esta opcin para intentar detectarlos
e incluirlos en etiquetas de encabezado. Las etiquetas <h2> se usan para cabeceras de captulo; las etiquetas
<h3> se usan para cualquier ttulo que se detecte.
Esta funcin no crear un ndice, pero en muchos casos har que la deteccin automtica de captulos predeter-
minada de calibre detecte los captulos correctamente y cree un ndice. Ajuste la expresin XPath en Deteccin
de estructura si no se crea automticamente un ndice. Si no se usan otras cabeceras en el documento, especificar
//h:h2 como expresin XPath ser la forma ms fcil de crear un ndice para el documento.
Las cabeceras insertadas no poseen formato, para aplicarle uno utilice la opcin CSS adicional en la seccin de
configuracin :guilabelApariencia. Por ejemplo, para centrar las etiquetas de cabecera, utilice lo siguiente:

h2, h3 { text-align: center }

Renumerar secuencias de etiquetas <h1> o <h2> para evitar divisiones Algunas editoriales utilizan varias etiquetas
<h1> o <h2> consecutivas par dar formato a las cabeceras de captulo. La configuracin de conversin prede-
terminada de calibre har que tales ttulos se divididan en varias partes. Esta opcin renumerar las etiquetas de
cabecera para evitar la divisin.
Borrar lneas en blanco entre prrafos Esta opcin hace que calibre analice las lneas en blanco incluidas en el do-
cumento. Si todos los prrafos estn separados por lneas en blanco, calibre eliminar todos esos prrafos en
blanco. Varias lneas en blanco consecutivas se considerarn como saltos de escena y se mantendrn como un
nico prrafo. Esta opcin se diferencia de Eliminar el espacio entre prrafos en Apariencia en que introduce
cambios en el cdigo HTML, mientras que la otra opcin slo modifica los estilos del documento. Esta opcin
tambin puede eliminar prrafos que se introdujeron con la opcin de calibre Insertar lneas en blanco.
Asegurar que los cambios de escena tienen un formato consistente Con esta opcin calibre intentar detectar mar-
cadores de cambio de escena comunes y se asegurar de que estn centrados. A los marcadores de cambio de
escena implcitos, es decir, cambios de escena definidos slo por espacio adicional, se les aplica un estilo para
evitar que coincidan con saltos de pgina.
Sustituir cambios de escena Si esta opcin est activada, calibre sustituir los marcadores de cambio de escena con
el texto de sustitucin especificado por el usuario. Tenga en cuenta que algunos caracteres ornamentales pueden
no ser compatibles con todos los dispositivos de lectura.
En general, debera evitar usar etiquetas HTML, calibre ignorar cualquier etiqueta y usar marcas predefinidas.
Las etiquetas <hr/> (lneas horizontales) e <img> son excepciones. Las lneas horizontales pueden especificarse
tambin con estilos, si decide incluir un estilo, asegurse de que tenga la opcin width, en caso contrario la
informacin de estilo ser ignorada. Las etiquetas de imagen pueden usarse, pero calibre no ofrece la posibilidad
de aadir imgenes durante la conversin, esto debe hacerse posteriormente usando la funcin Modificar libro.
Ejemplo de etiqueta de imagen (guarda la imagen dentro de la carpeta Images dentro del epub despus de la conve
<img style=width:10 % src=../Images/scenebreak.png />
Ejemplo de barra horizontal con estilos: <hr style=width:20 %;padding-top: 1px;border-top:
2px ridge black;border-bottom: 2px groove black;/>
Eliminar los guiones ortogrficos innecesarios calibre analizar todo el contenido con guiones en el documento si
se activa esta opcin. El propio documento se usa como diccionario para el anlisis. Esto permite a calibre
eliminar guiones en el documento con precisin para cualquier palabra en cualquier idioma, incluso en palabras
inventadas u oscuros trminos cientficos. La principal desventaja es que las palabras que aparezcan una sola vez
en el documento no se cambiarn. El anlisis tienen lugar en dos pasadas, la primera pasada analiza los finales
de lnea. Las lneas se unirn slo si la palabra existe en el documento con o sin guin. La segunda pasada
analiza todas las palabras con guin en el documento, los guiones se eliminan si la palabra existe sin guin en
algn otro lugar del documento.
Poner en cursiva palabras y patrones habituales Si se activa, calibre buscar palabras y patrones habituales que mar-
can las cursivas, y los pondr en cursiva. Algunos ejemplos son convenciones comutes de texto com ~palabra~

66 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

o frases que generalmente (en ingls) van en cursiva, como etc. o et cetera.
Sustituir el sangrado mediante caracteres por sangrado CSS Algunos documentos establecen las sangras mediante
espacios duros. Cuando se activa esta opcin, calibre intenta detectar este tipo de formato y lo convierte a una
sangra del 3 % usando CSS.

1.4.5 Buscar y sustituir

Estas opcines son tiles principalmente para la conversin de documentos PDF u OCR, aunque tambin pueden
usarse para corregir muchos problemas especficos. Como ejemplo, algunas conversiones pueden dejar encabezados
o pies de pgina en el texto. Estas opciones usan expresiones regulars para tratar de detectar encabezados, pies de
pgina u otro texto arbitrario y eliminarlos o sustituirlos. Recuerde que operan sobre el cdigo XHTML intermedio
producido durante la conversin. Existe un asistente que le ayudar a personalizar las expresiones regulares para cada
documento. Pulse sobre la varita mgica junto al cuadro de expresin, y pulse el botn Prueba tras completar una
expresin regular. Las coincidencias se resaltarn en amarillo.
La bsqueda funciona utilizando una expresin regular python. Todo el texto de la coincidencia se elimina del docu-
mento o se stituye utilizando el patrn de sustitucin. El patrn de sustitucin es opcional, si se deja en blanco el texto
de la coincidencia se borrar del documento. Puede aprender ms acerca de las expresiones regulares y su sintaxis en
Todo acerca de cmo utilizar expresiones regulares en calibre (pgina 178).

1.4.6 Deteccin de estructura

La deteccin de estructura significa que calibre hace lo que puede para detectar elementos estructurales en el documen-
to de entrada, cuando no tienen una especificacin apropiada. Por ejemplo, captulos, saltos de pgina, encabezados,
pies de pgina, etc. Como puede imaginar, este proceso vara mucho de un libro a otro. Por fortuna, calibre tiene
opciones potentes para controlarlo. Con la potencia viene la complejidad, pero si se toma el tiempo de aprender la
complejidad, encontrar que bien vale el esfuerzo.

Captulos y saltos de pgina

calibre tiene dos grupos de opciones para deteccin de captulos e insertar saltos de pgina. Esto puede ser algo
confuso en ocasiones, ya que calibre insertar un salto de pgina antes de los captulos detectados, adems de en las
ubicaciones detectadas en la opcin de salto de pgina. El motivo es que a menudo existen ubicaciones donde hay
que insertar un salto de pgina sin que haya cambio de captulo. Adems, existe la opcin de incluir los captulos
detectados en el ndice generado automticamente.
calibre usa XPath, un potente lenguaje que permite al usuario especificar lmites de captulo o saltos de pgina. XPath
puede ser un poco intimidante al principio, pero por suerte existe un Cursillo de XPath (pgina 143) en el Manual de
usuario. Recuerde que la deteccin de estructura acta sobre el XHTML intermedio producido durante el proceso de
conversin. Use la opcin de depuracin descrita en Introduccin (pgina 61) para deducir la configuracin adecuada
para un libro concreto. Tambin hay un botn para un asistente de XPath que le ayudar a generar expresiones XPath
sencillas.
De manera predeterminada, calibre utiliza la siguiente expresin para la deteccin de captulos:

//*[((name()='h1' or name()='h2') and re:test(., 'chapter|book|section|part\s+', 'i


')) or @class = 'chapter']

La expresin es algo compleja, porque intenta tener en cuenta distintos casos comunes simultneamente. Lo que
significa es que calibre supondr que los captulos empiezan en etiquetas <h1> o <h2> que contengan alguna de las
palabras chapter, book, section o part o que tengan el atributo class=chapter.

1.4. Conversin de libros 67


Manual de usuario de calibre, Versin 2.82.0

Una opcin relacionada es Marca de captulo, que le permite controlar lo que hace calibre cuando detecta un captulo.
De manera predeterminada, insertar un salto de pgina antes del captulo. Puede hacer que inserte una linea horizontal
adems o en lugar del salto de pgina. Tambin puede hacer que no haga nada.
La configuracin predeterminada para la deteccin de saltos de pgina es:

//*[name()='h1' or name()='h2']

lo que significa que, de manera predeterminada, calibre insertar saltos de pgina antes de cada etiqueta <h1> y <h2>.

Nota: Las expresiones predeterminadas pueden cambiar, dependiendo del formato de entrada de la conversin.

Miscelnea

Hay algunas opciones ms en esta seccin.


Insertar metadatos en una pgina al principio del libro Uno de los mejores detalles de calibre es que permite man-
tener metadatos muy completos en todos los libros, por ejemplo, una calificacin, etiquetas, comentarios, etc.
Esta opcin crear una pgina con todos estos metadatos y la insertar en el libro electrnico convertido, nor-
malmente despus de la portada. Pinse en ello como una forma de crear una sobrecubierta personalizada.
Eliminar la primera imagen Algunas veces, el documento de origen que est convirtiendo incluye la portada como
parte del libro, en lugar de como una portada separada. Si adems especifica una portada en calibre, el libro
convertido tendr dos portadas. Esta opcin simplemente eliminar la primera imagen del documento de origen,
asegurando que el libro convertido posea una sola portada, la especificada en calibre.

1.4.7 ndice

Cuando el documento de entrada tiene un ndice en los metadatos, calibre lo usar sin ms. Sin embargo, algunos
formatos antiguos no admiten ndices basados en metadatos y algunos documentos no lo contienen. En estos casos,
las opciones de esta seccin pueden ayudarle a generar un ndice automticamente en el libro convertido, basado en el
contenido del documento de entrada.

Nota: Puede ser un poco complicado obtener exactamente el resultado correcto con estas opciones. Si prefiere crear
o modificar el ndice a mano, convierta el libro al formato EPUB o AZW3 y marque la casilla en la parte inferior de la
seccin ndice del cuadro de dialogo de conversin que dice Ajustar manualmente el ndice al finalizar la conversin.
Esto ejecutar la herramienta de modificacin de ndice despus de la conversin. Esta herramienta le permite crear
entradas en el ndice sin ms que pulsar en la ubicacin del libro adonde quiere que apunte la entrada. Tambin puede
usar el Editor del ndice sin realizar ninguna conversin. Vaya a Preferencias > Barras de herramientas y aada
Modificar el ndice a la barra de herramientas principal. Despues seleccione el libro que quiera modificar y pulse en el
botn del Editor del ndice.

La primera opcin es Forzar el uso del ndice generado automticamente. Si activa esta opcin calibre reemplazar
cualquier ndice que encuentre en los metadatos del documento de entrada por uno generado automticamente.
De manera predeterminada, para la creacin automtica del ndice, calibre comienza aadiendo los captulos detec-
tados. Puede aprender cmo personalizar la deteccin de captulos en la seccin Deteccin de estructura (pgina 67)
ms arriba. Si no quiere incluir los captulos detectados en el ndice generado, marque la opcin No aadir captulos
detectados al ndice.
Si el nmero de captulos detectados es menor que Umbral de captulos, calibre aadir los enlaces que encuentre en
el documento de entrada al ndice. Esto suele funcionar porque muchos documentos incluyen un ndice con enlaces al
prinpicio. La opcin Nmero de enlaces para aadir al ndice puede usarse para controlar este comportamiento. Si se

68 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

pone a cero, no se aadir ningn enlace. Si es un nmero mayor que cero, se ser el nmero mximo de enlaces que
se aada.
calibre filtrar automticamente duplicados del ndice generado. Sin embargo, hay algunas otras entradas que puede
querer eliminar del ndice, lo que puede conseguir usando la opcin Filtro para el ndice. Se trata de una expresin
regular que se comparar con las entradas del ndice generado. Cualquier entrada que coincida se eliminar. Por
ejemplo, para eliminar todas las entradas con ttulo Next o Previous use:

Next|Previous

Las opciones ndice de nivel 1, 2, 3 le permiten crear un ndice sofisticado con varios niveles. Son expresiones XPath
que se comparan con el XHTML intermedio producido por el proceso de conversin. Vea Introduccin (pgina 61)
para saber cmo acceder a este XHTML. Lea tambin el Cursillo de XPath (pgina 143) para aprender como construir
expresiones XPath. Junto a cada opcin hay un botn que ejecuta un asistente para ayudarle a crear expresiones XPath
bsicas. El siguiente ejemplo sencillo muestra cmo usar estas opciones:
Supongamos que tiene un documento de entrada que da lugar a un XHTML como ste:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Sample document</title>
</head>
<body>
<h1>Chapter 1</h1>
...
<h2>Section 1.1</h2>
...
<h2>Section 1.2</h2>
...
<h1>Chapter 2</h1>
...
<h2>Section 2.1</h2>
...
</body>
</html>

Entonces configuramos las opciones como:

Level 1 TOC : //h:h1


Level 2 TOC : //h:h2

Esto dar lugar a un ndice de dos niveles generado automticamente que tendr esta estructura:

Chapter 1
Section 1.1
Section 1.2
Chapter 2
Section 2.1

Advertencia: No todos los formatos de salida admiten un ndice con varios niveles. Pruebe primer con el formato
de salida EPUB. Si funciona, intente con su formato de eleccin.

1.4. Conversin de libros 69


Manual de usuario de calibre, Versin 2.82.0

1.4.8 Usar imgenes como ttulos de captulo al convertir documentos de entrada


HTML

Supongamos que quiere utilizar una imagen como ttulo de captulo, pero tambin desea que calibre pueda generar
automticamente un ndice a partir de los ttulos de captulo. Use el siguiente cdigo HTML para lograrlo

<html>
<body>
<h2>Chapter 1</h2>
<p>chapter 1 text...</p>
<h2 title="Chapter 2"><img src="chapter2.jpg" /></h2>
<p>chapter 2 text...</p>
</body>
</html>

Configure Primer nivel del ndice como //h:h2. Entonces, para el captulo dos, calibre tomar el ttulo del valor del
atributo title de la etiqueta <h2>, dado que sta no posee texto.

1.4.9 Usar atributos de etiquetas para suministrar el texto de las entradas del ndice

Si los captulos tienen ttulos especialmente largos y quiere versiones ms cortas en el ndice, puede usar el atributo
title para ello, por ejemplo:

<html>
<body>
<h2 title="Chapter 1">Chapter 1: Some very long title</h2>
<p>chapter 1 text...</p>
<h2 title="Chapter 2">Chapter 2: Some other very long title</h2>
<p>chapter 2 text...</p>
</body>
</html>

Establezca la opcin ndice de nivel 1 en //h:h2/@title. Entonces calibre tomar el ttulo a partir del valor
del atributo title de las etiquetas <h2>, en lugar de usar el texto dentro de la etiqueta. Fjese en la terminacin
/@title de la expresin XPath, puede usar esta forma para indicarle a calibre que tome el texto del atributo que
desee.

1.4.10 Cmo se establecen y guardan las opciones de conversin

Existe dos lugares donde en calibre donde se pueden especificar las opciones de conversin. El primer es en :guila-
bel!Preferencias > Conversin. Estos valores son los predeterminados para las opciones de conversin. Cada vez que
intente convertir un nuevo libro, las opciones especificadas aqu sern las predeterminadas.
Tambin puede modificar la configuracin en el cuadro de dilogo de conversin para cada libro. Cuando convierte un
libro, calibre recuerda la configuracin que us para ese libro, de manera que si vuelve a convertirlo, la configuracin
almacenada tendr prioridad sobre la predeterminada en las Preferencias. Puede restablecer la configuracin individual
a la predeterminada usando el botn Restaurar valores predeterminados en el cuadro de dilogo de conversin indivi-
dual. Puede eliminar las configuraciones almacenadas para un grupo de libros seleccionando los libros y pulsando el
botn de modificar metadatos para mostrar el cuadro de dilogo de modificar metadatos en masa, en la parte inferior
hay una opcin para eliminar las configuraciones de conversin guardadas.
Al convertir en masa un conjunto de libros, las configuraciones se toman en el siguiente orden (el ltimo prevalece):
De la configuracin predeterminada en Preferencias > Conversin

70 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

A partir de las opciones de conversin guardadas para cada libro que se convierte (si existen). Esto puede
desactivarse con la opcin en la parte superior izquierda del cuadro de dilogo de conversin en masa.
De la configuracin establecida en el cuadro de dilogo Convertir en masa
Tenga en cuenta que las configuraciones finales para cada libro en una conversin en masa se guardarn y se volvern
a usar si el libro se convierte de nuevo. Puesto que en una conversin en masa se da mxima prioridad a las confi-
guraciones especificadas en el cuadro de dilogo, stas reemplazaran cualquier configuracin especfica de un libro.
Las excepciones son los metadatos y las configuraciones especficas de formatos de entrada. El cuadro de dilogo
de conversin en masa no tiene configuraciones para estas dos categoras, as que se tomarn de las configuraciones
especficas de cada libro (si existen) o de las predeterminadas.

Nota: Puede ver las opciones usadas realmente en la conversin pulsando sobre el icono rotatorio en la esquina
inferior derecha y luego pulsando dos veces sobre cada tarea de conversin. Esto mostrar un registro de conversin
que contiene las opciones usadas finalmente, en la parte superior.

1.4.11 Consejos para formatos especficos

Aqu encontrar consejos especficos para la conversin de formatos particulares. En el cuadro de dilogo de conver-
sin hay opciones especficas para cada formato, ya sea de entrada o salida, en su propia seccin, por ejemplo Entrada
TXT o Salida EPUB.

Convertir documentos de Microsoft Word

calibre puede convertir automticamente archivos .docx creados por Microsoft Word 2007 y versiones posteriores.
Slo tiene que aadir el archivo a calibre y pulsar en Convertir (asegrese de que est ejecutando la ltima versin de
calibre, ya que la compatibilidad con los archivos .docx es muy reciente).

Nota: Hay un archivo .docx de demostracin25 que muestra las capacidades del motor de conversin de calibre.
Descrguelo y convirtalo a EPUB o AZW3 para ver lo que calibre puede hacer.

calibre generar automticamente un ndice basado en las cabeceras si stas estn marcadas con los estilo de Word
Ttulo 1, Ttulo 2, etc. Abra el libro resultante en el visor de calibre y pulse el botn de ndice para ver el ndice
generado.

Archivos .doc antiguos

Para los archivos .doc ms antiguos, puede guardar el documento como HTML con Microsoft Word y luego convertir
el HTML resultante con calibre. Al guardar como HTML, asegrese de usar la opcin Guardar como pgina web,
filtrada, ya que esto producir un HTML ms limpio que se convertir mejor. Tenga en cuenta que Word produce un
HTML realmente intrincado, y convertirlo puede llevar tiempo, as que sea paciente. Si tiene disponible una versin
de Word ms reciente, tambin puede guardarlo directamente como docx.
Otra posibilidad es utilizar el paquete ofimtico libre OpenOffice. Abra el archivo .doc en OpenOffice y gurdelo en
el formato nativo de OpenOffice .odt. calibre puede convertir directamente archivos .odt.
25 https://calibre-ebook.com/downloads/demos/demo.docx

1.4. Conversin de libros 71


Manual de usuario de calibre, Versin 2.82.0

Convertir documentos TXT

Los documentos TXT no tienen una manera definida de especificar formato como cursiva, negrita, etc., o estructura
del documento com prrafos, cabeceras, secciones y dems, pero existen varias convenciones usadas normalmente.
De manera predeterminada calibre intenta detectar automticamente el formato y marcado correcto basndose en estas
convenciones.
La entrada TXT admite una serie de opciones para distinguir cmo se detectan los prrafos.
Estilo de prrafo: auto Analiza el archivo de texto e intenta determinar automticamente cmo estn de-
finidos los prrafos. Esta opcin generalmente funcionar bien, si no obtiene resultados satisfactorios
pruebe con las opciones manuales.
Estilo de prrafo: block Asume que los prrafos estn separados por una o ms lneas en blanco:

This is the first.

This is the
second paragraph.

Estilo de prrafo: single Asume que cada lnea es un prrafo:

This is the first.


This is the second.
This is the third.

Estilo de prrafo: print Asume que cada prrafo se inicia con una sangra (ya sea una tabulacin o ms
de un espacio). Los prrafos terminan cuando se alcanza la siguiente lnea que empieza con una
sangra:

This is the
first.
This is the second.

This is the
third.

Estilo de prrafo: unformatted Asume que el documento no posee formato, pero usa saltos de lnea for-
zados. La puntuacin y la mediana de la longitud de rengln se emplean para intentar restaurr los
prrafos.
Estilo de formato: auto Intenta detectar el tipo de marcado de formato que se emplea. Si no se encuentra
uno, se aplicar el formato heurstico.
Estilo de formato: heuristic Analiza el documento para detectar cabeceras de captulo comunes, cambios
de escena y palabras en cursiva, y aplica las etiquetas HTML adecuadas durante la conversin.
Estilo de formato: markdown calibre tambin admite pasar la entrada TXT por un preprocesador llama-
do markdown. Markdown permite aadir formato bsico a documentos TXT, como negritas, cursi-
vas, encadezados de secciones, tablas, listas, ndice, etc. La manera ms sencilla de obtener un ndice
a partir de un documento TXT es marcar las cabeceras de captulo con # y establecer la expresin
XPath para deteccin de captulos en //h:h1. Puede aprender ms sobre la sintaxis markdown en
daringfireball26 .
Estilo de formato: none No aplica ningn formato especial al texto, el documento se convierte a html sin
ningn otro cambio.
26 https://daringfireball.net/projects/markdown/syntax

72 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

Convertir documentos PDF

Los documentos PDF son uno de los peores orgenes para la conversin. Se trata de un formato con tamao de pgina
y posicin de texto fijos. Esto significa que es muy difcil determinar dnde acaba un prrafo y empieza el siguiente.
calibre intentar unir los prrafos usando un Factor de unin de lneas configurable. Esto es una escala usada para
determinar la longitud requerida para unir los renglones. Los valores vlidos son decimales entre 0 y 1. El valor
predeterminado es 0,45, algo por debajo de la longitud de rengln mediana. Reduzca el valor para incluir ms texto en
la unin, aumntelo para incluir menos. Puede ajustar este valor en las opciones de conversin bajo Entrada PDF
Adems, muchas veces tienen encabezados y pies de pgina como parte del documento, que aparece incluido con el
texto. Use el panel de bsqueda y sustitucin para eliminar encabezados y pies de pgina y solucionar este problema.
Si los encabezados y pies de pgina no se eliminan del texto pueden afectar a la unin de prrafos. Para aprender
cmo usar las opciones de eliminacin de encabezados y pies de pgina, vea Todo acerca de cmo utilizar expresiones
regulares en calibre (pgina 178).
Algunas limitaciones de la entrada de PDF son:
No soporta documentos complejos, con columnas mltiples o basados en imgenes.
Tampoco soporta la extraccin de imgenes vectoriales y tablas incluidos en el documento.
Algunos PDF usan glifos especiales para representar ll, ff, fi, etc. La conversin de stos puede o no
funcionar dependiendo de cmo se representant internamente en el PDF.
No soporta enlaces e ndices
Los PDF que utilizan fuentes incrustadas que no son unicode para representar caracteres no ingleses darn un
resultado incorrecto para dichos caracteres.
Algunos PDF estn hechos de fotografas de la pgina con el texto resultante del OCR (reconocimiento ptico
de caracteres) oculto tras la imagen. En tales casos calibre utiliza el texto del OCR, que puede ser muy diferente
de lo que se ve al visualizar el archivo PDF.
Los PDF usados para mostrar texto complejo, como idiomas que se leen de derecha a izquierda y expresiones
matemticas, no se convertirn correctamente.
Insisto, PDF es un formato muy, muy malo para usarlo como entrada. Si de todas formas tiene que usar PDF, est
preparado para obtener una salida entre decente e inservible, segn cmo sea el PDF de entrada.

Colecciones de libros de historietas

Una coleccin de libros de historietas es un archivo .cbc. Un archivo .cbc es un archivo zip que contiene otros archivos
CBZ o CBR. Adems el archivo .cbc debe contener un archivo de texto llamado comics.txt, codificado en UTF-
8. El archivo comics.txt debe contener un listado de los archivos de historieta dentro del archivo .cbc, de la forma
nombredearchivo:titulo, como se muestra a continuacin:

one.cbz:Chapter One
two.cbz:Chapter Two
three.cbz:Chapter Three

El archivo .cbc contendr:

comics.txt
one.cbz
two.cbz
three.cbz

calibre convertir automticamente este archivo .cbc en un libro electrnico con un ndice que apunta a cada entrada
en comicx.txt.

1.4. Conversin de libros 73


Manual de usuario de calibre, Versin 2.82.0

EPUB de demostracin de formato avanzado

Algunos formatos avanzados para archivos EPUB se muestran en este archivo de demostracin27 . Este archivo ha sido
creado a partir de HTML codificado manualmente con calibre, y est destinado a servir como plantilla para crear otros
EPUB.
El archivo HTML que se us par crearlo est disponible demo.zip28 . La configuracin usada para crear el EPUB a
partir del archivo ZIP es:

ebook-convert demo.zip .epub -vv --authors "Kovid Goyal" --language en --level1-toc '/
/*[@class="title"]' --disable-font-rescaling --page-breaks-before / --no-default-

epub-cover

Tenga en cuenta que debido a que este archivo explora el potencial del formato EPUB, la mayor parte del formato
avanzado no va a funcionar en lectores menos capacitados que el visor incorporado de calibre.

Convertir documentos ODT

calibre puede convertir directamente archivos ODT (OpenDocument Text). Es recomendable que use estilos para dar
formato al documento, manteniendo al mnimo el uso de formato directo. Al insertar imgenes en el documento debe
anclarlas al prrafo. Las imgenes ancladas a la pgina acabarn todas al inicio de la conversin.
Para permitir la deteccin automtica de captulos, debe marcarlos con los estilos incorporados llamados Encabezado
1, Encabezado 2, ..., Encabezado 6 (Encabezado 1 equivale a la etiqueta HTML <h1>, Encabezado 2 a
<h2>, etc.). Cuando convierta en calibre puede indicar qu estilo ha usado en el cuadro Detectar captulos en. Ejemplo:
Si ha marcado los captulos con estilo Encabezado 2, debe establecer Detectar captulos en como //h:h2.
Para obtener un ndice anidado con las secciones marcadas con Encabezado 2 y los captulos con Encabezado
3, tendr que introducir /h:h2|//h:h3. En el apartado ndice del cuadro de dilogo de conversin ponga
//h:h2 en ndice de nivel 1 y //h:h3 en ndice de nivel 2.
Las propiedades del documento ms comunes (ttulo, palabras clave, descripcin, creador) son reconocidas y calibre
utilizar la primera imagen (no demasiado pequea y con proporciones adecuadas) como imagen de portada.
Tambin hay modo avanzado de conversin de propiedades, que se activa estableciendo la propiedad personalizada
opf.metadata (de tipo S o no) en S en el documento ODT (Archivo > Propiedades > Propiedades persona-
lizadas). Si calibre detecta esta popiedad, se reconocen las siguientes propiedades personalizadas (opf.authors
sustituye al creador del documento):

opf.titlesort
opf.authors
opf.authorsort
opf.publisher
opf.pubdate
opf.isbn
opf.language
opf.series
opf.seriesindex

Adems de esto, puede especificar la imagen que se usar como portada dndole el nombre opf.cover (pulse con
el botn derecho, Imagen > Opciones > Nombre) en el ODT. Si no se encuentra una imagen con este nombre, se usa el
mtodo inteligente. Como la deteccin de portada puede dar lugar a doble portada en algunos formatos, el proceso
eliminar el prrafo (slo si su nico contenido es la imagen) del documento. Pero esto slo funciona con la imagen
con nombre!
27 https://calibre-ebook.com/downloads/demos/demo.epub
28 https://calibre-ebook.com/downloads/demos/demo.zip

74 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

Para deshabilitar la deteccin de portadas puede establecer la propiedad personalizada opf.nocover (de tipo s o
no) en Yes en el modo avanzado.

Convertir a PDF

La primera configuracin, y la ms importante, para determinar al convertir a PDF es el tamao de la pgina. De


manera predeterminada, calibre usa un tamao de pgina definido por el Perfil de salida actual. As, si el perfil de
salida es Kindle, calibre crear un PDF con un tamao de pgina adecuado para la pequea pantalla del Kindle. Sin
embargo, si visualiza este archivo PDF en una pantalla mayor, el tamao de letra parecer demasiado grande. Para
crear archivos PDF con tamao normal, use la opcin Forzar tamao de pgina en la seccin Salida PDF del
cuadro de dilogo de conversin.

Encabezados y pies de pgina

Puede insertar encabezados y pies de pgina arbitrarios en cada pgina del PDF especificando plantillas de encabezado
y pie de pgina. Las plantillas son fragmentos de cdigo HTML que aparecen en las ubicaciones de los encabezados
y pies de pgina. Por ejemplo, para mostrar los nmeros de pgina centrados en la parte inferior de cada pgina, en
verde, utilice la siguiente plantilla:

<p style="text-align:center; color:green">Page _PAGENUM_</p>

calibre sustituir automticamente _PAGENUM_ por el nmero de pgina actual. Puede incluso disponer diferente
contenido en las pginas pares e impares, por ejemplo, la siguiente plantilla de cabecera mostrar el ttulo en las
pginas impares y el autor en las pares:

<p style="text-align:right"><span class="even_page">_AUTHOR_</span><span class="odd_


page"><i>_TITLE_</i></span></p>

calibre sustituir automticamente _TITLE_ y _AUTHOR_ por el ttulo y el autor del documento que se est convir-
tiendo. Tambin puede mostrar texto en los bordes izquierdo y derecho y cambiar el tamao de letra, como se ve en
esta plantilla de cabecera:

<div style="font-size:x-small"><p style="float:left">_TITLE_</p><p style="float:right;


"><i>_AUTHOR_</i></p></div>

Esto dispondr el ttulo a la izquierda y el autor a la derecha, en una letra ms pequea que el texto principal.
Tambin puede usar la seccin actual en plantillas, como se muestra a continuacin:

<p style="text-align:right">_SECTION_</p>

_SECTION_ se sustituye por el nombre que tenga la seccin actual. El nombre se extrae del ndice de metadatos (la
gua PDF). Si el documento no tiene ndice, se sustituir por texto vaco. Si una pgina PDF tiene varias secciones, se
usar la primera de ellas. Igualmente, hay una variable llamada_TOP_LEVEL_SECTION_ que puede usarse para
obtener el nombre de la seccin actual de nivel superior.
Puede incluso utilizar cdigo javascript dentro de las plantillas de encabezado y pie de pgina, por ejemplo, la siguiente
plantilla har que los nmeros de pgina comiencen por4 en lugar de 1:

<p id="pagenum" style="text-align:center;"></p><script>document.getElementById(


"pagenum").innerHTML = "" + (_PAGENUM_ + 3)</script>

1.4. Conversin de libros 75


Manual de usuario de calibre, Versin 2.82.0

Nota: Si aade encabezados y pies de pgina, asegrese de que establece los mrgenes superior e inferior con una
dimensin suficiente, en la seccin Configuracin de pgina del cuadro de dilogo de conversin.

ndice imprimible

Tambin puede incluir un ndice imprimible al final del PDF que muestra los nmeros de pgina de cada seccin. Esto
es muy til si va a imprir el PDF en papel. Si va a usar el PDF en un dispositivo electrnico, el Esquema del PDF
cumple esta funcin y se genera de manera predeterminada.
Se puede personalizar el aspecto de los ndices generados usando la opcin CSS adicional en la seccin Apariencia
del cuadro de dilogo de conversin. El cdigo CSS usado de manera predeterminada se muestra debajo, cpielo y
modifquelo a su gusto.

.calibre-pdf-toc table { width: 100%% }

.calibre-pdf-toc table tr td:last-of-type { text-align: right }

.calibre-pdf-toc .level-0 {
font-size: larger;
}

.calibre-pdf-toc .level-1 td:first-of-type { padding-left: 1.4em }


.calibre-pdf-toc .level-2 td:first-of-type { padding-left: 2.8em }

1.5 Modificar libros electrnicos

calibre tiene un editor de libros electrnicos integrado que puede usarse para modificar libros en formatos EPUB y
AZW3 (Kindle). El editor muestra el cdigo HTML y CSS usado internamente en los archivos del libro, con una vista
previa que se actualiza segn se hacen cambios. Tambin contiene varias herramientas automatizadas para realizar
tareas comunes de limpieza y correccin.
Puede utilizar este editor pulsando con el botn derecho sobre cualquier libro en calibre y seleccionando Modificar
libro.

76 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

Contents

Flujo de trabajo bsico (pgina 78)


The File Browser (pgina 81)
Cambiar nombres de archivo (pgina 82)
Unir archivos (pgina 82)
Cambiar el orden de los archivos de texto (pgina 82)
Marcar la portada (pgina 83)
Borrar archivos (pgina 83)
Exportar archivos (pgina 83)
Aadir nuevas imgenes, tipos de letra, etc. o crear nuevos archivos en blanco. (pgina 83)
Sustituir archivos (pgina 83)
Vincular hojas de estilo con archivos HTML de manera eficiente (pgina 83)
Buscar y sustituir (pgina 84)
Bsquedas guardadas (pgina 84)
Modo de funcin (pgina 84)
Buscar omitiendo etiquetas HTML (pgina 84)
Herramientas automatizadas (pgina 85)
Modificar el ndice (pgina 85)
Comprobar el libro (pgina 86)

1.5. Modificar libros electrnicos 77


Manual de usuario de calibre, Versin 2.82.0

Aadir una portada (pgina 87)


Incrustar tipos de letra referenciados (pgina 87)
Reducir tipos de letra incrustados (pgina 87)
Corregir puntuacin (pgina 87)
Transformar propiedades CSS (pgina 87)
Eliminar reglas CSS sin usar (pgina 88)
Corregir HTML (pgina 88)
Embellecer archivos (pgina 88)
Insertar un ndice en lnea (pgina 88)
Establecer conceptos (pgina 89)
Filtrar informacin de estilo (pgina 89)
Hitos (pgina 89)
El panel de previsualizacin en vivo (pgina 91)
Dividir archivos HTML (pgina 92)
El panel de CSS en vivo (pgina 93)
Herramientas variadas (pgina 94)
La vista del ndice (pgina 94)
Comprobar la ortografa en el libro (pgina 94)
Insertar caracteres especiales (pgina 96)
La vista del inspector de cdigo (pgina 96)
Comprobar enlaces externos (pgina 97)
Descargar recursos externos (pgina 97)
Organizar archivos en carpetas por tipo (pgina 97)
Importar archivos en otros formatos de libro electrnico como EPUB (pgina 97)
La herramienta de Informes (pgina 107)
Caractersticas especiales del editor de cdigo (pgina 108)
Resaltado de sintaxis (pgina 108)
Ayuda sensible al contexto (pgina 108)
Completado automtico (pgina 108)
Fragmentos (pgina 109)

1.5.1 Flujo de trabajo bsico

Nota: Un recorrido en forma de video del editor de calibre est disponible aqu29 .

29 https://calibre-ebook.com/demo#tutorials

78 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

Al abrir un libro con la herramienta Modificar libro, aparecer una lista de archivos a la izquierda. stos son los
archivos HTML individuales, hojas de estilo, imgenes, etc. que constituyen el contenido del libro. Simplemente pulse
dos veces en un archivo para comenzar a modificarlo. Tenga en cuenta que si quiere hacer alg ms sofisticado que unos
pequeos retoques, debe conocer HTML (cursillo)30 y CSS (cursillo)31 .
Segn se hacen cambios en el cdigo HTML o CSS, stos se muestran en vivo en el panel de vista previa a la derecha.
Cuando est satisfecho con el aspecto de los cambios, pulse en el botn Guardar o use Archivo > Guardar para guardar
los cambios en el libro.
Una caracterstica til es Hitos. Antes de comenzar un conjunto ambicioso de modificaciones, puede crear un hito.
El hito preservar el estado actual del libro y, si en el futuro decide que no quiere conservar los cambios realizados,
podr volver a la situacin de cuando se cre el hito. Para crear un hito, use Editar > Crear hito. Tambin se crean
hitos automticamente cada vez que ejecute una herramienta automatizada como una bsqueda y sustitucin global.
Los hitos son una adicin al mecanismo normal de deshacer y rehacer al modificar archivos individuales, y son tiles
cuando los cambios afectan a varios archivos en el libro.
sta es la secuencia de trabajo bsica para modificar libros: Abrir un archivo, hacer los cambios, comprobar la vista
previa y guardar. En el resto de este manual hablaremos de las herramientas y caractersticas que le permitirn realizar
tareas especificas de manera eficiente.
30 http://html.net/tutorials/html/
31 http://html.net/tutorials/css/

1.5. Modificar libros electrnicos 79


Manual de usuario de calibre, Versin 2.82.0

80 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

1.5.2 The File Browser

1.5. Modificar libros electrnicos 81


Manual de usuario de calibre, Versin 2.82.0

The File Browser gives you an overview of the various files inside the book you are editing. The files are arranged by
category, with text (HTML) files at the top, followed by stylesheet (CSS) files, images and so on. Simply double click
on a file to start editing it. Editing is supported for HTML, CSS and image files. The order of text files is the same
order that they would be displayed in, if you were reading the book. All other files are arranged alphabetically.
Pasando el ratn por encima de una entrada, puede ver su tamao y, en la parte inferior de la pantalla, la ruta de acceso
completa al archivo dentro del libro. Tenga en cuenta que los archivos en el libro estn comprimidos, por lo que el
tamao final del libro no es la suma de los tamaos de los archivos individuales.
Muchos archivos tienen un significado especial en el libro. Normalmente stos tendrn un icono junto a su nombre,
indicando el significado especial. Por ejemplo, en la imagen de la izquierda puede ver que los archivos cover_image.jpg
y titlepage.xhtml tienen el icono de una portada, lo que indica que son la imagen de portada y la pgina de ttulo.
Igualmente, el archivo content.opf tiene un icono de metadatos, indicando que contiene los metadatos del libro, y el
archivo toc.ncx tiene un icono de T, indicando que se trata del ndice.
Puede realizar varias acciones sobre archivos individuales, pulsando con el botn derecho sobre ellos.

Cambiar nombres de archivo

Puede cambiar el nombre de un archivo concreto pulsando con el botn derecho sobre l y seleccionando Cambiar
nombre. Al cambiar el nombre de un archivo se actualizan automticamente todos los enlaces y referencias al archivo
en todo el libro. Todo lo que tiene que hacer es escribir un nuevo nombre y calibre se encarga del resto.
Tambin puede cambiar el nombre de muchos archivos a la vez. Esto es til si quiere que los nombres de los archivos
sigan un patrn sencillo. Por ejemplo, puede querer cambiar el nombre de todos los archivos HTML para que sean
Capitulo-1.html, Capitulo-2.html, etc. Seleccione los archivos a los que quiere cambiar el nombre manteniendo pulsada
la tecla Mays o Ctrl y pulsando con el ratn sobre los archivos. Luego pulse con el botn derecho y seleccione
Cambiar el nombre en masa. Introduzca un prefijo y el nmero por el que desea que empiece la numeracin automtica,
pulse Aceptar y ya est.
Por ltimo, puede cambiar la extensin de todos los archivos seleccionados. Seleccione varios archivos, como antes,
pulse con el botn derecho y elija Cambiar la extensin de los archivos seleccionados.

Unir archivos

A veces, puede querer unir dos archivos HTML o dos archivos CSS. En ciertas ocasiones puede ser til tener todo en
un solo archivo. Pero tenga cuidado, poner una gran cantidad de contenido en un solo archivo causar problemas de
rendimiento cuando visualice su libro en un lector de libros electrnicos normal.
Para combinar varios archivos en uno, seleccinelos manteniendo pulsada la tecla Ctrl y pulsando con el ratn sobre
ellos (asegrese de que slo selecciona archivos de un tipo, ya sean todos HTML o todos CSS). Luego pulse con el
botn derecho y seleccione Unir. Eso es todo, calibre combinar los archivos, migrando automticamente todos los
enlaces y referencias a los archivos originales. Tenga en cuenta que al combinar archivos se puede dar lugar a cambios
de estilo, pues los archivos individuales podan usar diferentes hojas de estilo.

Cambiar el orden de los archivos de texto

Puede modificar el orden en el que los archivos de texto (HTML) se mostrarn al leer el libro simplemente arrastrando
y soltndolos en el Explorador de archivos. Para los curiosos, esto se llama reordenar el lomo. Teng en cuenta que
debe soltar los elementos entre otros elementos, no encima de ellos, esto puede ser un poco delicado hasta que se
acostumbre.

82 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

Marcar la portada

Los libros electrnicos tienen normalmente una imagen de portada. Esta imagen se indica en Explorador de archivos
con un icono de un libro marrn junto al nombre de la imagen. Si quiere designar otra imagen como la portada, puede
hacerlo pulsando con el botn derecho sobre el archivo y eligiendo Marcar como imagen de portada.
Adems, los archivos EPUB tienen el concepto de pgina de ttulo. Una pgina de ttulo es un archivo HTML que
funciona como la portada o portadilla del libro. Puede marcar un archivo HTML como pgina de ttulo al modificar
archivos EPUB pulsando con el botn derecho. Asegrese de que el archivo marcado contiene slo la informacin de
portada. Si tiene otro contenido, como el primer captulo, dicho contenido se perder si se convierte el libro a algn
otro formato con calibre. Esto sucede porque, durante la conversin, calibre asume que la pgina de ttulo contiene
slo la portada y nada ms.

Borrar archivos

Puede borrar archivos pulsando con el botn derecho sobre ellos o seleccionndolos y pulsando la tecla Supr. Al
borrar un archivo se eliminan todas las referencias a ste en el archivo OPF, evitndole la molestia. Sin embargo, las
referencias en otros lugares no se eliminan. Puede usar la herramienta Comprobar libro para encontrarlas y eliminarlas
o sustituirlas.

Exportar archivos

Puede exportar un archivo contenido en el libro a algn otro lugar del equipo. Esto es til si quiere trabajar en el
archivo de manera aislada, con herramientas especializadas. Para ello, pulse con el botn derecho sobre el archivo y
elija Exportar
Una vez que haya terminado con el archivo exportado, puede volver a importarlo en el libro, pulsando con el botn
derecho sobre el archivo otra tez y eligiendo Sustituir por archivo..., lo que le permitir sustituir el archivo del libro
por el archivo previamente exportado.

Aadir nuevas imgenes, tipos de letra, etc. o crear nuevos archivos en blanco.

Puede aadir una nueva image, tipo de letra, hoja de estilo, etc. del equipo al libro, seleccionando Archivo > Nuevo
archivo. Esto le permite importar un archivo pulsando el botn :guilabel:Importar archivo de recursoso crear un
archivo HTML u hoja de estilo en blanco, introduciendo su nombre en el cuadro.
Tambin puede importar mltiples archivos en el libro de una vez usando Archivo > Importar archivos a libro.

Sustituir archivos

Puede sustituir archivos existentes en el libro pulsando con el botn derecho y eligiendo Sustituir. Esto actualizar
automticamente todos los enlaces y referencias en el caso de que el nuevo archivo tenga un nombre distinto del
original.

Vincular hojas de estilo con archivos HTML de manera eficiente

As a convenience, you can select multiple HTML files in the File Browser, right click and choose Link stylesheets to
have calibre automatically insert the <link> tags for those stylesheets into all the selected HTML files.

1.5. Modificar libros electrnicos 83


Manual de usuario de calibre, Versin 2.82.0

1.5.3 Buscar y sustituir

El editor de libros tiene una interfaz muy potente de bsqueda y sustitucin que le permite buscar y sustituir texto en
el archivo actual, en todos los archivos e incluso en una regin marcada del archivo actual. Puede buscar usando una
bsqueda normal o expresiones regulares. Para aprender cmo usar las expresiones regulares en bsquedas avanzadas,
vea Todo acerca de cmo utilizar expresiones regulares en calibre (pgina 178).

Inicie la bsqueda y sustitucin en el men Buscar > Buscar y sustituir (debe estar modificando un archivo HTML o
CSS).
Introduzca el texto que quiere encontrar en el cuadro Buscar y lo que quiere poner en su lugar en el cuadro Sustituir.
Puede pulsar los botones respectivos para buscar la siguiente coincidencia, sustituir la coincidencia actual y sustituir
todas las coincidencias.
Mediante los cuadros desplegables en la parte inferior puede hacer que la bsqueda se realice sobre el archivo actual,
todos los archivos de texto, todos los archivos de estilo o todos los archivos. Tambin puede elegir el modo de bsqueda
entre normal (texto) o expresin regular.
Puede contar todas las coincidencias de una expresin de bsqueda mediante de Buscar > Contar todo. El recuento se
ejecutar sobre los archivos o regiones seleccionados en en el men desplegable.
Tambin puede ir a una lnea especfica en el editor abierto actualmente por medio de Buscar > Ir a lnea.

Nota: Recuerde que para poder aprovechar toda la potencia de buscar y sustituir tendr que usar expresiones regulares.
Vase Todo acerca de cmo utilizar expresiones regulares en calibre (pgina 178).

Bsquedas guardadas

Puede guardar expresiones frecuentes de bsqueda y sustitucin para volver a usarlas en otras ocasiones. Para guardar
una bsqueda no tiene ms que pulsar con el botn derecho en el cuadro de Buscar y seleccionar Guardar bsqueda
actual.
Puede abrir el cuadro de dilogo de bsquedas guardadas mediante :guilabel: Buscar > Bsquedas guardadas. Esto
le mostrar una lista de expresiones de bsqueda y sustitucin que se pueden aplicar. Incluso puede seleccionar varias
entradas de la lista, manteniendo pulsada la tecla Ctrl mientras pulsa con el ratn, con el fin de ejecutar mltiples
expresiones de bsqueda y sustitucin en una sola operacin.

Modo de funcin

El modo de funcin le permite escribir funciones python tan potentes como desee, que se ejecutan en cada bsqueda o
sustitucin. Puede realizar prcticamente cualquier manipulacin de texto en el modo de funcin. Para ms informa-
cin vea Modo de funcin para buscar y sustituir en el editor (pgina 97).

Buscar omitiendo etiquetas HTML

Tambin hay una herramienta de bsqueda especfica para buscar texto, omitiendo las etiquetas HTML intermedias.
Por ejemplo, si el libro contiene el HTML Una <i>palabra</i> en cursiva, puede buscar una palabra y encontrar

84 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

el texto, aunque hay una etiqueta <i> en el medio. Esta herramienta se encuentra en el men Bsqueda > Buscar
omitiendo HTML.

1.5.4 Herramientas automatizadas

Modificar libro posee varias herramientas tiles para tareas usuales. A stas se accede a travs del men Herramientas.

Modificar el ndice

Hay una herramienta especfica para facilitar la edicin del ndice. Inciela con Herramientas > ndice > Modificar
ndice.

La herramienta Modificar ndice le muestra el ndice actual (si existe) a la izquierda. Pulse dos veces en cualquier
entrada para modificar su texto. Puede tambin reorganizar las entradas arrastrando y soltando o utilizando los botones
de la derecha.
Para los libros que no tienen un ndice, la herramienta le ofrece varias opciones para generar uno automticamente a
partir del texto. Puede generarlo a partir de los ttulos del documento, de los enlaces, de los archivos individuales, etc.
Puede modificar las entradas individuales pulsando sobre ellas y despus sobre el botn Cambiar la ubicacin a la
que apunta esta entrada. Esto abrir una vista previa del libro. Mueva el cursor al panel de vista del libro y pulse en
el lugar donde quiera que apunte la entrada. Una lnea gruesa verde mostrar la ubicacin. Pulse Aceptar cuando est
satisfecho con la ubicacin.

1.5. Modificar libros electrnicos 85


Manual de usuario de calibre, Versin 2.82.0

Comprobar el libro

La herramienta Comprobar libro busca posibles problemas en el libro que pueden hacer que no funcione como se
pretende en dispositivos de lectura reales. Actvela en Herramientas > Comprobar libro.

Cualquier problema que se encuentre se mostrar en una lista clara y fcil de usar. Al pulsar sobre cualquier entrada de
la lista se mostrar ms informacin sobre el error y se le dar la opcin de corregirlo automticamente si es posible.
Tambin puede pulsar dos veces sobre un error para abrir la ubicacin del error en un editor, para que pueda corregirlo
a mano.
Algunas de las comprobaciones realizadas son:
Cdigo HTML defectuoso. Todo cdigo HTML que no puede procesarse como XML correcto se muestra en un
informe. Al corregirlo se asegurar de que funciona como se pretende en todos los contextos. calibre puede tam-
bin corregir automticamente estos errores, pero la correccin automtica puede tener efectos inesperados en
ocasiones, as que sela con precaucin. Como siempre, se crear un hito antes de la correccin automtica, por

86 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

lo que es fcil deshacer los cambios. La correccin automtica funciona procesando el cdigo con el algoritmo
HTML5, que tolera muchos errores, y convirtindolo luego a XML correcto.
Estilos CSS defectuosos o desconocidos. Cualquier CSS que no sea vlido o que tenga propiedades no definidas
segn el estndar CSS 2.1 (ms algunas de CSS 3) aparece en el informe. Se comprueba el cdigo CSS de todas
las hojas de estilo, atributos de style en lnea y las etiquetas <style> en los archivos HTML.
Enlaces rotos. Se informa de los enlaces que apuntan a archivos en el libro que no existen.
Archivos sin referencias. Se muestran los archivos en el libro que no estn referenciados por ningn otro archivo
o no estn en el lomo.
Varios problemas comunes en archivos OPF tales como elementos del manifiesto o lomo duplicados, idrefs o
etiquetas meta de portadas rotos, secciones requeridas ausentes, etc.
Se ralizan distintas comprobaciones de compatibilidad relativas a problemas conocidos que pueden provocar un
mal funcionamiento del libro electrnico en dispositivos de lectura.

Aadir una portada

Puede aadir fcilmente una portada al libro por medio de Herramientas > Aadir portada. Esto le permite elegir una
imagen existente en el libro como la portada o importar una nueva imagen al libro y hace que sea la portada. Al modi-
ficar archivos EPUB, el contenedor HTML para la portada se genera de forma automtica. Si se encuentra una portada
existente en el libro, se sustituye. La herramienta tambin se encarga automticamente de marcar correctamente los
archivos de la portada como portadas en el OPF.

Incrustar tipos de letra referenciados

Se accede a travs de Herramientas > Incrustar tipos de letra referenciados, esta herramienta busca todos los tipos de
letra referenciados en el libro y si no estn ya incrustados, los busca en el equipo y los incrusta en el el libro, si los
encuentra. Haga el favor de asegurarse de que tiene los permisos necesarios para incrustar tipos de letra con licencia
comercial antes de hacerlo.

Reducir tipos de letra incrustados

Se accede a travs de Herramientas > Reducir tipos de letra, esta herramienta reduce todos los tipos de letra incrusta-
dos en el libro para que contengan slo los glifos necesarios para el texto realmente presente en el libro. Normalmente
esto reduce el tamao de los archivos de tipo de letra en alrededor del 50 %. Sin embargo, tenga en cuenta que una vez
reducidos los tipos de letra, si aade nuevo texto cuyos caracteres no estaban previamente presentes en el tipo de letra
reducido, el tipo de letra no funcionar para el nuevo texto. As que realice esta accin solamente en el ltimo paso del
trabajo.

Corregir puntuacin

Convertir guiones sencillos, puntos suspensivos, comillas, guiones mltiples, etc. en sus equivalentes tipogrficos
correctos. Tenga en cuenta que el algoritmo a veces puede generar resultados incorrectos, especialmente cuando se
encuentran comillas simples al inicio de las contracciones. Se accede a travs de :guilabel: Herramientas > Mejorar
puntuacin.

Transformar propiedades CSS

Crear reglas para transformar el estilo del libro. Por ejemplo, crear una regla que convierta todo el texto rojo a verde, o
duplicar el tamao de letra de todo el texto del libro, o poner en cursiva todo el texto en determinado tipo de letra, etc.

1.5. Modificar libros electrnicos 87


Manual de usuario de calibre, Versin 2.82.0

Crear las reglas es sencillo, las reglas tienen un formato de idioma natural, de esta manera:
Si la propiedad color es red cambiar a verde
Si la propiedad font-size es cualquier valor multiplicar el valor por 2
Se accede a travs de Herramientas > Transformar estilos.

Eliminar reglas CSS sin usar

Eliminar todas las reglas sin usar de las hojas de estilo y etiquetas <style>. Algunos libros creados a partir de plantillas
de produccin pueden contener un gran nmero de reglas CSS innecesarias que no afectan a ningn contenido del libro.
Estas reglas adicionales pueden ralentizar los lectores, que necesitan procesarlas todas. Accesible en Herramientas >
Eliminar CSS sin usar.

Corregir HTML

Esta herramienta no hace ms que convertir un HTML que no puede procesarse como XML a XML correcto. Es muy
frecuente que los libros electrnicos contengan XML defectuoso, por lo que que esta herramienta automatiza la correc-
cin de dicho cdigo. La herramienta funciona procesando el HTML con el algoritmo HTML5 (el algoritmo usado en
todos los navegadores modernos) y convirtiendo el resultado en XML. Tenga en cuenta que la correccin automtica
puede tener a veces resultados contraintuitivos. Si lo prefiere, puede usar la herramienta :guilable:Comprobar libro,
discutida anteriormente, para buscar y corregir manualmente problemas en el HTML. Se activa en Herramientas >
Corregir HTML.

Embellecer archivos

Esta herramienta se utiliza para dar formato automtico a todos los archivos HTML y CSS para que se vean atracti-
vos. El cdigo se sangra automticamente para que est bien alineado, se insertan lneas en blanco donde sea apropia-
do, etc. Tenga en cuenta que este embellecimiento tambin corrige automticamente cdigo HTML o CSS incorrecto.
Por lo tanto, si no quiere que se lleve a cabo ninguna correccin automtica, utilice primero la herramienta Comprobar
libro para corregir todos los problemas y slo entonces ejecute esta accin. Se accede a travs de Herramientas >
Embellecer todos los archivos.

Nota: En HTML, cualquier texto puede tener espacios significativos por medio de la directriz CSS white-space.
Por lo tanto, el embellecimiento puede alterar potencialmente cmo se muestra el HTML. Para evitarlo tanto como sea
posible, el algoritmo de embellecimiento slo modifica etiquetas de bloque que contienen otras etiquetas de bloque.
Por ejemplo, el texto dentro de una etiqueta <p> no ver sus espacios alterados. Pero una etiqueta <body> que contiene
slo etiquetas <p> y <div> ser embellecida. Esto significa que a veces un archivo concreto no se ver afectado por
el embellecimiento al no tener etiquetas de bloque que cumplan las condiciones. En tales casos puede probar otras
herramientas de embellecimiento que toman menos precauciones, como: HTML Tidy32 .

Insertar un ndice en lnea

Normalmente en los libros electrnicos, el ndice es independiente del texto principal y por lo general se accede a travs
de un botn o men de ndice en el dispositivo de lectura. Tambin puede hacer que calibre genere automticamente
un ndice que sea parte del texto del libro. ste se genera de acuerdo al ndice actualmente ya definido.
Si utiliza esta herramienta varias veces, en cada ocasin se sustituir el ndice creado previamente. La herramienta est
accesible en Herramientas > ndice > Insertar un ndice explcito.
32 https://infohound.net/tidy/

88 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

Establecer conceptos

Esta herramienta se usa para establecer conceptos en archivos EPUB. Los conceptos son simplemente enlaces en el
archivo OPF que identifican ciertas ubicaciones en el archivo con ciertos significados. Puede usarlos para identificar
el prefacio, dedicatoria, portada, ndice, etc. Elija el tipo de concepto que quiere especificar y luego seleccione la
ubicacin del libro adonde debe apuntar el enlace. A esta herramienta se accede a travs de Herramientas > Establecer
concepto.

Filtrar informacin de estilo

Esta herramienta puede usarse para eliminar determinadas propiedades de estilo CSS de todo el libro. Puede indicarle
qu propiedades quiere eliminar, por ejemplo: color, background-color, line-height, y las eliminar
de cualquier lugar donde apararezcan: hojas de estilo, etiquetas <style> y atributos style. Una vez eliminada la
informacin de estilo se mostrar un resumen de todos los cambios realizados, para que pueda ver qu ha cambiado
exactamente. Se puede acceder a la herramienta en Herramientas > Filtrar informacin de estilo.

1.5.5 Hitos

Los Hitos son una forma de marcar el estado actual del libro como especial. Despus hacer todos los cambios
que quiera en el libro, y si no est satisfecho con el resultado, puede volver al estado marcado. Los hitos se crean
automticamente cada vez que ejecuta alguna de las herramientas automticas descritas en la seccin anterior.
Puede crear un hito en Editar > Crear hito. Y volver a un hito anterior con Editar > Revertir a...
El uso de hitos es adicional al mecanismo normal de deshacer y rehacer al modificar archivos individuales. Los hitos
son especialmente tiles cuando los cambios se extienden por varios archivos del libro o cuando quiere poder revertir
un grupo de modificaciones de una vez.
Puede ver una lista de los hitos disponibles en Ver > Hitos. Puede comparar el estado actual del libro con un hito
especfico con la herramienta Comparar libros electrnicos (pgina 109), seleccionando el hito de inters y pulsando
el botn Comparar. El botn Revertir a restaura el libro al hito seleccionado, deshaciendo todos los cambios desde
que se cre el hito.

1.5. Modificar libros electrnicos 89


Manual de usuario de calibre, Versin 2.82.0

90 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

1.5.6 El panel de previsualizacin en vivo

1.5. Modificar libros electrnicos 91


Manual de usuario de calibre, Versin 2.82.0

La Vista previa de archivo le proporciona un resumen de los archivos contenidos. El panel de vista previa en vivo le
muestra en vivo los cambios realizados (con uno o dos segundos de retraso). Segn modifique los archivos HTML o
CSS, el panel de vista previa se actualizar automticamente para reflejar los cambios. Cuando mueva el cursor en el
editor, el panel de vista previa seguir su ubicacin, mostrando la posicin correspondiente en el libro. Al pulsar sobre
el panel de vista previa, el cursor en el editor se colocar sobre el elemento que haya pulsado. Si pulsa en un enlace
que apunte a otro archivo del libro se abrir automticamente ese archivo en el editor y el panel de vista previa.
Puede desactivar la sincronizacin automtica de la posicin y vista previa en vivo de los cambios, por medio de los
botones bajo el panel de vista previa. La actualizacin en vivo del panel de vista previa slo ocurre cuando no se est
escribiendo activamente en el editor, a fin de no crear una distraccin o reducir la velocidad mientras se espera a que
se genere la vista previa.
El panel de vista previa muestra el aspecto que tendr el texto al ser visualizado. No obstante, el panel de vista previa no
puede sustituir una comprbacin en un dispositivo de lectura real. Es, a la vez, ms y menos potente que un dispositivo
real. Admitir errores y cdigo incorrecto mucho ms fcilmente que la mayora de los dispositivos de lectura. Por
otro lado, no mostrar mrgenes o saltos de pgina, o tipos de letra incrustados que usen nombres de sustitucin. Use
el panel de vista previa mientras trabaja en el libro, pero cuando haya concluido revselo en un dispositive de lectura
real o en un emulador.

Nota: El panel de vista previa no admite fuentes incrustadas si el nombre de la fuente dentro del cdigo del archivo
no coincide con el nombre de la regla CSS @font-face. Puede utilizar la herramienta Comprobar libro para encontrar
y corregir rpidamente cualquier fuente con dichos problemas.

Dividir archivos HTML

Un uso quiz no evidente del panel de vista previa es dividir archivos HTML largos. Mientras visualiza el archivo que

quiere dividir, pulse el botn modo de divisin, bajo el panel de vista previa . Luego mueva el ratn al lugar
donde quiere dividir el archivo y pulse. Aparecer una lnea verde gruesa en el lugar exacto donde ocurrir la divisin
segn mueva el ratn. Una vez que haya encontrado la ubicacin que desee, pulse y se efectuar la divisin.
Al dividir automticamente el archivo se actualizarn todos los enlaces y referencias que apuntaban a la segunda
porcin del archivo y se abrir el archivo recin dividido en un editor.
Tambin puede dividir un nico archivo HTML en mltiples ubicaciones de manera automtica, pulsando con el botn
derecho en el editor y eligiendo Dividir en mltiples ubicaciones. Esto le permite dividir un archvo grande en todas
las etiquetas de encabezado, o todas las etiquetas que tienen una determinada clase, o alguna otra condicin.

92 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

1.5.7 El panel de CSS en vivo

El panel CSS en vivo muestra todas las reglas de estilo que se aplican a la etiqueta que est editando actualmente. Se
muestra el nombre de la etiqueta, junto con su nmero de lnea, seguido de una lista de reglas de estilo coincidentes.
Es una manera excelente de ver rpidamente qu reglas de estilo se aplican a cualquier etiqueta. La vista tambin
posee enlaces activos (en azul), que llevan directamente a la ubicacin donde se define el estilo, en caso de que desee
realizar algn cambio en las reglas de estilo. Se muestran las reglas de estilo que se aplican directamente a la etiqueta,
as como las reglas que se heredan de las etiquetas superiores.
El panel tambin muestra los estilos calculados finales para la etiqueta. Las propiedades en la lista que son reemplaza-
das por reglas de mayor prioridad se muestran tachadas.

1.5. Modificar libros electrnicos 93


Manual de usuario de calibre, Versin 2.82.0

Puede habilitar el panel de CSS en vivo en Ver > CSS en vivo.

1.5.8 Herramientas variadas

Existen algunas herramientas ms que pueden ser tiles mientras se modifica un libro.

La vista del ndice

La vista de ndice le muestra el ndice actual del libro. Pulsando dos veces sobre una entrada se abre la ubicacin a
la que apunta la entrada en un editor. Puede pulsar con el botn derecho para modificar el ndice, refrescar la vista o
expandir o contraer todos los elementos. Acceda a esta vista en Vista -> ndice.

Comprobar la ortografa en el libro

Puede ejecutar un corrector ortogrfico en Herramientas > Comprobar ortografa.

94 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

Las palabras se muestran con el nmero de veces que aparecen en el libro y el idioma al que pertenecen. La informacin
del idioma se extrae de los metadatos del libro y de los atributos lang en los archivos HTML. Esto permite que
la comprobacin de ortografa funcione incluso con libros que contienen texto en varios idiomas. Por ejemplo, en
el siguiente fragmento HTML la palabra color se comprobar como ingls americano, y colour como ingls
britnico.

<div lang="en_US">color <span lang="en_GB">colour</span></div>

Nota: Puede pulsar dos veces sobre una palabra para resaltar la siguiente aparicin de esta palabra en el editor. Esto
es til si desea modificar la palabra manualmente, o ver en qu contexto se encuentra.

Para cambiar una palabra, simplemente pulse dos veces en una de las alternativas sugeridas a la derecha, o escriba su
propia sugerencia correcta y pulse en el botn Cambiar la palabra seleccionada a. Esto sustituir todas las apariciones

1.5. Modificar libros electrnicos 95


Manual de usuario de calibre, Versin 2.82.0

de esta palabra en el libro. Tambin puede pulsar con el botn derecho sobre una palabra en la lista principal de palabras
para cambiar la palabra directamente desde el men emergente.
Puede hacer que la comprobacin de ortografa ignore una palabra durante la sesin actual pulsando en el botn Igno-
rar. Tambin puede aadir una palabra al diccionario de usuario pulsando en el botn Aadir palabra al diccionario.
La comprobacin de ortografa permite usar varos diccionarios de usuario, por lo que puede elegir a qu diccionario
quiere aadir la palabra.
Tambin puede hacer que el corrector ortogrfico muestre todas las palabras del libro, no slo las escritas incorrecta-
mente. Esto es til para ver qu palabras son las ms frecuentes en el libro y ejecutar una simple bsqueda y sustitucin
de ciertas palabras.

Nota: Si realiza cambios en el libro modificando los archivos mientras la herramienta de correccin ortogrfica est
abierta, debe pulsar en el botn Actualizar en la herramienta de correccin ortogrfica. Si no lo hace y contina
utilizando la herramienta de correccin ortogrfica, podra perder los cambios realizados en el editor.

Aadir nuevos diccionarios

El corrector ortogrfico viene con diccionarios predefinidos para los idiomas ingls y espaol. Puede instalar sus
propios diccionarios mediante Preferencias > Editor > Administrar diccionarios de ortografa. El corrector ortogrfico
puede utilizar diccionarios del programa LibreOffice (con el formato .oxt). Puede descargar estos diccionarios desde
el repositorio de extensiones de LibreOffice33 .

Insertar caracteres especiales

Puede insertar caracteres que son difciles de teclear mediante la herramienta :guilabel: Edicin > Insertar carcter
especial. Esto muestra todos los caracteres Unicode, simplemente pulse en el carcter que desea escribir. Si mantiene
pulsada la tecla Ctrl mientras pulsa, la ventana se cerrar despus de insertar el carcter seleccionado. Esta herramienta
se puede utilizar para insertar caracteres especiales en el texto principal o en cualquier otra rea de la interfaz de
usuario, como la herramienta de bsqueda y sustitucin.
Debido a que hay una gran cantidad de caracteres, puede definir sus propios caracteres Favoritos, que se mostrarn en
primer lugar. Pulse con el botn derecho sobre un carcter para marcarlo como favorito. Tambin puede pulsar con el
botn derecho sobre un carcter en los favoritos para quitarlo de la lista. Por ltimo, se puede volver modificar el orden
de los caracteres favoritos pulsando en el botn Reordenar los favoritos y luego arrastrando y soltando los caracteres
en favoritos.
Tambin puede escribir directamente caracteres especiales mediante el teclado. Para ello, escriba el cdigo Unicode
para el carcter (en hexadecimal) y luego presione Alt+X, lo que convertir el cdigo previamente escrito en el carcter
correspondiente. Por ejemplo, para escribir debera escribir ff y luego pulsar Alt+X. Para escribir un espacio
duro debera usar a0 y luego Alt+X, para escribir puntos suspensivos horizontales debera usar 2026 y Alt+X, y
as sucesivamente.
Por ltimo, puede escribir caracteres especiales mediante el uso de las entidades con nombr HTML. Por ejemplo, si
escribe &nbsp; sustituido por un espacio duro al introducir el punto y coma. La sustitucin ocurre slo cuando se
escribe el punto y coma.

La vista del inspector de cdigo

Esta vista muestra el cdigo HTML y CSS que se aplica al actual elemento de inters. Se abre pulsando con el botn
derecho sobre una ubicacin en el panel de vista previa y seleccionando Inspeccionar. Le permite ver el cdigo HTML
33 https://extensions.libreoffice.org/extension-center?getCategories=Dictionary&getCompatibility=any&sort_on=positive_ratings

96 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

para ese elemento y lo ms importante, los estilos CSS que se aplican al mismo. Incluso puede editar dinmicamente
los estilos y ver qu efecto tienen los cambios al instante. Tenga en cuenta que la edicin de los estilos en realidad no
realiza cambios en el contenido del libro, slo permite una experimentacin rpida. La capacidad de modificacin en
tiempo real del inspector est en desarrollo.

Comprobar enlaces externos

Puede usar esta herramienta para comprobar todos los enlaces del libro que apuntan a sitios externos. La herramienta
intentar visitar todos los enlaces y, si falla, informar de todos los enlaces rotos de manera que sea sencillo corregirlos.

Descargar recursos externos

Puede utilizar esta herramienta para descargar automticamente cualquier imagen, hoja de estilo, etc. del libro que
no est incluida en l (es decir, que tenga un URL referido a una ubicacin en Internet). La herramienta encontrar
todos estos recursos, los descargar automticamente, los aadir al libro y sustituir todas las referencias para que se
utilicen los archivos descargados.

Organizar archivos en carpetas por tipo

Often when editing EPUB files that you get from somewhere, you will find that the files inside the EPUB are arranged
haphazardly, in different sub-folders. This tool allows you to automatically move all files into sub-folders based on
their types. Access it via Tools->Arrange into folders. Note that this tool only changes how the files are arranged inside
the EPUB, it does not change how they are displayed in the File Browser.

Importar archivos en otros formatos de libro electrnico como EPUB

El editor incluye la habilidad de importar archivos en otros formatos de libro electrnico directamente como un nuevo
EPUB, sin requerir una conversin total. Esto es particularmente til para crear archivos EPUB a partir de archivos
HTML editados a mano. Puede hacer esto por medio de Archivo > Importar un archivo HTML o DOCX como un libro
nuevo.

Modo de funcin para buscar y sustituir en el editor

La herramienta de buscar y sustituir en el editor admite un modo de funcin. En este modo se pueden combinar
expresiones regulares (ver Todo acerca de cmo utilizar expresiones regulares en calibre (pgina 178)) con funciones
de complejidad arbitraria para realizar todo tipo de procesamiento de texto avanzado.
En el modo estndar de expresiones regulares para buscar y sustituir, se especifica una expresin regular para buscar
y una plantilla que se usa para sustituir todas las coincidencias. En el modo de funcin, en lugar de usar una sola
plantilla, se especifica una funcin arbitraria en el lenguaje de programacin python34 . Esto le permite hacer muchas
cosas que no son posibles slo con plantillas.
Algunas tcnicas para usar el modo de funcin y su sintaxis se describirn a travs de ejemplos, que le mostrarn cmo
crear funciones para realizar tareas cada vez ms complejas.
34 https://docs.python.org/2.7/

1.5. Modificar libros electrnicos 97


Manual de usuario de calibre, Versin 2.82.0

Corregir automticamente las maysculas y minsculas en las cabeceras del documento

Aqu aprovecharemos una de las funciones incorporadas del editor para poner la primera letra de cada palabra dentro
de una etiqueta de encabezado en mayscula:

Find expression: <([Hh][1-6])[^>]*>.+?</\1>

Como funcin, elija la funcin predefinida Capitalize (ignore tags). Esto cambiar los ttulos de la forma <h1>algn
TTULO</h1> a <h1>Algn ttulo</h1>. Funcionar incluso si hay otras etiquetas HTML en la etiqueta de
cabecera.

La primera funcin personalizada: mejorar guiones

La verdadera potencia del modo de funcin procede de la posibilidad de crear funciones propias para procesar el texto
de manera arbitraria. La herramienta Mejorar puntuacin del editor no modifica los guiones aislados, as que puede
usar esta funcin para sustituirlos por rayas.
Para crear una nueva funcin, simplemente pulse en el botn Crear o modificar y copie el cdigo python siguiente.

def replace(match, number, file_name, metadata, dictionaries, data, functions, *args,


**kwargs):

return match.group().replace('--', '--').replace('-', '--')

Toda funcin personalizada de buscar y sustituir debe tener un nombre nico y consister en una funcin python llamada
replace, que acepte todos los argumentos mostrados arriba. Por ahora no vamos a preocuparnos de los diferentes
argumentos de la funcin replace(). Fjese slo en el argumento match. Representa una coincidencia al realizar
una bsqueda y sustitucin. La documentacin completa se encuentra aqu35 . match.group() devuelve todo el
texto de la coincidencia y todo lo que hacemos es sustituir los guiones del texto por rayas, sustituyendo primero los
guiones dobles y luego los sencillos.
Use esta funcin con la expresin regular de bsqueda:

>[^<>]+<

Y sustituir todos los guiones por rayas, pero slo en texto real y no dentro de las definiciones de etiqueta HTML.

La potencia del modo de funcin: usar un diccionario para corregir palabras mal divididas por
guiones

A menudo, los libros electrnicos creados a partir de imgenes de libros impresos contienen palabras mal divididas
por guiones: palabras que estaban divididas al final de un rengln en la pgina impresa. Vamos a escribir una funcin
sencilla para encontrar y corregir automticamente estas palabras.

35 https://docs.python.org/2.7/library/re.html#match-objects

98 Captulo 1. Secciones
Manual de usuario de calibre, Versin 2.82.0

import regex
from calibre import replace_entities
from calibre import prepare_string_for_xml

def replace(match, number, file_name, metadata, dictionaries, data, functions, *args,


**kwargs):

def replace_word(wmatch):
# Try to remove the hyphen and replace the words if the resulting
# hyphen free word is recognized by the dictionary
without_hyphen = wmatch.group(1) + wmatch.group(2)
if dictionaries.recognized(without_hyphen):
return without_hyphen
return wmatch.group()

# Search for words split by a hyphen


text = replace_entities(match.group()[1:-1]) # Handle HTML entities like &amp;
corrected = regex.sub(r'(\w+)\s*-\s*(\w+)', replace_word, text, flags=regex.
VERSION1 | regex.UNICODE)

return '>%s<' % prepare_string_for_xml(corrected) # Put back required entities

Use esta funcin con la misma expresin de bsqueda anterior, es decir:

>[^<>]+<

Y corregir automticamente todas las palabras con guiones incorrectos en el el texto del libro. El truco principal es
utilizar uno de los argumentos adicionales de la funcin replace: dictionaries. Esto se refiere a los diccionarios
que el propio editor usa para comprobar la ortografa en el libro. Lo que hace esta funcin es buscar palabras unidas
por un guin, eliminar el guin y comprobar si el diccionario reconoce la palabra compuesta; si lo hace, las palabras
originales se sustituyen por la palabra sin guin.
Tenga en cuenta que una limitacin de esta tcnica es que slo funciona par libros monolinges, porque de manera
predeterminada dictionaries.recognized()usa el idioma principal del libro.

Enumerar secciones automticamente

Ahora veremos algo un poco diferente. Supongamos que un archivo HTML tiene muchas secciones, cada una con
una cabecera en una etiqueta <h2> de esta forma: <h2>Algn texto</h2>. Puede crear una funcin personali-
zada que numere automticamente estas cabeceras con nmeros consecutivos, para que tengan esta forma: <h2>1.
Algn texto</h2>.

def replace(match, number, file_name, metadata, dictionaries, data, functions, *args,


**kwargs):

section_number = '%d. ' % number


return match.group(1) + section_number + match.group(2)

# Ensure that when running over multiple files, the files are processed
# in the order in which they appear in the book
replace.file_order = 'spine'

selo con la expresin de bsqueda:

(?s)(<h2[^<>]*>)(.+?</h2>)

Coloque el cursor al principio del archivo y pulse Sustituir todo.

1.5. Modificar libros electrnicos 99


Manual de usuario de calibre, Versin 2.82.0

Esta funcin usa otro de los prcticos argumentos adicionales de replace(): el argumento number. Al usar Susti-
tuir todo, number se incrementa automticamente en cada coincidencia.
Otra caracterstica nueva es el uso de replace.file_order. Establecerlo en 'spine' significa que si la bs-
queda se ejecuta sobre mltiples archivos HTML, los archivos se procesarn en el orden en el que aparecen en el libro.
Ms detalles en Elegir un orden de archivos al ejecutar sobre mltiples archivos HTML (pgina 103).

Crear un ndice automticamente

Por ltimo, vamos a intentar algo un poco ms ambicioso. Supongamos que el libro tiene encabezados en etiquetas h1
y h2 del tipo <h1 id=n_id">Algn texto</h1>. Vamos a crear un ndice HTML generado automticamente
a partir de estos encabezados. Creamos la siguiente funcin:

from calibre import replace_entities


from calibre.ebooks.oeb.polish.toc import TOC, toc_to_html
from calibre.gui2.tweak_book import current_container
from calibre.ebooks.oeb.base import xml2str

def replace(match, number, file_name, metadata, dictionaries, data, functions, *args,


**kwargs):

if match is None:
# All matches found, output the resulting Table of Contents.
# The argument metadata is the metadata of the book being edited
if 'toc' in data:
toc = data['toc']
root = TOC()
for (file_name, tag_name, anchor, text) in toc:
parent = root.children[-1] if tag_name == 'h2' and root.children else
root

parent.add(text, file_name, anchor)


toc = toc_to_html(root, current_container(), 'toc.html', 'Table of
Contents for ' + metadata.title, metadata.language)

print (xml2str(toc))
else:
print ('No headings to build ToC from found')
else:
# Add an entry corresponding to this match to the Table of Contents
if 'toc' not in data:
# The entries are stored in the data object, which will persist
# for all invocations of this function during a 'Replace All' operation
data['toc'] = []
tag_name, anchor, text = match.group(1), replace_entities(match.group(2)),
replace_entities(match.group(3))

data['toc'].append((file_name, tag_name, anchor, text))


return match.group() # We don't want to make any actual changes, so return
the original matched text

# Ensure that we are called once after the last match is found so we can
# output the ToC
replace.call_after_last_match = True
# Ensure that when running over multiple files, this function is called,
# the files are processed in the order in which they appear in the book
replace.file_order = 'spine'

Y selo con la expresin de bsqueda:

100 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

<(h[12]) [^<>]* id=['"]([^'"]+)['"][^<>]*>([^<>]+)

Ejecutamos la bsqueda sobre Todos los archivos de texto y al final de la bsqueda se abrir una ventana con Salida
de depuracin de la funcin, que contendr el ndice HTML, listo par copiarlo en toc.html.
La funcin de arriba est muy comentada, as que debe ser fcil de seguir. La principal nueva caracterstica es el uso
de un argumento adicional de la funcin replace(), el objeto data. El objeto data es un diccionario python que
sobrevive entre sucesivas llamadas a la funcin replace() durante una nica operacin Sustituir todo.
Otra caracterstica nueva es el uso de call_after_last_match. Establecerlo en True en la funcin
replace() significa que el editor ejecutar replace() una vez adicional despus de haber encontrado todas
las coincidencias. En esa ejecucin adicional el objeto de coincidencia ser None.
Esto ha sido slo una demostracin de la potencia del modo de funcin, si realmente necesita generar un ndice a partir
de encabezados en un libro, es mejor usar la herramienta especfica para ndices en Herramientas > ndice.

La API para el modo de funcin

Todas las funciones del modo funcin deben ser funciones python con el nombre replace y con la siguiente firma:

def replace(match, number, file_name, metadata, dictionaries, data, functions, *args,


**kwargs):

return a_string

Cuando se realiza una bsqueda y sustitucin, la funcin replace() se ejecuta para cada coincidencia, debe de-
volver el texto de sustitucin para dicha coincidencia. Si no se ha de efectuar ninguna sustitucin, debe devolver
match.group(), que es el texto original. Los distintos argumentos de la funcin replace() se documentan a
continuacin.

El argumento match

The match argument represents the currently found match. It is a python Match object36 . Its most useful method is
group() which can be used to get the matched text corresponding to individual capture groups in the search regular
expression.

El argumento number

El argumento number es el nmero de la coincidencia actual. Al ejecutar Sustituir todo, cada coincidencia sucesiva
da lugar a una ejecucin de replace(), con un nmero que va en aumento. La primera coincidencia tiene el nmero
1.

El argumento file_name

ste es el nombre del archivo donde se encontr la coincidencia actual. Al buscar un texto marcado, file_name
est vaco. El argumento file_name est en forma cannica: una ruta de acceso relativa a la raz del libro, usando /
como separador.
36 https://docs.python.org/2.7/library/re.html#match-objects

1.5. Modificar libros electrnicos 101


Manual de usuario de calibre, Versin 2.82.0

El argumento metadata

Esto representa los metadatos del libro actual, como ttulo, autores, idioma, etc. Es un objeto de clase calibre.
ebooks.metadata.book.base.Metadata (pgina 171). Algunos atributos tiles son title, authors (una
lista de autores) y language (el cdigo del idioma).

El argumento dictionaries

This represents the collection of dictionaries used for spell checking the current book. Its most useful method is
dictionaries.recognized(word) which will return True if the passed in word is recognized by the dictio-
nary for the current books language.

El argumento data

Esto es un diccionario de python sencillo. Al ejecutar Sustituir todo, cada coincidencia sucesiva da lugar a una ejecu-
cin de replace() con el mismo data. Por lo tanto puede usarlo para almacenar datos arbitrarios entre ejecuciones
de replace() durante una operacin de Sustituir todo.

El argumento functions

El argumento functions proporciona acceso a todas las otras funciones definidas por el usuario. Esto es til para
la reutilizacin de cdigo. Puede definir funciones en un lugar y luego reutilizarlas en todas las otras funciones. Por
ejemplo, supongamos que crea una funcin con nombre My Function as:
def utility():
# do something

def replace(match, number, file_name, metadata, dictionaries, data, functions, *args,


**kwargs):

...

Luego, en otra funcin, puede acceder a la funcin utility() de esta manera:


def replace(match, number, file_name, metadata, dictionaries, data, functions, *args,
**kwargs):

utility = functions['My Function']['utility']


...

Tambin puede usar el objeto functions para guardar datos persistentes que sean accesibles a otras funciones. Por
ejemplo, puede tener una funcin que al ejecutarse con Sustituir todo recopile datos y otra funcin que los use cuando
se ejecuta a continuacin. Considere las dos funciones siguientes:
# Function One
persistent_data = {}

def replace(match, number, file_name, metadata, dictionaries, data, functions, *args,


**kwargs):

...
persistent_data['something'] = 'some data'

# Function Two
def replace(match, number, file_name, metadata, dictionaries, data, functions, *args,
**kwargs):

102 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

persistent_data = functions['Function One']['persistent_data']


...

Depurar las funciones propias

Puede depurar las funciones que cree con la funcin estndar de python print(). La salida de print() se mostrar
en una ventana emergente cuando la bsqueda y sustitucin se haya completado. Ya hemos visto anteriormente un
ejemplo del uso de print() para mostrar un ndice completo.

Elegir un orden de archivos al ejecutar sobre mltiples archivos HTML

Al ejecutar Sustituir todo sobre mltiples archivos HTML, el orden en que se procesan los archivos depende de qu
archivos estn abiertos para modificar. Puede hacer que la bsqueda procese los archivos en el orden en el que aparecen
estableciendo el attributo file_order de la funcin, de esta manera:

def replace(match, number, file_name, metadata, dictionaries, data, functions, *args,


**kwargs):

...

replace.file_order = 'spine'

file_order acepta dos valores, spine y spine-reverse, que hacen que el la bsqueda procese archivos
mltiples en el orden en que aparecen en el libro, hacia adelante o hacia atrs, respectivamente

Hacer que una funcin se ejecute una vez ms despus de la ltima coincidencia

A veces, como en el ejemplo anterior del ndice generado automticamente, es til que la funcin se ejecute una
vez adicional despus de haber encontrado la ltima coincidencia. Puede conseguir esto estableciendo el atributo
call_after_last_match en la funcin, de esta manera:

def replace(match, number, file_name, metadata, dictionaries, data, functions, *args,


**kwargs):

...

replace.call_after_last_match = True

Aadir la salida de una funcin al texto marcado

Al ejecutar una bsqueda y sustitucin sobre un texto marcado, a veces es til aadir algn texto al final del texto
marcado. Puede hacer esto establecindo el atributo append_final_output_to_marked en la funcin (tenga
en cuenta que tambin debe establecer call_after_last_match), de esta manera:

def replace(match, number, file_name, metadata, dictionaries, data, functions, *args,


**kwargs):

...
return 'some text to append'

replace.call_after_last_match = True
replace.append_final_output_to_marked = True

1.5. Modificar libros electrnicos 103


Manual de usuario de calibre, Versin 2.82.0

No mostrar el cuadro de dilogo de resultados al hacer bsquedas en texto marcado

Tambin puede evitar que se muestre el cuadro de dilogo de resultados (que puede ralentizar la aplicacin de una
bsqueda o sustitucin en mltiples bloques de texto) estableciendo el atributo suppress_result_dialog de la
funcin, de esta manera:
def replace(match, number, file_name, metadata, dictionaries, data, functions, *args,
**kwargs):

...

replace.suppress_result_dialog = True

More examples

More useful examples, contributed by calibre users, can be found in the calibre Editor forum37 .

Fragmentos

El editor de calibre admite fragmentos. Un fragmento es una porcin de texto que se reutiliza a menudo o contiene
gran cantidad de texto redundante. El editor le permite insertar un fragmento con unas pocas pulsaciones de tecla. Por
ejemplo, supongamos inserta a menudo etiquetas de enlace cuando modifica archivos HTML, entonces podr escribir
simplemente <a en el editor y pulsar Control+J. El editor lo expandir a:
<a href="filename"></a>

No slo eso, la palabra filename estar seleccionada, con el cursor sobre ella, para que pueda teclear el nombre
de archivo real usando la funcin Completado automtico (pgina 108) del editor. Y una vez que haya terminado de
escribir el nombre de archivo, pulse Control+J de nuevo y el cursor saltar a la posicin entre las etiquetas <a>
para que pueda teclear directamente el texto par el enlace.
El sistema de fragmentos del editor es muy sofisticado, hay algunos fragmentos predefinidos y puede crear otros
adecuados para su estilo de modificacin.
La siguiente discusin sobre los fragmentos predefinidos debera ayudar a ilustrar la potencia del sistema de fragmen-
tos.

Nota: Tambin puede usar fragmentos en los campos de entrada de texto del panel de Buscar y sustituir, pero los
marcadores de posicin (para pasar por ellos usando Control+J) no funcionarn.

Los fragmentos predefinidos

Los fragmentos predefinidos se definen a continuacin. Tenga en cuenta que puede reemplazarlos creando fragmentos
propios con el mismo texto de activacin.

Insertar texto de relleno [Lorem]

El primer fragmento predefinido y el ms simple, se usa para insertar texto de relleno en un documento. El texto de
relleno se toma de De finibus bonorum et malorum38 , una obra filosfica de Cicern (traducida al ingls). Para usarlo,
37 https://www.mobileread.com/forums/showthread.php?t=237181
38 https://es.wikipedia.org/wiki/De_finibus

104 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

simplemente teclee Lorem en un archivo HTML y pulse Control+J. Se sustituir por un par de prrafos de relleno.
La definicin de este fragmento es muy simple, el texto de activacin se define como Lorem y la plantilla no es ms
que el texto literal que se inserta. Es muy sencillo personalizarlo par usar el texto de relleno que prefiera.

Insertar una etiqueta HTML con cierre incorporado [<>]

Veamos un ejemplo sencillo del potente concepto de marcadores de lugar. Digamos que quiere insertar la etiqueta con
cierre incorporado <hr/>. nicamente teclee <> y pulse Control+J, el editor expandir el fragmento a:

<|/>

Aqu, el smbolo | representa la posicin actual del cursor. Ahora puede teclear hr y pulsar Control+J para mover
el cursor al final de la etiqueta. Este fragmento est definido como:

Trigger: <>
Template: <$1/>$2

Los marcadores de posicin son simplemente el smbolo de dlar ($) seguido de un nmero. Cuando el fragmento se
expande al pulsar Control+J el cursor se coloca en el primer marcador de posicin (el que tenga el nmero ms
bajo). Cuando pulsa Control+J otra vez el cursor se desplaza al siguiente marcador de posicin (el que tenga el
siguiente nmero ms bajo).

Insertar un enlace HTML [<a]

Todas las etiquetas de enlace HTML tienen una estructura comn. Tienen un atributo href y algn texto entre las
etiquetas de apertura y cierre. Vamos a ver otras caractersticas de los marcadores de posicin con un fragmento que
har ms eficiente teclear estas etiquetas. Para usar este fragmento, simplemente teclee <a y pulse Control+J. El
editor lo expandir a:

<a href="filename|"></a>

No slo eso, la palabra filename estar seleccionada, con el cursor sobre ella, para que pueda teclear el nombre
de archivo real usando la funcin Completado automtico (pgina 108) del editor. Y una vez que haya terminado de
escribir el nombre de archivo, pulse Control+J de nuevo y el cursor saltar a la posicin entre las etiquetas <a>
para que pueda teclear directamente el texto par el enlace. Cuando termine de escribir el texto, pulse Control+J
otra vez para saltar a la derecha de la etiqueta de cierre. Este fragmento est definido como:

Trigger: <a
Template: <a href="${1:filename}">${2*}</a>$3

There are a couple of new features here. First the $1 placeholder has become more complex. It now includes some
default text (the word filename). If a placeholder contains default text, the default text is substituted for the pla-
ceholder when the snippet is expanded. Also when you jump to a placeholder with default text using Control+J,
the default text is selected. In this way, you can use default text to act as a reminder to you to fill in important parts of
the template. You can specify default text for a placeholder by using the syntax: ${<number>:default text}.
La otra nueva caracterstica es que el segundo marcador de posicin tiene un asterisco al final (${2*}). Esto significa
que cualquier texto que estuviera seleccionado antes de expandir la plantilla sustituir al marcador. Para verlo en
accin, seleccione algn texto en el editor, pulse Control+J, teclee <a y pulse Control+J otra vez, la plantilla se
expandir a:

<a href="filename">whatever text you selected</a>

1.5. Modificar libros electrnicos 105


Manual de usuario de calibre, Versin 2.82.0

Insertar una etiqueta de imagen HTML [<i]

Esto es muy parecido a insertar un enlace HTML, como hemos visto anteriormente. Le permite introducir rpidamente
<img src="filename.alt="description/> y saltar entre los atributos src y alt:

Trigger: <i
Template: <img src="${1:filename}" alt="${2*:description}" />$3

Insertar una etiqueta HTML arbitraria [<<]

Esto le permito insertar una etiqueta completa HTML arbitraria (o incluir un texto previamente seleccionado en la
etiqueta). Para usarlo, teclee << y pulse Control+J. El editor lo expandir a:

<|></>

Teclee el nombre de la etiqueta, por ejemplo span, y pulse Control+J, el resultado ser:

<span>|</span>

Ver que la etiqueta de cierre se ha rellenado automticamente con span. Esto se obtiene gracias a otra caracterstica
de los marcadores de posicin, la duplicacin. Duplicacin significa simplemente que si especifica el mismo marca-
dor ms de una vez en una plantilla, la segunda posicin y las posteriores se rellenarn automticamente, al pulsar
Control+J, con lo que haya tecleado en la primera posicin. La definicin para este fragmento es:

Trigger: <<
Template: <$1>${2*}</$1>$3

Como puede ver, el primer marcador de posicin ($1) se ha especificado dos veces, la segunda en la etiqueta de cierre,
lo que sencillamente copiar lo que sea que haya introducido en la etiqueta de apertura.

Insertar una etiqueta HTML arbitraria con un atributo de clase [<c]

Esto es muy parecido al ejemplo anterior de insercin de una etiqueta arbitraria, excepto que supone que querr
especificar una clase para la etiqueta:

Trigger: <c
Template: <$1 class="${2:classname}">${3*}</$1>$4

Esto le permitir teclear primero el nombre de la etiqueta, pulsar Control+J, teclear el nombre de clase, pulsar
Control+J, teclear el contenido de la etiqueta y pulsar Control+J una ltima vez para saltar fuera de la etiqueta.
La etiqueta de cierre se rellenar automticamente.

Crear fragmentos propios

Lo mejor de los fragmentos es que puede crear los suyos propios que mejor se adapten a su estilo. Para crear fragmentos
propios vaya a Editar > Preferencias > Configuracin del editor > Administrar fragmentos en el editor. Esto mostrar
un cuadro de dilog fcil de usar que le ayudar a crear fragmentos. Pulse en el botn Aadir fragmento y ver un
cuadro de dilogo parecido a:

106 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

Primero asigne un nombre al fragmento, algo descriptivo, para ayudarle a identificar el fragmento en el futuro. Luego
especifique el activador. Un activador no es ms que el texto que debe teclear en el editor antes de pulsar Control+J
para expandir el fragmento.
Despus especifique la plantilla del fragmento. Es recomendable que empiece con alguno de los ejemplos anteriores
y lo modifique segn sus necesidades. Finalmente, especifique en qu tipos de archivo quiere que est disponible
el fragmento. De esta forma puede tener varios fragmentos con el mismo texto activador que funcionan de manera
distinta en distintos tipos de archivo.
El siguiente paso es probar el fragmento recin creado. Use el cuadro Prueba en la parte inferior. Teclee el texto
activador y pulse Control+J para expandir el fragmento y para saltar entre los marcadores de posicin.

La herramienta de Informes

El editor incluye una til herramienta de Informes (en Herramientas > Informes) que muestra resmenes de los archi-
vos, imgenes, enlaces, palabras, caracteres y estilos usados en el libro. Cada lnea del informe es activa. Al pulsar dos
veces en una lnea se salta al lugar del libro donde se usa o define (segn sea ms apropiado) el elemento. Por ejemplo,
en la vista de Enlaces, puede pulsar dos veces en la columna Origen para saltar al lugar donde se define el enlace y en
las entradas de la columna Destino para saltar a donde apunta el enlace.

1.5. Modificar libros electrnicos 107


Manual de usuario de calibre, Versin 2.82.0

1.5.9 Caractersticas especiales del editor de cdigo

El editor de HTML de calibre es muy potente. Tiene muchas funciones que facilitan la modificacin de HTML (y
CSS).

Resaltado de sintaxis

El editor HTML tiene un resaltado de sintaxis muy sofisticado. Sus caractersticas incluyen:
El texto dentro de etiquetas de negrita, cursiva o cabeceras se muestra en negrita o cursiva
Al mover el cursor por el HTML, se resaltan las etiquetas HTML emparejadas
El cdigo HTML no vlido se subraya en rojo
Los problemas de ortografa en el texto dentro de las etiquetas HTML y en atributos como title se resaltan. La
comprobacin de ortografa detecta el idioma especificado en el atributo lang de la etiqueta actual y el idioma
global del libro.
El cdigo CSS dentro de etiquetas <style> tambin se resalta
Los caracteres especiales que pueden ser indistinguibles, como espacios duros, diferentes tipos de guiones y
rayas, etc., se resaltan
Los enlaces a otros archivos en etiquetas <a>, <img> y <link> tienen el nombre de archivo resaltado. Si el
archivo al que apuntan no existe, el nombre se subraya en rojo.

Ayuda sensible al contexto

Puede pulsar con el botn derecho sobre cualquier nombre de etiqueta o de propiedad CSS para obtener ayuda para
esa etiqueta o propiedad.
Tambin puede mantener pulsada la tecla Ctrl y pulsar sobre cualquier nombre de archivo en una etiqueta de enlace
para abrir dicho archivo automticamente en el editor.

Completado automtico

Al modificar un libro, una de las tareas ms engorrosas es crear enlaces a otros archivos dentro del libro, a hojas de
estilo CSS o a imgenes. Debe encontrar el nombre y ubicacin relativa correctos para el archivo. El editor tiene una

108 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

funcin de completado automtico para hacerlo ms sencillo.


Segn teclea un nombr de archivo, el editor muestra sugerencias automticas. Use la tecla de tabulador para seleccionar
el nombre correcto. El editor tambin ofrece sugerencias para enlaces que apuntan a un punto de anclaje dentre de otro
archivo HTML. Despus de introducir el carcter #, el editor mostrar una lista de todos los puntos de anclaje en el
archivo de destino, con un pequeo fragmento de texto para ayudarle a elegir el punto de anclaje correcto.
Tenga en cuenta que, a diferencia de la mayora de sistemas de completado, el sistema usa una correspondencia de
subsecuencias. Esto significa que puede teclear slo dos o tres letras de cualquier parte del nombre de archivo para
completarlo. Por ejemplo, supongamos que quiere el nombre de archivo ../imagenes/flecha1.png, puede
teclear simplemente if1 y pulsar el tabulador para completar el nombre de archivo. Al buscar coincidencias, el
sistema de completado da prioridad a las letras que estn al inicio de una palabra, o justo detras de un separador de
ruta. Cuando se acostumbre a este sistema, notar que ahorra mucho tiempo y esfuerzo.

Fragmentos

El editor de calibre admite fragmentos. Un fragmento es una porcin de texto que se reutiliza a menudo o contiene
gran cantidad de texto redundante. El editor le permite insertarun fragmento con unas pocas pulsaciones de tecla. Los
fragmentos son muy potentes, con muchas funciones como marcadores de posicin por los que puede desplazarse,
duplicacin automtica de texto repetido, etc. Para ms informacin, vase Fragmentos (pgina 104).

1.6 Comparar libros electrnicos

calibre incluye una herramienta integrada de comparacin de libros electrnicos que se puede utilizar para ver lo que
ha cambiado en el interior de un libro electrnico despus de editarlo o convertirlo. Puede comparar libros en los
formatos EPUB y AZW3.
Para usarla, sea abrir el libro en la herramienta para Modificar libros electrnicos (pgina 76) y despus pulse en
Archivo > Comparar con otro libro o use el panel Detalles del libro (pgina 17). Si hace una conversion de EPUB a
EPUB, el archivo EPUB original se guardar como ORIGINAL_EPUB. Simplemente pulse con el botn derecho en
la entrada ORIGINAL_EPUB en el panel de los detalles del libro y seleccione Comparar con formato EPUB.
La herramienta de comparacin que se abre ser parecida a la siguiente imagen. Muestra las diferencias en el texto,
estilos e imgenes entre los libros elegidos.

1.6. Comparar libros electrnicos 109


Manual de usuario de calibre, Versin 2.82.0

1.6.1 Comprender la vista de comparacin

Como se puede ver en la imagen anterior, la vista de comparacin muestra las diferencias entre los dos libros uno junto
a otro. Slo se muestran las diferencias con unas pocas lneas de contexto a su alrededor. Esto hace que sea fcil ver
de un vistazo slo lo que ha cambiado dentro de un documento de gran tamao como un libro.
El texto aadido se muestra con un fondo verde, el texto eliminado con un fondo rojo y el texto modificado con un
fondo azul.
Los nmeros de lnea de todo el texto modificado se muestran en los lados, por lo que es fcil desplazarse a un cambio
determinado en el editor. Al abrir la herramienta de comparacin desde el editor, tambin puede pulsar dos veces en
una lnea en el panel de la derecha para ir a esa lnea en el editor de forma automtica.
Una tcnica til cuando se comparan libros es decirle a la herramienta de comparacin que embellezca los archivos de
texto y estilo antes de calcular las diferencias. Esto a menudo puede resultar en diferencias ms limpias y ms faciles
de seguir. Para ello, pulse en el botn :guilabel: Opciones en la parte inferior derecha y elija Embellecer los archivos

110 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

antes de compararlos. Tenga en cuenta que el embellecimiento a veces puede tener efectos no deseados, ya que puede
causar que un cdigo no vlido pase a ser vlido. Tambin puede cambiar el nmero de lneas de contexto que se
muestran en torno a las diferencias mediante el botn :guilabel: Opciones.
Puede buscar cualquier texto en las diferencias a travs de la barra de bsqueda en la parte inferior. Tendr que
especificar en qu panel buscar, el Izquierdo o el Derecho.

1.6.2 Iniciar la herramienta de comparacin

La herramienta de comparacin es ms til cuando se tienen dos versiones de un mismo libro y se desea ver lo que es
diferente entre ellos. Hay varias formas de iniciar la herramienta.

Comparar dos archivos de libro electrnico

Abra el primer archivo en la herramienta Modificar libros electrnicos (pgina 76). Ahora pulse en Archivo > Compa-
rar con otro libro y elija el segundo archivo (debe estar en el mismo formato que el primero). La vista de comparacin
se abrir con el archivo que se est modificando a la derecha y el otro a la izquierda.

Comparar el ORIGINAL_FMT con FMT

Cuando realiza una conversin en calibre desde un FMT a s mismo, el archivo original es guardado como ORI-
GINAL_FMT. Puede ver qu ha cambiado en la conversin, pulsando con el botn derecho en la entrada ORIGI-
NAL_FMT en el panel Detalles del libro (pgina 17) de la ventana principal de calibre y seleccionando Comparar con
FMT. La vista de comparacin se abrir con el ORIGINAL_FMT a la izquierda y el FMT a la derecha.

Comparar un hito con el estado actual del libro durante su modificacin

La herramienta Modificar libros electrnicos (pgina 76) posee una funcin muy til, llamada Hitos (pgina 89). Esto
le permite guardar el estado actual de un libro como un hito, al cual puede retornar si no le agrada los cambios que
ha hecho desde que se cre el hito. Estos hitos tambin se crean automticamente cuando realizan algunas acciones
automatizadas. Puede ver la lista de hitos en Ver > Hitos y despus puede usar el botn Comparar para comparar el
libro en el hito seleccionado con el estado actual. La herramienta de comparacin mostrar el hito a la izquierda y el
estado actual a la derecha.

1.7 Modificar metadatos de libros electrnicos

Contents

Editar metadatos de libros, de uno en uno (pgina 112)


Descargar metadatos (pgina 112)
Gestionar formatos de libros (pgina 112)
Todo sobre las portadas (pgina 112)
Modificar los metadatos de varios libros a la vez (pgina 113)
Buscar y sustituir (pgina 113)
Descargar metadatos en masa (pgina 114)

1.7. Modificar metadatos de libros electrnicos 111


Manual de usuario de calibre, Versin 2.82.0

Los libros electrnicos vienen en todas formas y tamaos, y en la mayora de las ocasiones sus metadatos (tales como
ttulo, autor, serie, editorial) son incompletos o incorrectos. La forma ms sencilla de cambiar los metadatos en calibre
es simplemente pulsar dos veces sobre una entrada y escribir el dato correcto. Para un modificacin ms sofisticada,
utilice las herramientas de edicin de metadatos discutidas a continuacin.

1.7.1 Editar metadatos de libros, de uno en uno

Pulse en el libro que desea editar y luego en el botn Modificar metadatos o pulse la tecla E. Se abrir un cuadro de
dilogo que le permite modificar toda clase de metadatos. Tiene diversas funciones para hacer la modificacin ms
rpida y eficiente. Una lista de los consejos ms prcticos:
Puede pulsar en el botn entre ttulo y autores para intercambiarlos automticamente.
Puede pulsar en botn junto al orden de autor para que calibre rellene el campo automticamente usando el valor
de orden almacenado para cada autor. Utilice el cuadro de dilogo Administrar autores para ver y cambiar los
valores de orden de autores. Este cuadro de dilogo se puede abrir manteniendo pulsado el botn junto al orden
de autor.
Puede pulsor en el botn junto a las etiquetas para usar el editor de etiquetas para gestionar las etiquetas asocia-
das con el libro.
El cuadro Ids puede usarse para introducir un ISBN (y muchos otros tipos de identificadores), tendr un fondo
rojo si introduce un ISBN no vlido. Ser verde para los ISBN vlidos.
El cuadro de orden de autor ser de color rojo si el valor del orden de autor difiere de lo que calibre piensa que
debera ser.

Descargar metadatos

La mejor caracterstica del cuadro de dilogo de modificacin de metadatos es la posibilidad de rellenar automtica-
mente muchos de os campos de metadatos al obtenerlos de diversos sitios de Internet. Actualmente, calibre utiliza
isbndb.com, Google Books, Amazon y Library Thing. La descarga de metadatos puede rellenar el ttulo, autor, serie,
etiquetas, calificacin, descripcin e ISBN.
Para utilizar la descarga, rellene los campos de ttulo y autor y pulse en el botn Descargar metadatos. calibre le
presentar una lista de los libros que mejor coinciden con el ttulo y el autor. Si rellena el campo ISBN primero, se le
dar prioridad con respecto respecto al ttulo y autor. Si no se encuentran coincidencias, trate de hacer su bsqueda un
poco menos especfica incluyendo slo algunas palabras clave en el ttulo y slo el apellido del autor.

Gestionar formatos de libros

En calibre, una sola entrada de libro puede tener varios formatos diferentes asociados. Por ejemplo, puede haber
obtenido las obras completas de Cervantes en formato EPUB y haberlas convertido ms tarde a MOBI para leerlas
en el Kindle. calibre gestiona automticamente mltiples formatos. En la seccin Formatos disponibles del cuadro de
dilogo Modificar metadatos, puede administrar estos formatos. Puede agregar un nuevo formato, borrar uno existente
y tambin solicitar a calibre que obtenga los metadatos y la portada del libro a partir de los metadatos contenidos en
alguno de los formatos.

Todo sobre las portadas

Puede hacer que calibre descargue las portadas de los libros, siempre y cuando el libro posea un ISBN conocido.
Alternativamente, puede especificar un archivo en el equipo para utilizarlo como portada. calibre puede incluso generar
una portada predeterminada con metadatos bsicos. Puede arrastrar y soltar imgenes sobre la portada para cambiarla
o hacer click con el botn derecho para copiar y pegar imgenes.

112 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

Adems, hay un botn para recortar automticamente los bordes de la portada, en el caso que la imagen de la portada
tenga un borde antiesttico.

1.7.2 Modificar los metadatos de varios libros a la vez

Primero seleccione los libros que desea editar manteniendo presionada la tecla Ctrl o Maysculas y pulsando sobre
ellos. Si selecciona ms de un libro, pulse en el botn Modificar metadatos lo que provocar que se abra un nuevo cua-
dro de dilogo de Modificar metadatos en masa. Usando este cuadro, puede establecer rpidamente el autor, editorial,
calificacin, etiquetas, series, etc de un conjunto de libros con el mismo dato. Esto es particularmente til si acaba de
importar es una serie de libros que tienen varios metadatos en comn. Esta funcin es muy potente, por ejemplo, tiene
una pestaa de buscar y sustituir que se puede utilizar para llevar a cabo operaciones masivas sobre los metadatos e
incluso copiar los metadatos de una columna a otra.
El cuadro de dilogo de modificar metadatos normal tambin posee los botones Siguiente y Anterior que puede utilizar
para modificar los metadatos de varios libros uno tras otro.

Buscar y sustituir

El cuadro de dilogo de edicin de metadatos en masa le permite realizar operaciones de bsqueda y sustitucin de
complejidad arbitrara en los libros seleccionados. De manera predeterminada usa una bsqueda y sustitucin simple
de texto, pero tambin admite expresiones regulares. Para ms informacin sobre las expresiones regulares, consulte
Todo acerca de cmo utilizar expresiones regulares en calibre (pgina 178).
As noted above, there are two search and replace modes: character match and regular expression. Character match
will look in the Search field you choose for the characters you type in the search for box and replace those characters
with what you type in the replace with box. Each occurance of the search characters in the field will be replaced. For
example, assume the field being searched contains a bad cat. If you search for a to be replaced with HELLO, then the
result will be HELLO bHELLOd cHELLOt.
Si el campo en el que est buscando es un campo mltiple como las etiquetas, entonces cada etiqueta se considera
separadamente. Por ejemplo, si las etiquetas contienen Horror, Miedo, la expresin de bsqueda r, no encontrar nada,
porque la expresin se aplicar primero a Horror y despus a Miedo.
Si desea que la bsqueda ignore las diferencias entre maysculas y minsculas, desactive la casilla Distinguir mays-
culas.
Puede hacer que calibre cambie las maysculas y minsculas de los resultados de las bsquedas (informacin des-
pus de sustituir) eligiendo una de las funciones del cuadro Aplicar funcin despus de sustituir. Las operaciones
disponibles son:
Minsculas cambia todos los caracteres del campo a minsculas
Maysculas cambia todos los caracteres del campo a maysculas
Maysculas iniciales cambia a mayscula la primera letra de cada palabra en el resultado.
En el cuadro Su prueba puede introducir texto para comprobar que el efecto de buscar y sustituir es el deseado. En
la mayora de los casos, los cuadros de prueba de libro sern suficiente, pero es posible que haya un caso que quiera
comprobar y que no se muestre en estos cuadres. Intruduzca dicho caso en Su prueba.
El modo de expresin regular tiene algunas diferencias con respecto al modo de caracteres, ms all, evidentemente,
del hecho de usar expresiones regulares. La primera es que las funciones se aplican a las partes del texto que coincidan
con el texto de bsqueda, no a todo el campo. La segunda es que las funciones se aplican al texto de sustitucin, no a
todo el campo.
La tercera y ms importante es que el texto de sustitucin puede hacer referencia a partes del texto de bsqueda
mediante el uso de retroreferencias. Una retroreferencia es \\n donde n es un entero que se refiere al grupo entre
parntesis nmero n en la expresin de bsqueda. Por ejemplo, dado el mismo ejemplo anterior, un gato malo, una

1.7. Modificar metadatos de libros electrnicos 113


Manual de usuario de calibre, Versin 2.82.0

expresin de bsqueda un (....) (....), y una expresin de reemplazo un \2 \1, el resultado ser un malo gato. Consulte
el Todo acerca de cmo utilizar expresiones regulares en calibre (pgina 178) para obtener ms informacin acerca de
las retroreferencias.
Una pauta til: supongamos que desea cambiar las maysculas y minsculas de un campo entero. La forma ms
sencilla de hacerlo es utilizar el modo de caracteres, pero supongamos que desea utilizar el modo de expresin regular.
La expresin de bsqueda debe ser (.*) la expresin de sustitucin debe ser \1, y tendr que seleccionar la funcin de
cambio de maysculas y minsculas que desee.
Finalmente, en el modo de expresin regular puede copiar los valores de un campo a otro. Simplemente ponga dife-
rentes campos en origen y destino. La copia puede sustituir el campo de destino, anteponerse al campo (aadirse al
principio), o aadirse al campo (aadirse al final). La casilla de verificacin usar coma hace que calibre aada (o
no) una coma entre el texto y el campo de destino en los modos de anteponer y aadir. Si el destino es mltiple (por
ejemplo, etiquetas), entonces no se puede desactivar esta casilla.
La bsqueda y sustitucin se realiza despus de aplicar todos los cambios en los metadatos de las otras pestaas. Esto
puede llevar a cierta confusin, ya que los cuadros de prueba mostrarn la informacin anterior a los otros cambios,
pero la operacin se aplicar despus de ellos. Si tiene alguna duda sobre lo que pueda suceder, no mezcle buscar y
sustituir con otros cambios.

Descargar metadatos en masa

Si quiere descargar los metadatos de varios libros a la vez, pulse en el botn Modificar metadatos y seleccione Des-
cargar metadatos. Puede elegir descargar slo metadatos, slo portadas o ambos.

1.8 Preguntas frecuentes

Contents

Conversin de formatos de libro electrnico (pgina 114)


Integracin con dispositivos (pgina 118)
Gestin de la biblioteca (pgina 126)
Miscelnea (pgina 130)

1.8.1 Conversin de formatos de libro electrnico

Contents

Qu formatos puede convertir calibre? (pgina 115)


Cules son los mejores formatos de origen para convertir?. (pgina 115)
He convertido un archivo PDF, pero el resultado tiene varios problemas. (pgina 115)
Cmo convierto un archivo que contiene caracteres exticos (acentuados, no latinos, comillas tipogrfi-
cas, etc.)? (pgina 115)
Qu ocurre con los ndices de los archivos MOBI? (pgina 116)

114 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

Las portadas de los archivos MOBI han dejado de aparecer en Kindle para PC, Kindle para Android, iPad,
etc. (pgina 116)
Cmo convierto una coleccin de archivos HTML en un orden especfico? (pgina 117)
El EPUB que he creado con calibre no es vlido (pgina 117)
Cmo puedo utilizar algunas de las funciones avanzadas de las herramientas de conversin? (pgina 118)

Qu formatos puede convertir calibre?

calibre soporta la conversin de muchos formatos de entrada a muchos formatos de salida. Puede convertir cualquier
formato de entrada de la siguiente lista a cualquier formato de salida.
Formatos de entrada: AZW, AZW3, AZW4, CBZ, CBR, CBC, CHM, DJVU, DOCX, EPUB, FB2, HTML, HTMLZ,
LIT, LRF, MOBI, ODT, PDF, PRC, PDB, PML, RB, RTF, SNB, TCR, TXT, TXTZ
Formatos de salida:

Nota: PRC es un formato genrico. calibre soporta archivos PRC con cabeceras TextRead y MOBIBook. PDB es
tambien un formato genrico. calibre soporta archivos PDB eReader, Plucker, PML y zTxt. El soporte DJVU es
solamente para convertir los archivos DJVU que contienen texto incrustado. stos estn normalmente generados por
por software OCR. Los libros MOBI pueden ser de dos tipos Mobi6 y KF8. calibre soporta ambos tipos. Los archivos
MOBI usualmente tienen extensiones .azw o .azw3. Los archivos DOCX de Microsoft Word 2007 en adelante estn
soportados.

Cules son los mejores formatos de origen para convertir?.

En orden de preferencia decreciente: LIT, MOBI, AZW, EPUB, AZW3, FB2, DOCX, HTML, PRC, ODT, RTF, PDB,
TXT, PDF

He convertido un archivo PDF, pero el resultado tiene varios problemas.

PDF es un formato terrible como origen de conversin. Puede ver una lista de los distintintos problemas que puede
encontrar al convertir archivos PDF en: Convertir documentos PDF (pgina 73).

Cmo convierto un archivo que contiene caracteres exticos (acentuados, no latinos, comillas
tipogrficas, etc.)?

Hay dos aspectos en este problema:


1. Conocer la codificacin del archivo de origen: calibre trata de adivinar qu codificacin de caracteres
utilizan los archivos de origen, pero a menudo esto es imposible, as que es necesario indicar la codificacin
que se debe usar. Se puede hacer a travs de la interfaz grfica en el campo Codificacin de entrada en
la seccin Apariencia > Texto del cuadro de dilogo de conversin. Las herramientas de lnea de rdenes
tienen una opcin ebook-convert-txt-input --input-encoding.
2. Al aadir archivos HTML a calibre, puede ser necesario indicarle la codificacin que usan. Para hacer-
lo, vaya a :gulabel:Preferencias > Complementos > Complementos de tipo de archivo y personalice
el complemento HTML2Zip, indicando la codificacin de los archivos HTML. A partir de ahora al aa-
dir archivos HTML se procesarn correctamente. Los archivos HTML de diferentes fuentes suelen tener
codificaciones diferentes, as que puede que sea necesario cambiar la configuracin varias veces. Una

1.8. Preguntas frecuentes 115


Manual de usuario de calibre, Versin 2.82.0

codificacin habitual para archivos de la web es cp1252, as que sugerimos que pruebe con sta prime-
ro. Al convertir archivos HTML, deje el campo de codificacin de entrada mencionado anteriormente en
blanco. Esto es porque el complemento HTML2Zip convierte automticamente los HTML aadidos a una
codificacin estndar (utf-8).

Qu ocurre con los ndices de los archivos MOBI?

Lo primero que hay que saber es que la mayora de los libros electronicos tienen dos ndices. El primero es un ndice
comn, tal como se hallara en un libro de papel. Este ndice forma parte del flujo principal del documento, y se puede
modificar su formato. A este ndice lo llamamos ndice de contenido.
Tambin est el ndice de metadatos. Un ndice de metadatos es un ndice que no forma parte del texto del libro y al
que se accede normalmente a travs de un botn especial en el lector. Por ejemplo, en el lectorde calibre puede usar el
botn ndice para ver este ndice. El aspecto de este ndice no est especificado por creador del libro, sino que depende
del programa de lectura.
En formato MOBI la situacin es algo confusa debido a que es el nico formato de los habituales para ebooks que
no tiene soporte decente para ndice de metadatos. Un libro MOBI simula la presencia de un ndice de metadatos
poniendo un ndice de contenido adicional al final del libro. Cuando selecciona Ir al ndice en un Kindle, ste va
dicho ndice de contenido adicional.
Puede parecer que el libro MOBI tiene dos ndices idnticos. Recuerde que uno es semnticamente el ndice de
contenido y el otro el de metadatos, a pesar de que ambos tengan las mismas entradas y el mismo aspecto. A uno se
puede acceder directamente desde el men del Kindle, al otro no.
Al convertir a MOBI, calibre detecta el indice de metadatos en el documento de entrada y genera un ndice al final
de archivo en el MOBI. Puede deshabilitar esta opcin en la configuracin de salida MOBI. Tambin puede indicar a
calibre que lo ponga al principio o al final del libro en la configuracin de salida MOBI. Recuerde que este ndice es
semnticamente un ndice de metadatos, en cualquier formato que no sea MOBI no puede ser parte del texto. El hecho
de que sea parte el texto en MOBI es accidental debido a las limitaciones de MOBI. Si quiere un ndice en un lugar
concreto del texto del documento, cree uno a mano. Recomendamos que deje las opciones predeterminadas tal cual
estn, es decir, con el ndice de metadatos al final del libro. Tambin tenga en cuenta que si deshabilita la generacin
del ndice al final del archivo, puede que el MOBI no funcione correctamente en un Kindle, ya que el Kindle usa el
ndice de metadatos para diversas funciones, incluyendo el paso rpido de pginas.
Si tiene un ndice editado a mano en el documento de entrada, puede usar las opciones de deteccin de ndice de
calibre para generar automticamente el ndice de metadatos a partir de aqul. Consulte la seccin de conversin del
Manual de usuario para obtener ms detalles sobre cmo usar estas opciones.
Por ltimo, recomendamos eliminar el ndice de contenido y mantener nicamente el ndice de metadatos en los
libros electrnicos. Los ndices de metadatos proporcionan a los lectores una experiencia de navegacin muy superior
(excepto en Kindle, donde son esencialmente iguales a que un ndice de contenido).

Nota: El formato AZW3, ms reciente, tiene soporte adecuado para el ndice de metadatos. Sin embargo, el firmware
de Kindle tiende a fallar si se deshabilita la generacin del ndice al final del archivo. Por lo tanto, se recomienda no
tocar el ndice generado. Si crea un archivo AZW3 con ndice de metadatos sin ndice generado al final del archivo,
algunas caractersticas del Kindle no funcionarn, como el paso rpido de pgina.

Las portadas de los archivos MOBI han dejado de aparecer en Kindle para PC, Kindle para Android,
iPad, etc.

Esto se debe a un error en el software de Amazon. Puede evitarlo yendo a Preferencias > Opciones de salida > Salida
MOBI y seleccionando la opcin Activar el intercambio del contenido del libro. Si est reconvirtiendo un libro

116 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

anteriormente convertido, tambin deber habilitar la opcin del dilogo de conversin para ese libro concreto (puesto
que las configuraciones de conversin libro a libro se guardan y tienen preferencia).
Tenga en cuenta esto har que el MOBI generado aparezca en Documentos personales en vez de en Libros en el
Kindle Fire, y la sincronizacin de Amazon no funcionar, pero las portadas s. Debe elegir qu funcionalidad es ms
importante. Recomendamos contactar con Amazon y pedirles que arreglen este error.
El problema en el software de Amazon es que al pasar un archivo MOBI a un Kindle, a menos que el archivo est
marcado como documento personal, Amazon supone que el libro ha sido comprado en Amazon e intenta descargar
la miniatura de portada de sus servidores. Cuando falla la descarga, se niega a usar la portada definida en el archivo
MOBI. Esto es probablemente una accin deliberada por parte de Amazn para tratar de obligar a los autores a vender
slo a travs de ellos. En otras palabras, los Kindles slo muestran las portadas de los libros marcados como documento
personal o descargados directamente de Amazon
Si enva un archivo MOBI a un Kindle de tinta electrnica con calibre usando una conexin USB, calibre evita este
problema enviando l mismo la miniatura de portada. Sin embargo, esta solucin slo es posible si se usa una conexin
USB y se enva el libro con calibre. Tenga en cuenta que si enva el libro mediante correo electrnico, Amazon marcar
el archivo MOBI automticamente como documento personal y la portada funcionar, pero el libro aparecer en los
documentos personales.

Cmo convierto una coleccin de archivos HTML en un orden especfico?

Para convertir una coleccin de archivos HTML en un orden concreto, debe crear un archivo de ndice. Esto es, otro
archivo HTML que contenga enlaces a los otros archivos en el orden desado. Dicho archivo tendr este aspecto:

<html>
<body>
<h1>Table of Contents</h1>
<p style="text-indent:0pt">
<a href="file1.html">First File</a><br/>
<a href="file2.html">Second File</a><br/>
.
.
.
</p>
</body>
</html>

Entonces, simplemente aada este archivo HTML a la interfaz grfica y use el botn de convertir para crear el libro.
Puede usar las opciones en la seccin ndice del cuadro de dilogo de conversin para controlar cmo se genera el
ndice.

Nota: De manera predeterminada, al aadir archivos HTML, calibre sigue enlaces en los archivos en el orden de
profundidad. Esto quiere decir que si el archivo A.html enlaza a B.html, C.html y D.html, pero B.html tambin enlaza
a D.html, entonces los archivos estarn en el orden A.html, B.html, D.html, C.html. Si por el contrario desea que
el orden sea A.html, B.html, C.html, D.html deber indicar a calibre que los aada en el orden de anchura. Puedes
hacerlo yendo a Preferencias > Complementos y personalizando el complemento HTML2ZIP.

El EPUB que he creado con calibre no es vlido

calibre no garantiza que los EPUB que produzca sean vlidos, la nica garanta es que si le proporciona XHTML 1.1
+ CSS 2.1 vlido, producir un EPUB vlido. calibre se esfuerza por asegurar que los EPUB que produce funcionen
realmente como deben en una amplia variedad de dispositivos, un objetivo incompatible con producir EPUB vlidos, y
que es mucho ms importante para la gran mayora de los usuarios. Si necesita una herramienta que siempre produzca

1.8. Preguntas frecuentes 117


Manual de usuario de calibre, Versin 2.82.0

EPUB vlidos, calibre no es la adecuada. Esto significa que si quiere enviar un EPUB producido por calibre a una
tienda online que use un comprobador de validez para EPUB, debe asegurarse de que el EPUB es vlido, cosa que
calibre no hace. En otras palabras, debe proporcionar a calibre documentos de entrada XHTML + CSS vlidos.

Cmo puedo utilizar algunas de las funciones avanzadas de las herramientas de conversin?

Puede obtener ayuda sobre cualquier caracterstica individual de los conversores pasando el ratn por encima de
ellos en la interfaz grfica o ejecutando ebook-convert prueba.html .epub -h en una terminal. Un buen
punto de partida es el siguiente archivo de demostracion, que muestra algunas de las caractersticas avanzadas html-
demo.zip39

1.8.2 Integracin con dispositivos

Contents

Cules dispositivos admite calibre? (pgina 118)


Cmo puedo ayudar para que mi dispositivo sea compatible con calibre? (pgina 119)
Mi dispositivo no es detectado por calibre (pgina 119)
Mi dispositivo no es estndar o es inusual. Qu puedo hacer para conectar con l? (pgina 119)
Cmo gestiona calibre las colecciones en un lector SONY? (pgina 120)
Puedo utilizar tanto calibre y el software de SONY para gestionar mi lector? (pgina 120)
Cmo puedo usar calibre con mi iPad/iPhone/iPod touch? (pgina 121)
Cmo utilizo calibre con mi telfono o tableta Android o mi Kindle Fire HD? (pgina 122)
Puedo acceder a mis libros en calibre utilizando el navegador de Internet de mi Kindle u otro dispositivo de
lectura? (pgina 123)
Me sale el mensaje de error Fallo al iniciar el servidor de contenidos: Port 8080 not free on 0.0.0.0.
(pgina 124)
No puedo enviar correos electrnicos usando calibre (pgina 124)
Mi dispositivo est montado en linux como slo lectura, por lo que calibre no puede conectarse con l.
(pgina 125)
Por qu calibre no es compatible con las colecciones de Kindle o los estantes de Nook? (pgina 125)
Me sale un error cuando trato de usar calibre con el Kobo Touch, Glo, etc. (pgina 125)
He enviado algunos libros al Kindle con calibre y no aparecen (pgina 126)

Cules dispositivos admite calibre?

calibre puede conectar directamente con todos los lectores de libros electrnicos, smartphones, tablets, etc. principales
(y la mayoria de los secundarios). Adems, usando la funcin Conectar a carpeta, puede usar cualqueir lector de
libros electrnicos que se muestre como disco USB. Puede incluso conectar dispositivos de Apple (a travs de iTunes),
usando la funcin Conectar a iTunes.
39 https://calibre-ebook.com/downloads/html-demo.zip

118 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

Cmo puedo ayudar para que mi dispositivo sea compatible con calibre?

Si el dispositivo aparece como un disco USB en el sistema operativo, es muy fcil aadir soporte en calibre. Slo
necesitamos que nos proporcione cierta informacin:
Lista completa de los formatos de libro electrnico compatibles con el dispositivo.
Hay algn directorio especial del dispositivo en el que se deban poner los archivos? El dispositivo detecta
archivos en subdirectorios?
Tambin necesitamos informacin sobre el dispositivo que calibre detectar automticamente. Primero, si el
dispositivo soporta tarjeta SD, insrtela. Despus conecte el dispositivo al equipo. En calibre vaya a Preferencias
> Miscelnea y pulse el botn de Depurar deteccin de dispositivos. Esto crear una salida de depuracin. Copie
la salida en un archivo y repita el proceso, esta vez con el dispositivo desconectado del ordenador.
Envenos ambas salidas mencinadas antes junto con el resto de la informacin y escribiremos un controlador
para su dispositivo.
Una vez que nos enve la informacin de salida para un determinado sistema operativo, el soporte para ese dispositivo
en ese sistema operativo aparecer en la siguiente versin de calibre. Para enviarnos dicha informacin, abra un informe
de fallo y envelo. Ver calibre bugs40 .

Mi dispositivo no es detectado por calibre

Siga estos pasos para encontrar el problema:


Asegrese de que est conectando un solo dispositivo cada vez al equipo. No use otro dispositivo soportado por
calibre, como un iPhone, iPad, etc. a la vez.
Si est conectando un dispositivo de Apple (iPad, iPod Touch, iPhone), utilice el mtodo Conect to iTunes en
las instrucciones de Introduccin en el hilo Calibre + Apple iDevices: Start here41 (en ingls).
Asegrese de que est ejecutando la ltima versin de calibre. Siempre se puede descargar la ltima versin en
el sitio de Internet de calibre42 . Puede averiguar qu versin de calibre est ejecutando actualmente examinando
la lnea inferior de la ventana principal de calibre.
Asegrese de que el sistema operativo ha detectado el dispositivo. Si es as, el dispositivo debera verse en el
Explorador de Windows (en Windows) o en Finder (en Mac OS X).
En calibre, vaya a Preferencias > Dispositivos ignorados y compruebe que el dispositivo no est siendo ignorado
Si todos los pasos anteriores fallan, vaya a Preferencias > Miscelnea, pulse en Depurar deteccin de disposi-
tivos con el dispositivo conectado y enve el archivo de salida al registro de errors de calibre43 .

Mi dispositivo no es estndar o es inusual. Qu puedo hacer para conectar con l?

Adems de la funcin Conectar a carpeta, bajo el botn Conectar y compartir, calibre proporciona un complemento
de dispositivo User Defined, que puede usarse para conectar con cualquier dispositivo USB que aparezca como
una unidad de disco en el sistema operativo. Nota: en Windows el dispositivo debe tener una letra de unidad para que
calibre pueda usarlo. Vea el dispositivo en Preferencias > Complementos > complementos de Interfaz de dispositivo
> User Defined USB driver y Preferencias > Miscelnea > Obtener informacin para configurar el dispositivo ma-
nualmente para ms informacin. Tenga en cuenta que si usa el complemento User Defined para un dispositivo
que normalmente es detectado por un complemento incorporado de calibre, debe desactivar este ltimo complemento
primero, para que pueda usare User Defined en su lugar.
40 https://calibre-ebook.com/bugs
41 https://www.mobileread.com/forums/showthread.php?t=118559
42 https://calibre-ebook.com/download
43 https://bugs.launchpad.net/calibre

1.8. Preguntas frecuentes 119


Manual de usuario de calibre, Versin 2.82.0

Cmo gestiona calibre las colecciones en un lector SONY?

Cuando calibre se conecta con el lector, recupera todas las colecciones de libros presentes en l. Las colecciones a las
que pertenece cada libro se muestran en la vista del dispositivo.
Cundo enve un libro al lector, calibre aadir el libro a las colecciones basndose en los metadatos del libro. De
manera predeterminada, las colecciones se crean a partir de etiquetas y series. Puede controlar qu metadatos se usan
en Preferencias > Complementos > Complementos de interfaz del dispositivo, personalizando el complemento de
interfaz de dispositivos SONY. Si elimina todos los valores, calibre no aadir el libro a ninguna coleccin.
La gestin de colecciones est controlada en gran medida por la opcin Gestin de metadatos en Preferencias >
Importar y exportar > Enviar libros a dispositivos. Si se establece en Manual (predeterminado), la gestin de las
colecciones se deja al usuario; calibre no eliminar las colecciones existentes en un libro en el lector cuando vuelva
a enviar el libro, pero aadir el libro a las colecciones si es necesario. Para asegurarse de que las colecciones de un
libro estn basadas en metadatos actuales de calibre, borre primero el libro del lector y luego vuelva a enviarlo. Puede
modificar las colecciones directamente en el dispositivo pulsando dos veces o con el botn derecho en la columna de
colecciones.
Si Gestin de metadatos esta en Solo al enviar, entonce calibre manejar las colecciones de forma ms agresiva.
Colecciones se construiran usando metadatos exclusivamente. Enviar un libro al lector corregir las colecciones para
ese libro dado por que sus colecciones coinciden exactamente con los metadatos del libro, aadiendo y borrando colec-
ciones cuando sea necesario. Editando colecciones en la vista de dispositivo no est permitido, porque las colecciones
sin metadatos se borraran automticamente.
Si Gestin de metadatos est establecida como Gestin automtica, calibre actualizar los metadatos y colecciones
cuando se conecte el dispositivo y cuando se enven libros. Cuando calibre detecta el lector y genera la lista de libros
en l, enviar los metadatos de la biblioteca al lector para todos los libros presentes en el lector que estn tambin en la
biblioteca (En el dispositivo es verdadero), aadiendo o eliminando libros de las colecciones como se indique
en la personalizacin de metadatos y dispositivo. Cuando se enva un libro, calibre corrige sus metadatos aadiendo o
eliminando colecciones. No se permite la modificacin manual de metadatos en la vista de dispositivo. Tenga en cuenta
que esta opcin especifica el envo de metadatos, no de libros. Los archivos de libro en el lector no se modifican.
En resumen, elija Gestin manual si quiere administrar colecciones por su cuenta. calibre nunca eliminar las colec-
ciones de un libro, pero se pueden eliminar manualmente en la vista de dispositivo. Elija Slo al enviar si quiere que
calibre gestione las colecciones al enviar libros, aadindolos o eliminndolos de las colecciones segn sea necesario.
Elija Gestin automtica si quiere que calibre mantenga las colecciones actualizadas cada vez que se conecte el lector.
Si usa varias instalaciones de calibre para administrar el lector, la opcin Gestin automtica puede no ser lo que desea.
Al conectar el lector a una biblioteca se modificarn todos los metadatos de acuerdo a lo que haya en dicha biblioteca.
Cuando se conecte a otra biblioteca se modificarn todos los metadatos segn esa otra biblioteca. Los metadatos de
los libros presentes en ambas bibliotecas sern modificados una y otra vez.

Puedo utilizar tanto calibre y el software de SONY para gestionar mi lector?

S, puede usar ambos, siempre y cuando no se utilicen al mismo tiempo. Es decir, se debe utilizar la siguiente secuencia:
Conectar el lector > Utilizar uno de los programas > Desconectar el lector. Conectar el lector de nuevo > Usar el otro
programa > Desconectar el lector.
La causa subyacente es que el Reader usa un nico archivo para almacenar la informacin meta, como las colec-
ciones, y tanto calibre como el software Sony modifican este archivo cuando escriben algo en el Reader. El archivo se
guardar cuando se desconecta el Reader (de forma segura), as que usar uno u otro es seguro siempre que haya una
desconexin entre ellos, pero si tiene tendencia a olvidarlo, lo ms sencillo es que se limite a uno de los dos programas
para las transferencias y exporte o importe al otro a travs del disco duro del equipo.
Si necesita restablecer los metadatos debido a problemas causados por usar ambos al mismo tiempo, elimine el archivo
media.xml del lector usando el explorador de archivos del equipo y ser creado de nuevo tras la desconexin.

120 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

En las ltimas versiones de sus lectores, SONY, con toda su sabidura, ha decidido intentar forzar el uso de su software.
Si lo instala, se ejecutar cada vez que conecte el lector. Si no quiere desinstalarlo por completo, hay un par de
trucos que puede usar. El ms simple consiste en cambiar el nombre del archivo ejecutable que lanza el programa
de biblioteca. Ms informacin en los foros <https://www.mobileread.com/forums/showthread.php?t=65809>_ (en
ingls).

Cmo puedo usar calibre con mi iPad/iPhone/iPod touch?

Por la red

La manera ms sencilla de transferir libros inalmbricamente a un dispositivo Apple (iPad, iPhone o iPod) es utilizar
la aplicacin iOS Calibre Companion44 . Esta aplicacin est mantenida por un desarrollador clave de calibre y permite
que calibre se conecte con el dispositivo Apple inalmbricamente, como si estuviera conectado por un cable USB.
Puede explorar los archivos del dispositivo en calibre y usar el botn Enviar al dispositivo para transferir archivos
inalmbricamente al dispositivo.
Otra manera sencilla de explorar la coleccin de calibre en un dispositivo Apple es utilizando el servidor de contenidos
de calibre, que pone la coleccin disponible sobre la red. Primero lleve a cabo los siguientes pasos en calibre
Establezca el formato de salida principal en EPUB (el formato de salida puede configurarse en Preferencias >
Interfaz > Comportamiento)
Establezca el perfil de salida en iPad (tambin funcionar para iPhone e iPod) en Preferencias > Conversin >
Opciones comunes > Configuracin de pgina
Convierta los libros que quiera leer en el dispositivo Apple al formato EPUB seleccionndolos y pulsando el
botn Convertir.
Encender el Servidor de Contenido haciendo click en el botn :guialaberl:Conectar y Compartir y dejar calibre
ejecutandose. Puede indicar a calibre que se inicie automticamente en :guialabel:Preferencias->Compartir
por la red.
Hay varias aplicaciones para dispositivos de Apple que pueden conectarse con el servidor de contenidos de calibre. Ya
se ha mencionado una antes: Calibre Companion. A continuacin se describe el uso de otras dos: iBooks y Stanza.

Uso de Stanza

Debera poder acceder a lo libros en el iPhone abriendo Stanza. Vaya a Obtener libros y luego pulse en la pestaa
Compartidos. Bajo Compartidos ver una entrada Books in calibre. Si no aparece, asegrese de el iPad o
iPhone est conectado a la red WiFi, y no a travs de 3G. Si el catlogo de calibre an no es detectado por Stanza,
puede aadirlo manualmente a Stanza. Pulse en la pestaa Compartidos, luego el botn Editar y Aadir origen
de libros para aadir un nuevo origen de libros. En la pantalla de aadir origen de libros introduzca el nombre que
quiera y en el campo URL introduzca lo siguiente:

http://192.168.1.2:8080/

Sustituya 192.168.1.2 por la direccin IP local del equipo en el que se est ejecutando calibre. Si ha cambiado el
puerto en el que se ejecuta el servidor de contenidos de calibre, tendr que cambiar 8080 por el nuevo puerto tambin.
La direccin IP local es la direccin IP que tiene asignado el equipo en la red local. Una bsqueda rpida en Google
le dir cmo encontrar la direccin IP local. Ahora pulse Guardar y estar listo.
Si experimenta errores de tiempo de respuesta explorando el catlogo de calibre en Stanza, intente incrementar el
valor del tiempo de respuesta en la configuracin de Stanza. Vaya a Info > Ajustes e incremente el valor de Tiempo
respuesta de descarga.
44 http://www.multipie.co.uk/calibre-companion/

1.8. Preguntas frecuentes 121


Manual de usuario de calibre, Versin 2.82.0

Con iBooks

Inicie el navegador Safari y teclee la direccin IP y el puerto del equipo que est ejecutando el servidor de calibre, de
este modo:

http://192.168.1.2:8080/

Sustituya 192.168.1.2 por la direccin IP local del eqipo en el que se est ejecutando calibre. Si ha cambiado el
puerto en el que se ejecuta el servidor de contenidos de calibre, tendr que cambiar 8080 por el nuevo puerto tambin.
La direccin IP local es la direccin IP que tiene asignado el equipo en la red local. Una bsqueda rpida en Google
le dir cmo encontrar la direccin IP local.
Ver una lista de libros en Safari, simplemente pulse en el enlace del libro que desee leer, Safari le pedir que lo abra
con iBooks.

Con el cable USB e iTunes

Utilice el mtodo Conect to iTunes en las instrucciones de Introduccin en el hilo Calibre + Apple iDevices: Start
here45 (en ingls).
Este mtodo slo funciona en Windows Vista o posterior, y OS X hasta 10.8. Linux no est soportado (iTunes no est
disponible en linux) y OS X posterior a 10.8 no est soportado, ya que Apple ha eliminado la posibilidad de usar
iTunes para administrar libros, sustituyndolo por iBooks

Cmo utilizo calibre con mi telfono o tableta Android o mi Kindle Fire HD?

Hay dos maneras de conectar un dispositivo Android con calibre. Usando un cable USB o inalmbricamente. El primer
paso es instalar una aplicacin de lectura de libros electrnicos en el dispositivo Android. Existen varias aplicaciones
gratuitas y de pagos: Algunos ejemplos (sin ningn orden particular): FBReader46 , Moon+47 , Mantano48 , Aldiko49 ,
Kindle50 .

Con un cable USB

Simplemente conecte el dispositivo al equipo con un cable USB. calibre detectar el dispositivo automticamente
y entonces podr transferirle libros pulsando el botn Enviar al dispositivo. calibre no ofrece soporte para cada
dispositivo android del mercado, as que si su dispositivo no se detecta automticamente, siga las instrucciones en
Cmo puedo ayudar para que mi dispositivo sea compatible con calibre? (pgina 119) para conseguir que calibre
soporte su dispositivo.

Nota: Con dispositivos Android ms recientes, puede que tenga que hacer algunas acrobacias para conseguir que
funcione la conexin, pues Google no tiene inters en facilitar la independencia de su nube. Primero, desbloquee la
pantalla antes de conectar el cable USB. Cuando conecte el cable USB aparecer una notificacin. Asegrese de que
dice algo como Transferir archivos de medios o MTP (Media Transfer mode). Si no es as, toque la notificacin
y cambie el modo a transferencia de medios (MTP). Finalmente, puede que reciba una notificacin en el dispositivo
45 https://www.mobileread.com/forums/showthread.php?t=118559
46 https://play.google.com/store/apps/details?id=org.geometerplus.zlibrary.ui.android&hl=en
47 https://play.google.com/store/apps/details?id=com.flyersoft.moonreader&hl=en
48 https://play.google.com/store/apps/details?id=com.mantano.reader.android.lite&hl=en
49 https://play.google.com/store/apps/details?id=com.aldiko.android&hl=en
50 https://play.google.com/store/apps/details?id=com.amazon.kindle&feature=related_apps

122 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

cada vez que calibre o el sistema operativo intente realmente conectar con el dispositivo, pidiendo permiso; si es as,
acepte.

Por la red

La manera ms sencilla de transferir libros inalmbricamente a un dispositivo Android es utilizar la aplicacin Android
Calibre Companion51 . Esta aplicacin est mantenida por un desarrollador clave de calibre y permite que calibre se
conecte con el dispositivo Android inalmbricamente, como si estuviera conectado por un cable USB. Puede explorar
los archivos del dispositivo en calibre y usar el botn Enviar al dispositivo para transferir archivos inalmbricamente
al dispositivo.
calibre tambin dispone de un servidor de Internet incorporado, el Servidor de contenidos. Puede navegar por la
coleccin de calibre en el dispositivo Android usando el servidor de contenidos de calibre, que pone la coleccin
accesible en Internet. Primero siga los siguientes pasos en calibre
Establezca el Formato de salida principal en calibre como EPUB para dispositivos Android normales o MOBI
para los Kindle. (El formato de salida puede establecerse en Preferencias > Interfaz > Comportamiento.)
Convierta los libros que desee leer en el dispositivo al formato EPUB/MOBI seleccionndolos y pulsando el
botn Convertir.
Active el servidor de contenidos en las preferencias de calibre y deje calibre funcionando.
Ahora, en el dispositivo Android, abra el navegador y vaya a
http://192.168.1.2:8080/
Sustituya 192.168.1.2 por la direccin IP local del equipo donde se ejecuta calibre. Si la red local admite el uso
de nombres de equipo, puede cambiar la direccin IP por el nombre de red del equipo. Si ha cambiado el puerto sobre
el que se ejecuta el servidor de contenidos de calibre, deber cambiar tambin 8080 por el nuevo puerto.
La direccin IP local es la direccin IP que el equipo tenga asignada en la red domstica. Una bsqueda rpida en
Google le ayudar a encontrar la direccin IP local. Ahora podr explorar la coleccin de libros y descargarlos desde
calibre al dispositivo para abrirlo con el programa de lectura de libros que tenga en el dispositivo Android.
Calibre Companion y muchas aplicaciones de lectura admiten la exploracin directa de la biblioteca de calibre. Por
ejemplo, en Aldiko, puede pulsar en Mis catlogos, luego en + para aadir un catlogo y despus darle al catlogo
un ttulo como calibre y proporcionar el URL mostrado arriba. Ahora podr explorar la biblioteca de calibre y
descargar directamente en el programa de lectura.

Puedo acceder a mis libros en calibre utilizando el navegador de Internet de mi Kindle u otro
dispositivo de lectura?

calibre tiene un Servidor de contenidos que exporta los libros en calibre como una pgina web. Puede activarlo en
Preferencias > Compartir por la red. Despus dirija el navegador del dispositivo al equipo que ejecuta el Servidor
de contenido y podr explorar la biblioteca. Por ejemplo, si el equipo que ejecuta el servidor tiene la direccin IP
63.45.128.5, en el navegador debe teclear:
http://63.45.128.5:8080

Algunos dispositivos, como el Kindle (1/2/DX), no permiten acceder al puerto 8080 (el puerto predeterminado donde
se ejecuta el servidorde contenidos). En ese caso, cambia el puerto en las Preferencias de calibre a 80. (En algunos
sistemas operativos, no se puede ejecutar el servidor en un puerto con un nmero menor de 1024 debido a las confi-
guraciones de seguridad. En ese caso, la solucin ms simple es ajustar el enrutador para redirigir las solicitudes del
puerto 80 al 8080).
51 http://www.multipie.co.uk/calibre-companion/

1.8. Preguntas frecuentes 123


Manual de usuario de calibre, Versin 2.82.0

Me sale el mensaje de error Fallo al iniciar el servidor de contenidos: Port 8080 not free on
0.0.0.0.

La causa ms probable es un programa antivirus. Pruebe a desactivarlo temporalmente y compruebe si esto lo solucio-
na.

No puedo enviar correos electrnicos usando calibre

Debido a la vasta cantidad de correo basura en el correo electrnico, enviar correos puede ser peliagudo, pues los
servidores de correo utilizan diferentes estrategias para bloquear correos electrnicos. El problema ms usual ocurre
si enva el correo directamente desde calibre, sin usar un servidor relay. Muchos servidores (por ejemplo Amazon)
bloquean el correo que no procede de un relay reconocido. La manera ms segura de configurar el envo de correo
electrnico en calibre es la siguiente:
Cree una cuenta de GMX gratuita en GMX52 .
Vaya a Preferencias > Compartir por correo electrnico en calibre, pulse el botn Usar GMX y complete la
informacin requerida.
Log into your GMX account on the website and enable SMTP sending (Settings->POP3 & IMAP->Send and
receive emails via external program)
calibre podr entonces usar GMX para enviar el correo electrnico.
Si est enviando a un Kindle, recuerde actualizar las preferencias de correo electrnico en su pgina de Amazon
Kindle para permitir correos enviados desde su direccin de correo GMX. Adems tenga en cuenta que Amazon
no permite la entrega por correo electrnico de archivos AZW3 o MOBI de nuevo estilo (KF8).
Incluso despus de hacer esto, puede tener problemas. Una fuente de problemas comn es que algunos programas de
antivirus mal diseados impiden que calibre pueda abrir una conexin para enviar corro electrnico. Pruebe a aadir
una exclusin para calibre en el programa antivirus.

Nota: Microsoft, Google o Gmx pueden desactivar una cuenta si se usa para enviar gran cantidad de correos. Por
lo tanto, al usar estos servicios para enviar correos calibre se limita a enviar un libro cada cinco minutos. Si no tiene
inconveniente en arriesgarse a que su cuenta sea bloqueada, puede reducir este intervalo en Preferencias > Ajustes en
calibre.

Nota: Recientemente Google ha estropeado el soporte de envo de correos electrnicos (SMTP) para forzar el uso de
la interfaz web y as poder mostrar ms publicidad. Aseguran que el protocolo SMTP es inseguro, lo cual es incorrecto
y no es ms que una excusa. Si tiene problemas para enviar con gmail deber permitir el acceso de aplicaciones menos
seguras, como se describe aqu53 .

Nota: Si le preocupa otorgar a calibre acceso a su su cuenta de correo electrnico, cree una nueva cuenta gratuita con
GMX o Hotmail y sela nicamente para calibre.

52 https://www.gmx.com
53 https://support.google.com/accounts/answer/6010255?hl=es

124 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

Mi dispositivo est montado en linux como slo lectura, por lo que calibre no puede conectarse con
l.

Los ncleos de Linux montan los dispositivos en modo slo lectura cuando sus sistemas de archivos tienen errores.
Puede reparar el sistema de archivos con:

sudo fsck.vfat -y /dev/sdc

Sustituya /dev/sdc por la ruta de acceso al nodo del dispositivo. Puede encontrar el nodo, que siempre estar bajo /dev,
examinando la informacin de salida de:

mount

Por qu calibre no es compatible con las colecciones de Kindle o los estantes de Nook?

Ni el Kindle ni el Nook proporcionan ninguna manera de manipular colecciones mediante una conexin USB. Si
realmente quiere usar colecciones, le recomendara que vendiera su Kindle o Nook y se hiciera de un Kobo. Slo
Kobo parece entender que la vida es demasiado corta para introducir las colecciones una a una en la pantalla del
dispositivo :)
Tenga en cuenta que caso del Kindle hay una manera de gestionar colecciones a travs de USB, pero requiere reiniciar
el Kindle cada vez que se desconecta del equipo para que se reconozcan los cambios en las colecciones. Mientras
sea as, es improvable que ningn desarrollador de calibre se sienta motivado para ofrecer soporte. Hay, no obstante,
un complemento de calibre que le permite crear colecciones en el Kindle a partir de los metadatos de calibre. Est
disponible aqu54 .

Nota: Amazon ha eliminado completamente la posibilidad de manipular colecciones en sus modelos ms recientes,
como el Kindle Touch y el Kindle Fire, haciendo que incluso el complemento anterior sea totalmente intil, a menos
que modifique su Kindle e instale un firmware personalizado.

Me sale un error cuando trato de usar calibre con el Kobo Touch, Glo, etc.

El Kobo tiene un firmware muy defectuoso. Se sabe que la conexin puede fallar aleatoriamente. Algunas combina-
ciones de placa madre y puertos, cables o concentradores USB pueden aumentar esta tendencia a los fallos. Si observa
un error al conectar el dispositivo con calibre, pruebe las siguientes sugerencias, cada una de las cuales ha resuelto el
problema para algunos usuarios de calibre.
Conecte el Kobo directamente al equipo, sin utilizar un hub USB.
Pruebe un cable USB diferente y un puerto USB diferente en el equipo
Intente con una nueva computadora, en particular Kobo no funciona bien con algunas computadoras con sistema
operativo Windows XP. Si es as, intntelo en una pc con una versin ms reciente de Windows.
Cierre la sesin en el Kobo e inciela de nuevo, esto hace que se reconstruya la base de datos, eliminando los
errores de base de datos corrupta.
Intente actualizar el firmware del Kobo Touch a la ltima versin
Intente reiniciar el Kobo (algunas veces esta accin resuelve el problema por un tiempo, pero luego vuelve a
aparecer, y en tal caso debe reiniciarlo una y otra vez)
Pruebe a copiar uno o dos libros al Kobo de cada vez y no mantenga colecciones muy grandes en l.
54 https://www.mobileread.com/forums/showthread.php?t=244202

1.8. Preguntas frecuentes 125


Manual de usuario de calibre, Versin 2.82.0

He enviado algunos libros al Kindle con calibre y no aparecen

Los libros enviados al Kindle slo aparecen en el Kindle una vez que ste los ha indexado. Esto puede llevar algn
tiempo. Si el libro sigue sin aparecer al cabo de unos minutos, es posible que el indexador del Kindle hay fallado. A
veces un libro particular puede hacer que el indexador falle. Por desgracia, Amazon no proporciona ninguna forma
de saber qu libro causa el fallo. El nico recurse es reiniciar el Kindle o borrar todos los archivos de su memoria
con el explorador de Windows (o el administrador de archivos que utilice) y volver a enviar los libros, uno a uno,
hasta descubrir el libro problemtico. Una vez localizado el libro, brrelo del Kindle, haga una conversin de MOBI a
MOBI o de MOBI a AZW3 en calibre y envelo de nuevo. Muy probablemente esto solucione el problema.

1.8.3 Gestin de la biblioteca

Contents

Dnde se almacenan los archivos de los libros? (pgina 126)


Cmo gestiona calibre los nombres de autor y su orden? (pgina 127)
Por qu calibre no me deja guardar mis libros en mi propia estructura de directorios? (pgina 128)
Por qu calibre no tiene una columna para tal o cual cosa? (pgina 129)
Puedo tener una columna que muestre los formatos o el ISBN? (pgina 129)
Cmo muevo mis datos de calibre de un equipo a otro? (pgina 129)
La lista de libros en calibre est vaca! (pgina 130)
Estoy sufriendo errores con la biblioteca calibre en una unidad de red o NAS (pgina 130)

Dnde se almacenan los archivos de los libros?

La primera vez que ejecute calibre, le va a preguntar por la carpeta dande quiere guardar los libros. Cada vez que aada
un libro a calibre, se copiar el libro en dicha carpeta. En la carpeta se organizaran muy bien los libros en subcarpetas
por autory ttulo. Tenga en cuenta que los contenidos de esta carpeta sern gestionados por automticamente por
calibre, no aada archivos o carpetas manualmente en esta carpeta, porque pueden ser automaticamente eliminados. Si
quiere aadir un archivo asociado a un libro en particular, use el rea superior derecha del cuadro Modificar metadatos
para hacerlo. Entonces calibre colocar automticamente el archivo en la carpeta correcta y lo mover cundo el ttulo
o autor cambien.
Metadata about the books is stored in the file metadata.db at the top level of the library folder. This file is a sqlite
database. When backing up your library make sure you copy the entire folder and all its sub-folders.
The library folder and all its contents make up what is called a calibre library. You can have multiple such libraries. To
manage the libraries, click the calibre icon on the toolbar. You can create new libraries, remove/rename existing ones
and switch between libraries easily.
Puede copiar o mover libros entre diferentes bibliotecas (una vez que haya configurado ms de una biblioteca) pulsando
con el botn derecho sobre un libro y seleccionando la accin Copiar a biblioteca.

126 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

Cmo gestiona calibre los nombres de autor y su orden?

Los nombres de los autores son complejos, especialmente si se consideran diferentes culturas, vea esta nota55 (en
ingls) sobre algunas de estas complejidades. calibre tiene una estrategia muy flexible para gestionar los nombres
autor. Lo primero que hay que entender es que los libros y los autores son entidades separadas en calibre. Un libro
puede tener ms de un autor, y un autor puede tener ms de un libro. Puede gestionar autores individuales pulsando
con el botn derecho sobre el autor en el explorador de etiquetas a la izquierda de la pantalla principal de calibre y
seleccionando Administrar autores. Mediante este cuadro de dilogo puede modificar el nombre de un autor o cmo
se ordena ste. Si lo hace, se cambiar automticamente el nombre del autor en todos los libros de dicho autor. Cuando
un libro tiene mltiples autores, separe sus nombres usando el carcter &.
En cuanto a la ordenacin de nombres de autor:
Cuando se aade un nuevo autor a calibre (esto ocurre cuando se aade un libro con un nuevo autor), calibre
calcula automticamente un texto de orden para el libro y para el autor.
Los autores en el explorador de etiquetas se ordenan por el valor de orden de los autores. Recuerde que esto
puede ser distinto del campo orden de autor de un libro.
De manera predeterminada, este algoritmo de ordenacin asume que el nombre del autor est en el formato
Nombre Apellido y genera un valor con el formato Apellido, Nombre.
Puede cambiar este algoritmo en Preferencias > Ajustes, seleccionando el ajuste
author_sort_copy_method.
Puede forzar que calibre vuelva a calcular los valores de orden de autor para cada autor pulsando con el botn
derecho sobre cualquier autor y seleccionando Administrar autores, a continuacin, pulse el botn Recalcular
todos los valores de orden de autor . Haga esto despus de haber establecido el ajuste autor_sort_copy_method
como desee.
Puede hacer que calibre recalcule los valores de orden de autor de todos los libros utilizando el cuadro de dilogo
de edicin masiva de metadatos (seleccione todos los libros y pulse en modificar metadatos, marque la casilla
Establecer automticamente el orden de autor, despus pulse Aceptar.)
Al volver a calcular los valores de orden de autor para los libros, calibre utiliza los valores de orden de autor
de cada autor individual. Por lo tanto, asegrese de que los valores de orden de autor individuales son correctos
antes de calcular los valores de orden de autor de los libros.
Puede controlar si el Explorador de etiquetas muestra los autores usando sus nombres o sus valores de ordenacin
estableciendo el ajuste categories_use_field_for_author_name en Preferencias > Miscelnea > Ajustes.
Tenga en cuenta que puede establecer valores de orden de autor individuales como quiera usando Administrar auto-
res. Esto es til cuando se trata de nombres que calibre no maneja correctamente, como nombres con varias partes
complejas como Miguel de Cervantes Saavedra o de nombres asiticos como Sun Tzu.
Con toda esta flexibilidad, es posible hacer que calibre administre los nombres de autores como ms le guste. Por ejemplo, una s

Fije author_sort_copy_method en copy como se describe arriba.


Reinicie calibre. No cambie ningn metadato de los libros antes de llevar a cabo los siguientes pasos.
Cambie todos los nombres de autor a Apellido, Nombre utilizando el cuadro de dilogo de Administrar
autores.
Despus de haber cambiado todos los autores, pulse el botn Recalcular todos los valores de orden de
autor.
Pulse Aceptar, calibre cambiar los autors de todos los libros. Esto puede llevar un rato.
55 https://www.w3.org/International/questions/qa-personal-names.en.php?changelang=en

1.8. Preguntas frecuentes 127


Manual de usuario de calibre, Versin 2.82.0

Nota:
Al cambiar de Nombre Apellido a Apellido, Nombre, a menudo ocurre que los valores de author_sort ya estn en el formato

Fije author_sort_copy_method en copy como se describe arriba.


Reinicie calibre. No cambie ningn metadato de los libros antes de llevar a cabo los siguientes pasos.
Abra el cuadro de dilogo Administrar autores. Pulse el botn Copiar todos valores de
orden de autor a autor.
Revise los autores para asegurarse de que est satisfecho. An puede pulsar Cancelar para abandonar los
cambios. Una vez que presione Aceptar, no hay posibilidad de deshacer.
Pulse Aceptar, calibre cambiar los autors de todos los libros. Esto puede llevar un rato.

Por qu calibre no me deja guardar mis libros en mi propia estructura de directorios?

La ventaja de las funciones de administracin de biblioteca en calibre es que proporcionan una interfaz de bsqueda y
ordenacin para encontrar libros que es mucho ms eficiente que cualquier esquema de directorios que pueda pensarse
para la coleccin. De hecho, una vez que se sienta cmodo usando la interfaz de calibre para buscar, clasificar y
explorar la coleccin, no sentir de nuevo la necesidad de buscar por los archivos en el disco para encontrar un libro.
Mediante la gestin de los libros en su propia estructura de directorios Autor > Atulo > Archivos del libro, calibre es
capaz de lograr un alto nivel de fiabilidad y estandarizacin. Para ilustrar por qu una interfaz basada en la bsqueda
y etiquetado es superior a las carpetas, considere lo siguiente. Supongamos que su coleccin de libros est muy bien
ordenada en carpetas con el siguiente esquema:

Genre -> Author -> Series -> ReadStatus

Esto hace que sea muy fcil encontrar, por ejemplo, todos los libros de ciencia ficcin de Isaac Asimov en la serie
Fundacin. Pero supongamos que quiere encontrar todos los libros de ciencia ficcin no ledos. No hay manera fcil
de hacer esto con este esquema de carpetas, tendra que tener un esquema de carpetas similar a:

ReadStatus -> Genre -> Author -> Series

En calibre, en lugar de carpetas utilizara etiquetas para marcar el gnero y el estado de lectura, y luego slo hay que
utilizar una consulta de bsqueda como tag:iencia ficcin.and not tag:ledo. calibre tiene incluso
una interfaz grfica, por lo que no necesita aprender su lenguaje de bsqueda, sino que puede pulsar sobre las etiquetas
para incluirlas o excluirlas de la bsqueda.
Frente a quienes dicen que es necesario tener acceso al sistema de archivos para poder acceder a los libros en una red,
calibre cuenta con un servidor de contenido excelente que proporciona acceso a la biblioteca de calibre a travs de la
red.
Si le preocupa que algn da calibre deje de desarrollarse, dejando todos sus libros abandonados en su estructura de
carpetas, examine la potente funcin de calibre Guardar a disco, que le permite exportar todos los archivos en una
estructura de carpetas de complejidad arbitraria, basada en sus metadatos.
Por ltimo, la razn de que haya nmeros al final del titulo de cada carpeta es por robustez del sistema. Ese nmero
es el nmero de identificacin del registro del libro en la base de datos de calibre. La presencia del nmero le permite
tener mltiples registros con los mismos nombres de ttulo y autor. Tambin es la parte que permite a calibre regenerar
mgicamente la base de datos con todos los metadatos si el archivo de base de datos se corrompe. Dado que la misin
de calibre es conseguir que deje de almacenar metadatos en los nombres de archivo y de usar el sistema de archivos
para encontrar las cosas, el aumento de la robustez que ofrecen los nmeros de identificacin vale la pena a pesar de
que los nombres de carpeta sean ms feos.

128 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

Si an no est convencido, me temo que calibre no es para Ud. Busque en otros lugares lo que necesite para catalogar
libros. Para ser claros: esto no va cambiar. Por favor no contacte con nosotros para hacernos cambiarlo.

Por qu calibre no tiene una columna para tal o cual cosa?

calibre est diseado con columnas para los campos ms frecuentes y extendidos. Adems, puede aadir cualquier otra
columna que desee. Las columnas pueden aadirse en Preferencias > Interfaz > Aadir columnas personalizadas. Vea
el cursillo UI Power tips56 (en ingls) para aprender a crear columnas personalizadas, o lea esta entrada de blog57 (en
ingls).
Tambin puede crear columnas virtuales que contienen combinaciones de los metadatos de otras columnas. En el
cuadro de aadir columna, use los enlaces de Creacin rpida para crear columnas que muestren el ISBN del libro o
los formatos. Puede usar el potente lenguaje de plantillas de calibre para hacer mucho ms con las columnas. Para ms
detalles, vase El lenguaje de plantillas de calibre (pgina 146).

Puedo tener una columna que muestre los formatos o el ISBN?

S, puede. Siga las instrucciones en la respuesta anterior para aadir columnas personalizadas.

Cmo muevo mis datos de calibre de un equipo a otro?

Puede exportar todos los datos de calibre (libros, configuraciones y complementos) y luego importarlos en otro equipo.
Veamos primero cmo exportar los datos:
Pulse con el botn derecho sobre el icono de calibre en la barra de herramientas principal de calibre y seleccione
Exportar o importar todos los datos de calibre. Luego pulse el botn llamado Exportar todos los datos de
calibre. Ver una lista de todas las bibliotecas de calibre. Pulse Aceptar y elija una carpeta vaca en algn
lugar del equipo. Los datos exportados se guardarn en esta carpeta. Copie esta carpeta al nuevo equipo y siga
las instrucciones siguientes para importar los datos.
Instale calibre en el nuevo equipo y pase el Asistente de bienvenida, no importa lo que haga aqu, ya que a conti-
nuacin importar la configuracin antigua. Ahora tiene un calibre vaco, con slo la gua Getting Started en la
biblioteca. Nuevamente, pulse con el botn derecho sobre el botn de calibre y elija Exportar o importar todos
los datos de calibre. Luego pulse el botn Importar datos previamente exportados. Seleccione la carpeta con
los datos exportados que ha copiado anteriormente. Ver ahora una lista de las bibliotecas que puede importar.
Una a una, seleccione para cada biblioteca una nueva ubicacin (una ubicacin no es ms que una carpeta vaca
en algn lugar del equipo). Pulse Aceptar. Una vez finalice la importacin, calibre se reiniciar con todas las
antiguas bibliotecas, configuraciones y complementos de calibre.

Nota: Esta funcin de exportacin e importacin slo est disponible a partir de la versin de calibre 2.47. Si tiene una
versin anterior de calibre, o si experimenta problemas al exportar o importar, puede simplemente copiar la carpeta de
calibre manualmente, como se describe en el prrafo siguiente.
Basta con copiar la carpeta de biblioteca calibre del antiguo equipo al nuevo. Puede averiguar cul es la carpeta de la
biblioteca pulsando sobre el icono de calibre en la barra de herramientas. El primer elemento es la ruta a la carpeta
de la biblioteca. Despus, en el nuevo equipo, inicie calibre por primera vez. Se ejecutar el Asistente de bienvenida,
que le pedir la ubicacin de la biblioteca de calibre. Seale la carpeta previamente copiada. Si el equipo al que va a
transferir la biblioteca ya cuenta con una instalacin de calibre, el Asistente de bienvenida no se ejecutar. En ese caso,
pulse con el botn derecho sobre el icono de calibre en la barra de herramientas y dirjalo al directorio recin copiado.
Ahora tendr dos bibliotecas de calibre en el equipo y podr cambiar entre ellas pulsando sobre el icono de calibre
56 http://calibre-ebook.com/demo#tutorials
57 https://blog.calibre-ebook.com/2011/11/calibre-custom-columns.html

1.8. Preguntas frecuentes 129


Manual de usuario de calibre, Versin 2.82.0

en la barra de herramientas. Al transferir la biblioteca de esta manera se conservan todos los metadatos, etiquetas,
columnas personalizadas, etc.

La lista de libros en calibre est vaca!

Para poder comprender por qu ocurre esto, debe entender lo que es una biblioteca de calibre. Al nivel ms bsico,
una biblioteca de calibre es slo una carpeta. Cada vez que aade un libro a calibre, los archivos de ese libro se copian
en esta carpeta (dividida en subcarpetas por autor y ttulo). Dentro de la carpeta de biblioteca de calibre, en el nivel
superior, encontrar un archivo llamado metadata.db. En este archivo es donde calibre almacena los metadatos
como ttulo, autor, calificacin, etiquetas, etc. para todos los libros de la biblioteca. La lista de los libros que muestra
calibre se crea a partir del contenido de este archivo metadata.db.
Hay dos razones por las que calibre puede mostrar una lista de libros vaca:
La carpeta de la biblioteca de calibre ha cambiado de ubicacin. Esto puede ocurrir si estaba en un disco externo
y la letra de unidad del disco ha cambiado, o si ha movido la carpeta accidentalmente. En este caso, calibre no
puede encontrar la biblioteca y se inicia con una biblioteca vaca. Para corregir esto, pulse con el botn derecho
sobre el botn de bibloteca de la barra de herramientas de calibre y seleccione Cambiar o crear bibloteca. Pulse
el pequeo icono azul para seleccionar una nueva ubicacin para la biblioteca de calibre y pulse Aceptar. Si no
conoce la nueva ubicacin, busque el archivo metadata.db en el equipo.
El archivo metadata.db ha sido borrado o daado. En este caso, puede pedir a calibre que reconstruya
metadata.db a partir de las copias de seguridad. Pulse con el botn derecho sobre el icono de calibre en la
barra de herramientas de calibre y seleccione Mantenimiento de la biblioteca > Restaurar base de datos. calibre
reconstruir automticamente metadata.db.

Estoy sufriendo errores con la biblioteca calibre en una unidad de red o NAS

No ubique la biblioteca de calibre en una unidad de red.


Un sistema de archivos es un asunto complicado. La mayora de los sistemas de archivos en red carecen de varias de las
caractersticas que usa calibre. Algunos no admiten bloqueo de archivos, algunos no admiten enlaces duros, algunos
son simplemente inestables. Adems, calibre es una aplicacin de un solo usuario. Si ejecuta dos copias de calibre
inadvertidamente sobre la misma biblioteca en red, pueden ocurrir cosas malas. Por ltimo, los diferentes sistemas
operativos imponen distintas restricciones sobre los sistemas de archivos, por lo que, de nuevo, si comparte una unidad
en red entre distintos sistemas operativos, ocurrirn cosas malas.
Considere utilizar el servidor de contenidos de calibre para hacer que sus libros estn disponibles en otros equipos.
Ejecute calibre en un nico equipo y acceda a l a travs del servidor de contenidos o de una solucin de escritorio
remoto.
Si tiene que compartir la biblioteca real, utilice una herramienta de sincronizacin de archivos como DropBox o rsync
en vez de una unidad de red. Si est utilizando una herramienta de sincronizacin de archivos es esencial que se
asegure de que calibre y la herramienta de sincronizacin de archivos no tratan de acceder a la biblioteca de calibre al
mismo tiempo. En otras palabras, no ejecute la herramienta de sincronizacin de archivos y calibre al mismo tiempo.
Incluso con estas herramientas hay riesgo de corrupcin o prdida de datos, por lo que slo debe hacer esto si est
dispuesto a asumir ese riesgo. En particular, tenga en cuenta que Google Drive es incompatible con calibre, si pone la
biblioteca de calibre en Google Drive, sufrir de prdida de datos. Vase este hilo58 (en ingls) para ms detalles.

1.8.4 Miscelnea

58 https://www.mobileread.com/forums/showthread.php?t=205581

130 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

Contents

Quiero que calibre descargue noticias de mi sitio de noticias favorito. (pgina 131)
Por qu el programa se llama calibre? (pgina 131)
Por qu calibre no muestra todos los tipos de letra de OS X? (pgina 132)
calibre no se inicia en Windows (pgina 132)
calibre se bloquea o cierra ocasionalmente (pgina 132)
Al usar el visor o realizar una conversin aparece un error de permiso denegado en Windows. (pgina 133)
calibre no se inicia o se detiene en OS X (pgina 134)
He descargado el instalador, pero no funciona. (pgina 134)
Mi programa antivirus dice que calibre es un virus o un troyano (pgina 134)
Cmo hago copias de respaldo de calibre? (pgina 135)
Cmo uso en calibre los libros EPUB comprados (o qu hago con los archivos .acsm)? (pgina 135)
Me sale un error de Permiso denegado (pgina 135)
Puedo hacer que los metadatos de comentario se muestren en el lector? (pgina 136)
Cmo hago que calibre utilice mi proxy HTTP? (pgina 136)
Quiero que se aada una funcin a calibre. Qu puedo hacer? (pgina 136)
Por qu calibre no se actualiza automticamente? (pgina 136)
Qu licencia tiene calibre? (pgina 137)
Cmo ejecuto calibre desde una memoria USB? (pgina 137)
Cmo ejecuto partes de calibre como la descarga de noticias o el servidor de contenido en mi propio
servidor linux? (pgina 137)

Quiero que calibre descargue noticias de mi sitio de noticias favorito.

Si se maneja bien con la informtica, puede hacer que calibre descargue noticias de cualquier sitio web de su eleccin.
Para aprender cmo hacerlo, vea Aadir su sitio de noticias favorito (pgina 24).
O puede solicitar un sitio de noticias particular escribiendo en el foro de calibre Recipes59 (en ingls).

Por qu el programa se llama calibre?

Elija lo que prefiera:


Convertor And LIBRary for Ebooks
Un producto de alto calibre
Un tributo al SONY Librie, que fue el primer lector de libros electrnicos con tecnologa de e-ink
Mi esposa lo eligi ;-)
En ingls, calibre se pronuncia cal-i-ber, no ca-li-bre. Si se pregunta el motivo, calibre es la ortografa britni-
ca/commonwealth de caliber. Al ser indio, es para m la forma natural de escribirlo.
59 https://www.mobileread.com/forums/forumdisplay.php?f=228

1.8. Preguntas frecuentes 131


Manual de usuario de calibre, Versin 2.82.0

Por qu calibre no muestra todos los tipos de letra de OS X?

calibre incrusta tipos de letra en los archivos que crea. Los archivos de libro electrnico slo admiten la incrustacin
de tipos de letra TrueType y OpenType (.ttf y .otf). La mayora de los tipos de letra en sistemas OS X estn en el
formato .dfont, por lo que no pueden ser incrustados. calibre slo muestra los tipos de letra TrueType y OpenType que
encuentra en el sistema. Puede obtener muchos tipos de letra en Internet. Simplemente descargue los archivos .ttf u
.otf y adalos al directorio Library/Fonts en su directorio base.

calibre no se inicia en Windows

Puede haber varias causas para esto:


Si se encuentra en Windows XP o en un equipo con un procesador que no soporta SSE2 (como procesadores
de AMD anteriores a 2003), intente instalar la versin 1.4860 de calibre. calibre 2.0 y versiones ms recientes
usan Qt 5, que se sabe quees incompatible con Windows XP, y requiere SSE2. Simplemente desinstale calibre y
luego instale la versin 1.48, esto no afectar a sus libros o configuracin.
Si obtiene un error acerca de que calibre no puede abrir un archivo debido a que est siendo utilizado por otro
programa, haga lo siguiente:
Desinstale calibre
Reinicie el equipo
Reinstale calibre. Pero no inicie calibre desde el asistente de instalacin.
Desactive temporalmente el programa antivirus (desconecte de Internet antes de hacerlo, por seguridad)
Mire en la carpeta que ha elegido para la biblioteca de calibre. Si hay un archivo llamado metadata.db,
brrelo.
Inicie calibre
A partir de ahora debera poder iniciar calibre normalmente.
Si obtiene un error acerca de una funcin Python que finaliza inesperadamente despus de actualizar cali-
bre, primero desinstale calibre, despus borre las carpetas (si existen) C:\Program Files\Calibre y
C:\Program Files\Calibre2. Ahora reinstale y todo debera funcionar.
Si se produce un error en el asistente de bienvenida o en la ejecucin inicial de calibre, puebe a elegir una carpeta
como C:\biblioteca como la biblioteca de calibre (a veces calibre tiene problemas con ubicaciones de
biblioteca si la ruta contiene caracteres no ingleses, o slo nmeros, etc.)
Pruebe a ejecutarlo como Administrador (pulse con el botn derecho sobre el icono, y elija Ejecutar como
Administrador)
Si todava no comienza, inicie la terminal (presione la tecla de Windows y R; a continuacin teclee cmd.exe en el
cuadro de dilogo que aparece). En el smbolo del sistema, escriba la siguiente orden y pulse Intro:

calibre-debug -g

Comparta cualquier informacin que aparezca en un mensaje de ayuda en el Foro61 (en ingls).

calibre se bloquea o cierra ocasionalmente

Conozco varias cosas que pueden causar esto:


60 https://download.calibre-ebook.com/1.48.0/
61 https://www.mobileread.com/forums/forumdisplay.php?f=166

132 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

Ha conectado recientemente un monitor externo o un televisor al equipo. En este caso, cada vez que calibre abre
una nueva ventana, como la ventana de modificar metadatos o el cuadro de dilogo de conversin, aparecer en
el segundo monitor, donde no la ve y puede pensar que calibre se ha colgado. Desconecte el segundo monitor y
reinicie calibre.
Se sabe que los siguientes programas pueden causar errores en calibre, si est ejecuntando alguno de ellos,
cirrelo antes de iniciar calibre o desinstlelo: RoboForm,
Est utilizando un ratn o tablilla USB Wacom. Hay una incompatibilidad entre los controladores Wacom y las
herramientas grficas que usa calibre. Pruebe con un ratn que no sea de la marca Wacom.
En algunas versiones de 64 bits de Windows existen configuraciones y software de seguridad que evitan que
la versin de calibre 64 bits funcione correctamente. Si est utilizando la versin de calibre de 64 bits, intente
cambiarla por la de 32 bits.
Si el error ocurre cuando intenta copiar texto del visor de libros de calibre, probablemente sea debido a alguna
aplicacin de gestin del portapapeles. Pruebe a desactivarla.
Si los fallos ocurren especficamente cuando usa un cuadro de dilogo de archivos, como al pulsar el botn
Aadir libros o Guardar a disco, entonces tiene algn programa que ha instalado extensiones de consola de-
fectuosas. Algunas posibilidades conocidas son: SpiderOak, odrive sync y Dell Backup and Recovery. Si tiene
alguno de stos, desinstlelo y todo ir bien. Tambin puede usar la utilidad NirSoft Shell Extension Viewer62
para ver qu extensiones de consola hay instaladas en el sistema y desactivarlas indivialmente si no desea des-
instalar el programa completo. Recuerde usar la opcin Restart Explorer o reiniciar el equipo despus de
desactivar las extensiones de consola.
Si nada de lo anterior es aplicable a su caso, entonces hay algn otro programa en el equipo que est interfiriendo
con calibre. En primer lugar, reinicie el equipo en modo seguro, para tener el menor nmero posible de programas en
ejecucin y ver si los problemas siguen sucediendo. Si no lo hacen, entonces sabr que es un programa el que causa el
problema. El culpable ms probable es algn programa que modifique el comportamiento de otros programas, como un
antivirus, un controlador de dispositivos, algo as RoboForm (una aplicacin automtica de rellenado de formularios)
o una tecnologa de asistencia como control de voz o un lector de pantalla.
La nica manera de encontrar el culpable es eliminar los programas uno por uno y ver cul est causando el problema.
Bsicamente, detenga un programa, ejecute calibre, verifique si hay problemas. Si se siguen sucediendo, detenga otro
programa y repita.

Al usar el visor o realizar una conversin aparece un error de permiso denegado en Windows.

Algo en el equipo est impidiendo que calibre acceda a sus propios archivos temporales. Lo
ms probable es que los permisos de la carpeta Temp sean incorrectos. Vaya a la carpeta
C:\Users\NOMBREDEUSUARIO\AppData\Local en el Explorador de Windows pulse con el botn de-
recho sobre la carpeta Temp, seleccione Propiedades y vaya a la pestaa Seguridad. Asegrese de que su cuenta de
usuario tiene control total para esta carpeta.
Algunos usuarios han informado de que la ejecucin en una terminal de Administrador de la orden siguiente arregla
sus permisos. Para acceder a una terminal de Administrador busque cmd.exe en el men de inicio, pulse con el botn
derecho en la entrada de smbolo del sistema y seleccione Ejecutar como Administrador. En el smbolo del sistema,
escriba la siguiente orden y pulse Intro:

icacls "%appdata%\..\Local\Temp" /reset /T

Otra opcin es ejecutar calibre en modo Administrador, pero esto har que algunas funciones, como arrastrar y soltar,
no funcionen.
Por ltimo, algunos usuarios han informado de que desactivar UAC soluciona el problema.
62 http://www.nirsoft.net/utils/shexview.html

1.8. Preguntas frecuentes 133


Manual de usuario de calibre, Versin 2.82.0

calibre no se inicia o se detiene en OS X

Una causa frecuente de fallos en OS X es el uso de tecnologas de accesibilidad no compatibles con las herramientas
grficas que usa calibre. Pruebe a desactivar VoiceOver si lo tiene activado. Tambin vaya a Preferencias > Sistema
> Acceso universal y desactive la opcin para permitir el acceso a dispositivos de ayuda en todas las pestaas. Otra
causa puede ser el uso de herramientas de terceros que modifican el comportamiento del sistema, como Smart Scroll.
Puede obtener una salida de depuracin sobre la causa de calibre no se inicie ejecutando Console.app. La salida de
depuracin se escribir ah. Si la salida de depuracin contiene algo similar a:

Qt: internal: -108: Error ATSUMeasureTextImage text/qfontengine_mac.mm

entonces el problema es probablemente un cach de tipos de letra daado. Puede borrar el cach siguiendo estas
instrucciones63 (en ingls). Si eso no lo resuelve, busque un archivo de tipo de letra daado en su sistema, en fi-
le:~/Library/Fonts o similar. Una forma sencilla de buscar tipos de letra daados en OS X es iniciar la aplicacin
Font Book, seleccione todos los tipos de letra y luego en el men Archivo, elija :guilabelValidar tipos de letra.

He descargado el instalador, pero no funciona.

Las descargas de Internet pueden resultar corruptas en ocasiones. Si el instalador de calibre que ha descargado no
se abre, pruebe a descargarlo de nuevo. Si esto no funciona, descrguelo de una ubicacin alternativa64 . Si an no
funciona, algo en el equipo est evitando que se ejecute.
Pruebe deshabilitar temporalmente el programa antivirus (Microsoft Security Essentials, Kaspersky, Norton,
McAfee o el que sea). ste es probablemente el culpable de que el proceso de actualizacin se cuelgue a la
mitad.
Intente reiniciar el equipo y ejecutar un limpiador del registro como Wise registry cleaner65 .
Pruebe una instalacin limpia. Esto es, desinstale calibre, elimine C:\Program Files\Calibre2 (o don-
de previamente haya decidido instalar calibre). Despus reinstale calibre. Tenga en cuenta que la desinstalacin
no afecta a sus libros o configuraciones.
Pruebe a descargar el instalador desde otro navegador. Por ejemplo, si est usando Internet Explorer, pruebe con
Firefox o Chrome en su lugar.
Si obtiene un error sobre un archivo DLL que falta en Windows, lo ms probable es que los permisos de la carpeta
temporal sean incorrectos. Vaya a la carpeta C:\Users\USERNAME\AppData\Local en el Explorador de
Windows, pulse con el botn derecho sobre la carpeta Temp y seleccione Propiedades y vaya a la pestaa
Seguridad. Asegrese de que su cuenta de usuario tiene control total para esta carpeta.
Si aun as no consique que funcione el instalador y est en Windows, puede usar la instalacin portable de calibre66 ,
que no necesita instalacin (es slo un archivo zip).

Mi programa antivirus dice que calibre es un virus o un troyano

Lo primero que debe comprobar es que est descargando calibre desde la web oficial: https://calibre-ebook.com/
download. Asegrese de que pulsa en los enlaces de descarga a la izquierda, no en los anuncios de la derecha. calibre
es un programa muy popular y la gente sin escrpulos crea sitios web ofrefiendo su descarga para engaar a los
incautos.
Si tiene la descarga oficial y su programa antivirus todava dice que calibre es un virus, entonces es el programa
antivirus el que est equivocado. Los programas antivirus utilizan heurstica para detectar virus, patrones de cdigo
63 http://www.macworld.com/article/1139383/fontcacheclear.html
64 https://github.com/kovidgoyal/calibre/releases/latest
65 http://www.wisecleaner.com
66 https://calibre-ebook.com/download_portable

134 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

que parecen sospechosos. Es algo as como la discriminacin racial. calibre es un producto de cdigo completamente
abierto. En realidad puede ver el cdigo fuente (o contratar a alguien para que lo haga por usted) para verificar que no
es un virus. Por favor, informe de la identificacin incorrecta a la compaa de la que obtenga el programa antivirus. Si
el programa antivirus es el que impide la descarga o instalacin de calibre, desactvelo temporalmente, instale calibre
y luego vuelva a activarlo.

Cmo hago copias de respaldo de calibre?

Lo ms importante para la copia de seguridad es la carpeta de la biblioteca de calibre, que contiene todos los libros y
los metadatos. sta es la carpeta que eligi para la biblioteca de calibre cuando ejecut calibre por primera vez. Puede
obtener la ruta a la carpeta de la biblioteca pulsando sobre el icono de calibre en la barra de herramientas principal.
Debe crear una copia de seguridad de esta carpeta con todos sus archivos y subcarpetas.
Puede hacer que calibre cambie a una copia de la carpeta de la biblioteca sin ms que pulsar sobre el icono de calibre en
la barra de herramientas y elegir la copia de la carpeta de biblioteca. Una copia de seguridad de la biblioteca contiene
todas las columnas personalizadas y bsquedas guardadas, as como todos los libros y los metadatos.
Si desea hacer copias de seguridad de los complementos y de la configuracin de calibre, tiene que realizar una copia
de seguridad del directorio de configuracin. Puede encontrar este directorio en Preferencias > Miscelnea. Tenga en
cuenta que la restauracin de directorios de configuracin no tiene soporte oficial, pero debera funcionar en la mayora
de los casos. Para restaurar slo tiene que copiar el contenido del directorio de copia de seguridad en el directorio de
configuracin actual.

Cmo uso en calibre los libros EPUB comprados (o qu hago con los archivos .acsm)?

La mayora de los libros en formato EPUB que se compran tienen DRM67 . Esto hace que calibre no pueda abrirlos.
Puede seguir utilizando calibre para almacenarlos y transferirlos a un lector de libros electrnicos. En primer lugar,
debe autorizar el lector en una mquina Windows con Adobe Digital Editions. Una vez hecho esto, los libros en
formato EPUB transferidos con calibre no tendrn ningn problema en el lector. Cuando compra un libro epub desde
un sitio web, recibir un archivo .acsm. Este archivo debe abrirse con Adobe Digital Editions, que descargar el
libro en formato .epub. El archivo de libro electrnico se guardar en la carpeta My Digital Editions, desde
donde se puede aadir a calibre.

Me sale un error de Permiso denegado

Un error de denegacin de permiso puede ocurrir por muchas razones, ninguna de ellas tiene nada que ver con calibre.
Puede recibir errores de denegacin de permiso si usa una tarjeta SD con la proteccin de escritura activada.
Si usted, o algn programa que haya usado, cambia los permisos de los archivos en cuestin a slo lectura.
Si hay un error de sistema de archivos en el dispositivo que hace que el sistema operativo monte el sistema
de archivos en modo de slo lecutura o marque un archivo concreto como de slo lectura con recuperacin
necesaria.
Si los archivos tienen un propietario distinto a su usuario.
Si el archivo est abierto en otro programa.
Si el archivo est ubicado en un dispositivo, puede que haya alcanzado el lmite mximo de 256 archivos en el
directorio raz del dispositivo. En tal caso deber formatear el dispositivo o tarjeta SD indicado por el mensaje
de error con un sistema de archivos FAT32, o borrar algunos archivos archivos de la tarjeta SD o la memoria del
dispositivo.
67 http://drmfree.calibre-ebook.com/about#drm

1.8. Preguntas frecuentes 135


Manual de usuario de calibre, Versin 2.82.0

Tendr que corregir la causa subyacente del error de permisos antes de volver a utilizar calibre. Lea el mensaje de error
con cuidado para ver a qu archivo se refiere y arregle los permisos en ese archivo o las carpetas que lo contienen.

Puedo hacer que los metadatos de comentario se muestren en el lector?

La mayora de los lectores no admiten esto. Debera presentar una queja ante el fabricante al respecto, y quiz si
suficientes personas se quejan las cosas cambien en el futuro. Mientras tanto, puede insertar los metadatos, incluyendo
comentarios, en una sobrecubierta al comienzo del libro, mediante el uso de la opcin Insertar metadatos en una
pgina al principio del libro durante la conversin. La opcin se encuentra en la seccin Deteccin de estructura de
las opciones de conversin. Tenga en cuenta que para que esto tenga efecto debe convertir el libro. Si el libro ya est
en un formato que no necesita conversin, puede convertir de ese formato al mismo formato.
Otra posibilidad es crear un catlogo en forma de libro electrnico que contenga un listado de todos los libro en la
biblioteca de calibre, con sus metadatos. Pulse y mantenga pulsado el botn Convertir acceder a la herramienta de
creacin de catlogos. Y antes que lo pregunte, no, no puede hacer que el catlogo enlace directamente a los libros
en el lector.

Cmo hago que calibre utilice mi proxy HTTP?

De manera predeterminada, calibre utiliza la configuracin de proxy establecida en el sistema operativo. A veces
es incorrecta, por ejemplo, en Windows, si no utiliza Internet Explorer la configuracin de proxy puede no estar
actualizada. Se puede indicar a calibre usar un servidor proxy en particular mediante el establecimiento de la variable
de entorno http_proxy. El formato de la variable es: http://usuario:contrasea@servidor. Debe
pedirle a su administrador de red el valor correcto para esta variable. Tenga en cuenta que calibre slo es compatible
con servidores proxy HTTP, no con servidores SOCKS. Puede ver los proxies actualmente utilizados por calibre en
Preferencias > Miscelnea.

Quiero que se aada una funcin a calibre. Qu puedo hacer?

Tiene dos opciones:


1. Crear un parche modificando el cdigo de calibre y enviarmelo para su revisin e inclusin. Vea Desarro-
llo68 .
2. Abrir un informe de fallo para solicitar la funcin69 . Recuerde que aunque pueda pensar que la funcin que
solicita es muy importante o esencial, los desarrolladores de calibre pueden no estar de acuerdo. Por suerte,
calibre es cdigo abierto, lo que significa que siempre tiene la posibilidad de implementar la funcin por s
mismo o pagar a alguien que lo haga. Adems, calibre tiene una arquitectura de complementos completa,
por lo que puede desarrollar la funcin como un complemento, vea Escribir sus propios complementos
para extender la funcionalidad de calibre (pgina 187).

Por qu calibre no se actualiza automticamente?

Por muchos motivos:


No hay necesidad de actualizarlo cada semana. Si est contento con cmo funciona calibre desactive la notifi-
cacin de actualizaciones y disfrute. Vuelva a comprobar si quiere actualizarlo cada ao ms o menos. Hay un
casilla para desactivar la notificacin de actualizaciones en la propia notificacin de actualizacin.
68 https://calibre-ebook.com/get-involved
69 http://calibre-ebook.com/bugs

136 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

Las descargas actuales de calibre consumen alrededor de 100 TB de ancho de banda al mes70 . Activar las
descargas automticas incrementara este valor y acabara costando miles de dlares al mes, que alguien tendra
que pagar.
Si creo un cuadro de dilogo que descargue la actualizacin y la ejecute, en lugar de ir a la pgina web como
ahora, eso ahorrara al ms empedernido actualizador de calibre como mucho cinco pulsaciones a la semana.
Hay cosas mucho ms importantes que hacer en el desarrollo de calibre.
Si realmente, de verdad odia descargar calibre todas las semanas, pero an quiere estar a la ltima, le animo a
ejecutar calibre a partir del cdigo fuente, lo que hace que la actualizacin sea trivial. Las instrucciones estn
disponibles aqu (pgina 281).
Hay actualizadores automticos de calibre no oficiales, creados por usuarios de calibre, en el foro de calibre71
(en ingls).

Qu licencia tiene calibre?

calibre est licenciado bajo la Licencia Pblica General de GNU v3 (una licencia de cdigo abierto). Esto significa
que usted es libre de redistribuir calibre, siempre y cuando proporcione tambin el cdigo fuente. As que si quiere
poner calibre en un CD con su producto, tambin debe poner el cdigo fuente de calibre en el CD. El cdigo fuente
est disponible para su descarga72 . Es usted libre de utilizar los resultados de las conversiones de calibre como quiera.
No puede utilizar ni el cdigo o ni las libreras de calibre en su software sin hacer que su software de cdigo abierto.
Para ms detalles, vase The GNU GPL v373 (en ingls).

Cmo ejecuto calibre desde una memoria USB?

Hay una versin porttil de calibre disponible aqu74 .

Cmo ejecuto partes de calibre como la descarga de noticias o el servidor de contenido en mi


propio servidor linux?

En primer lugar, debe instalar calibre en el servidor linux. Si el servidor usa una distribucin moderna de linux, no
debe tener ningn problema para instalar calibre.

Nota: calibre necesita GLIBC >= 2.13 y libstdc++ >= 6.0.17. Si tiene un servidor ms antiguo tendr que compilarlas
a partir del cdigo fuente o usar calibre 1.48, que requiere slo GLIBC >= 2.10. Adems, aunque las utilidades de lnea
de rdenes de calibre no necesitan un servidor X en ejecucin, algunas de ellas necesitan que las bibliotecas de servidor
X estn instaladas en el sistema. Esto es debido a Qt (que se usa para diversas tareas de procesado de imgenes), y
enlaces con estas bibliotecas. Si obtiene un ImportError con respecto a algn mdulo Qt, probablemente sea porque
le falte alguna biblioteca X.

Puede ejecutar el servidor de calibre mediante la orden:

/opt/calibre/calibre-server --with-library /path/to/the/library/you/want/to/share

Puede descargar noticias y convertirlas en un libro electrnico con la orden:


70 https://calibre-ebook.com/dynamic/downloads
71 https://www.mobileread.com/forums/forumdisplay.php?f=238
72 https://download.calibre-ebook.com
73 https://www.gnu.org/licenses/gpl.html
74 https://calibre-ebook.com/download_portable

1.8. Preguntas frecuentes 137


Manual de usuario de calibre, Versin 2.82.0

/opt/calibre/ebook-convert "Title of news source.recipe" outputfile.epub

Si quiere generar un archivo MOBI, use outputfile.mobi y --output-profile kindle.


Puede enviar las noticias descargadas por correo electrnico con la orden:

/opt/calibre/calibre-smtp

La orden exacta la dejo como ejercicio para el lector.


Por ltimo, puede aadir noticias descargadas a la biblioteca de calibre con:

/opt/calibre/calibredb add --with-library /path/to/library outfile.epub

Recuerde leer la seccin de documentacin de lnea de rdenes del Manual de Usuario de Calibre para aprender ms
sobre estas y otras rdenes.

1.9 Cursillos

Aqu puede encontrar cursillos para iniciarse en las funciones ms avanzadas de calibre, como XPath y plantillas.

1.9.1 Gestionar subgrupos de libros, por ejemplo gnero

Algunas personas prefieren organizar los libros de su biblioteca en subgrupos, de forma similar a las subcarpetas. El
motivo ms frecuente es crear jerarquas de gneros, pero hay muchas otras. Un usuario pide una forma de organizar
los libros de texto por nmero de curso y tema. Otro usuario quiere hacer un seguimiento de los regalos por tema y
destinatario. Este cursillo usar el caso de los gneros para el resto de esta entrada.
Antes de continuar, tenga en cuenta que no estamos hablando de carpetas en el disco duro. Los subgrupos no son
carpetas de archivos. Los libros no se copiarn en ningn lugar. La estructura de archivos de la biblioteca de calibre no
se ve afectada. En su lugar, se trata de una forma de organizar y mostrar subgrupos de libros en una biblioteca calibre.

Configuracin (pgina 140)


Bsqueda (pgina 142)
Restricciones (pgina 142)
Funciones de plantilla tiles (pgina 143)

Los requisitos normalmente establecidos para subgrupos tales como gneros son:
Un subgrupo (por ejemplo, un gnero) debe contener (o apuntar a) libros, no categoras de libros. Esto es lo que
distingue los subgrupos de las categoras de usuario de calibre.
Un libro puede estar en varios subgrupos (gneros). Esto distingue a los subgrupos de las carpetas fsicas de
archivos.
Los subgrupos (gneros) deben formar una jerarqua; los subgrupos pueden contener subgrupos.
Las etiquetas satisfacen los dos primeros. Si etiqueta un libro con el gnero, puede utilizar el explorador de etiquetas
(o una bsqueda) para encontrar los libros con ese gnero, lo que satisface el primer requisito. Varios libros pueden
tener la misma etiqueta, lo que satisface el segundo. El problema es que las etiquetas no satisfacen el tercer requisito.
No proporcionan una jerarqua.

138 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

La funcin jerrquica de calibre proporciona la tercera


opcin, la posibilidad de ver los gneros como un rbol y la capacidad de buscar libros por gnero o subgnero. Por
ejemplo, supongamos que la estructura de gneros es parecida a la siguiente:

Genre
. History
.. Japanese
.. Military
.. Roman
. Mysteries
.. English
.. Vampire
. Science Fiction
.. Alternate History
.. Military
.. Space Opera
. Thrillers
.. Crime
.. Horror
etc.

Mediante la funcin de jerarqua se pueden ver estos gneros en el explorador de etiquetas en forma de rbol, como
se muestra en la imagen de la pantalla. En este ejemplo, el nivel superior (Gnero) es una columna personalizada que
contiene los gneros. stos contienen subgneros que aparecen con un pequeo tringulo a su lado. Al pulsar en ese
tringulo se abrir el elemento y se mostrarn los subgneros, como se puede ver con Historia y Ciencia ficcin.
Al pulsar en un gnero puede buscar todos los libros con ese gnero sus descendientes. Por ejemplo, al pulsar en
Ciencia ficcin obtendr tambin todos los libros en los gneros desdendientes: Historia alternativa, militar
y pera espacial.. Al pulsar en Historia alternativa obtendr los libros de ese gnero, y no los de los gneros
Militar y pera espacial. Por supuesto, un libro puede tener mltiples gneros. Si un libro tiene tanto los gneros
pera espacial como Militar, dicho libro aparecer al pulsar en cualquiera de los dos gneros. Las bsquedas se
discuten con ms detalle a continuacin.
Otra cosa que se puede ver en la imagen es que el gnero Militar aparece dos veces, una vez bajo Historia y
otra bajo Ciencia ficcin. Dado que los gneros forman una jerarqua, se trata de dos gneros distintos. Un libro

1.9. Cursillos 139


Manual de usuario de calibre, Versin 2.82.0

puede estar en uno, otro, o (poco probable en este caso) en ambos. Por ejemplo, los libros de la serio La Segunda
Guerra Mundial de Winston Churchill podran estar en Historia.Militar. Los libros de la serie Honor Harrington
de David Weber podran estar en Ciencia ficcin.Militar, y ya puestos tambin en Ciencia ficcin.pera espacial.
Una vez que existe un gnero, es decir, que existe al menos un libro con ese gnero, puede aplicarlo fcilmente a otros
libros arrastrando los libros desde la vista de biblioteca al gnero que desea que tengan los libros. Tambin puede
aplicar los gneros en los editores de metadatos; ms sobre esto, ms adelante.

Configuracin

Por el momento puede que se est preguntando cmo se ha conseguido todo esto. Hay tres pasos: 1) crear la columna
personalizada, 2) comunicar a calibre que la nueva columna debe tratarse como una jerarqua y 3) aadir los gneros.
Cree la columna personalizada de la forma habitual, usando Preferencias > Interfaz > Aadir columnas personaliza-
das. Este ejemplo utiliza #gnero como el nombre de bsqueda y Gnero como el encabezado de columna. El
tipo de columna es texto separado por comas, como las etiquetas, se mostrar en el explorador de etiquetas.

Despus de reiniciar calibre, debe informar a calibre de que la columna debe ser tratada como una jerarqua. En
Preferencias > Apariencia > Explorador de etiquetas escriba el nombre de la bsqueda #gnero en Categoras con
elementos jerrquicos. Pulse Aplicar, y ya est concluida la configuracin.

140 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

En este punto an no hay gneros en la columna. Nos queda el ltimo paso: cmo aplicar un gnero a un libro. Un
gnero no existe en calibre hasta que aparece en al menos un libro. Para aprender cmo aplicar un gnero por primera
vez, hay que entrar en algunos detalles acerca de cmo se muestra un gnero en los metadatos de un libro.
Una jerarqua de cosas se construye mediante la creacin de un elemento que consiste en frases separadas por puntos.
Continuando con el ejemplo de los gneros, estos elementos seran Historia.Militar, Misterio.Vampiros, Ciencia
ficcin.pera espacial, etc. Por lo tanto, para crear un nuevo gnero, simplemente elija un libro que deba tener ese
gnero, modifique sus metadatos e introduzca el nuevo gnero dentro de la columna que ha creado. Continuando con
nuestro ejemplo, si desea asignar un nuevo gnero Historietas con un subgnero Superhroes a un libro, activara
Modificar metadatos para ese libro, eligira la pestaa de metadatos personalizados y a continuacin introducira
Historieta.Superhroes como se muestra a continuacin (no preste atencin a las otras columnas personalizadas):

Despus de hacer lo anterior, el explorador de etiquetas mostrar:

1.9. Cursillos 141


Manual de usuario de calibre, Versin 2.82.0

A partir de ahora, para aplicar este nuevo gnero a un libro, puede arrastrar el libro sobre el gnero o aadirlo al libro
usando el editor de metadatos, de la misma manera que se ha hecho anteriormente.

Bsqueda

La forma ms fcil de buscar gneros es utilizar el explorador de etiquetas, pulsando en el gnero que desee ver.
Al hacerlo sobre un gnero con descendientes se mostrarn los libros con ese gnero y todos los gneros de sus
descendientes. Sin embargo, esto suscita una cuestin. El hecho de que un gnero tenga descendientes, no significa
que no sea un gnero en s mismo. Por ejemplo, un libro puede tener el gnero Historia, pero no Historia.Militar.
Cmo buscar libros con slo Historia?
El mecanismo de bsqueda del explorador de etiquetas sabe si un elemento tiene descendientes. Si es as, al pulsar
sobre el elemento se pasa sucesivamente por cinco bsquedas en lugar de las tres normales. La primera es el signo +
verde, que muestra libros con slo ese gnero (por ejemplo, Historia). El segundo es un doble signo + (mostrado
arriba), que muestra libros con ese gnero y todos los subgneros (por ejemplo, Historia e Historia.Militar). El
tercero es el signo - rojo normal, que muestra los libros sin ese gnero exacto. El cuarto es un signo - duplicado,
que muestra libros sin ese gnero o subgneros. El quinto vuelve nuevamente al principio, ninguna marca, es decir, sin
ninguna bsqueda.

Restricciones

Si busca un gnero, cree una bsqueda guardada; puede utilizar la opcin restringir a para crear una biblioteca virtual
de libros con ese gnero. Esto es til si quiere hacer otras bsquedas dentro del gnero o para gestionar o actualizar
metadatos de los libros de ese gnero. Continuando con nuestro ejemplo, puede crear una bsqueda guardada llamada

142 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

Historia.Japonesa pulsando primero en el gnero Japonesa del explordor de etiquetas para obtener una bsqueda
en el cuadro de bsqueda, introduciendo Historia.Japonesa dentro del cuadro de bsqueda guardada y a continuacin
pulsando el botn guardar bsqueda (el cuadro verde con el signo + blanco, en el lado derecho).

Una vez creada la bsqueda guardada, puede utilizarla como una restriccin.

Funciones de plantilla tiles

Es posible que desee utilizar la informacin de gnero en una plantilla, tales como guardar en disco o
enviar a dispositivo. La pregunta podra ser entonces: Cmo puedo obtener ell nombre o nombres de
gnero ms externo?. Hay una funcin de plantilla de calibre, subtems, que hace esto ms fcil.
Por ejemplo, supongamos que desea agregar el nivel de gnero ms extrerno a la plantilla de guardar en
disco para hacer carpetas de gnero, como Historia/Se cierne la tormenta - Churchill, Winston. Para
conseguirlo, debe extraer el primer nivel de la jerarqua y aadirlo al principio, junto con una barra para
indicar que se debe hacer una carpeta. La siguiente plantilla hace esto:

{#genre:subitems(0,1)||/}{title} - {authors}

Vea El lenguaje de plantillas (pgina 146) para ms informacin sobre las plantillas y la funcin subitems().

1.9.2 Cursillo de XPath

En este cursillo, se presentar una pequea introduccin a XPath75 , un lenguaje de consulta que se puede utilizar para
seleccionar partes arbitrarias de documentos HTML76 en calibre. XPath es un estndar ampliamente utilizado, y una
bsqueda a travs de Google proporcionar gran cantidad de informacin. Este cursillo, sin embargo, se centra en
el uso de XPath para tareas relacionadas con libros electrnicos, como la bsqueda de cabeceras de captulos en un
documento HTML sin estructura.
75 https://es.wikipedia.org/wiki/XPath
76 https://es.wikipedia.org/wiki/HTML

1.9. Cursillos 143


Manual de usuario de calibre, Versin 2.82.0

Contents

Seleccionar por nombre de etiqueta (pgina 144)


Seleccionar por atributos (pgina 144)
Seleccionar por contenido de etiqueta (pgina 145)
Libro electrnico de muestra (pgina 145)
Funciones XPath predefinidas (pgina 145)

Seleccionar por nombre de etiqueta

La forma ms simple de seleccin es seleccionar las etiquetas por su nombre. Por ejemplo, suponga que desea selec-
cionar todas las etiquetas <h2> en un documento. La consulta XPath para esto es simplemente:

//h:h2 (Selects all <h2> tags)

El prefijo // significa buscar en cualquier nivel del documento. Supongamos que desea encontarar las etiquetas
<span> que estn dentro de etiquetas <a>. Esto se puede lograr con:

//h:a/h:span (Selects <span> tags inside <a> tags)

Si quiere buscar etiquetas en un nivel particular del documento, cambie el prefijo:

/h:body/h:div/h:p (Selects <p> tags that are children of <div> tags that are
children of the <body> tag)

Esto coincidir slo con <p>A very short ebook to demonstrate the use of XPath.</p> en Li-
bro electrnico de muestra (pgina 145), pero no con ninguna de las otras etiquetas <p>. El prefijo h: en los ejemplos
anteriores se necesita para encontrar las etiquetas XHTML. Esto se debe a que internamente calibre representa todo
el contenido como XHTML. En XHTML las etiquetas tienen un espacio de nombres, y h: es el prefijo de espacio de
nombrs para las etiquetas HTML.
Ahora supongamos que desea seleccionar ambas etiquetas<h1> y <h2>. Para hacer esto, necesitamos una cons-
truccin XPath llamada predicado. Un predicado es simplemente una comprobacin que se utiliza para seleccionar
etiquetas. Las comprobaciones pueden ser muy potentes y, segn avance este cursillo, ver ejemplos ms sofisticados.
Un predicado se crea encerrando la expresin de comprobacin entre corchetes:

//*[name()='h1' or name()='h2']

Hay varias caractersticas nuevas en esta expresin XPath. La primera es el uso del comodn *. Significa cualquier
etiqueta. Ahora observe la expresin de comprobacin name()='h1' or name()='h2'. name() es un ejemplo
de funcin predefinida. Simplemente evala el nombre de la etiqueta. Por lo tanto, mediante su uso, podemos selec-
cionar etiquetas cuyo nombre sea h1 o h2. Tenga en cuenta que la funcin name() ignora los espacios de nombres de
modo que no hay necesidad del prefijo h:. XPath tiene varias funciones predefinidas. Se presentarn algunas ms en
este cursillo.

Seleccionar por atributos

Para seleccionar etiquetas segn sus atributos, es necesario usar predicados:

144 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

//*[@style] (Select all tags that have a style attribute)


//*[@class="chapter"] (Select all tags that have class="chapter")
//h:h1[@class="bookTitle"] (Select all h1 tags that have class="bookTitle")

Aqu, el operador @ se refiere a los atributos de la etiqueta. Puede utilizar algunas de las XPath built-in functions
(pgina 145) para realizar bsquedas ms sofisticadas en los valores de los atributos.

Seleccionar por contenido de etiqueta

Utilizando XPath, puede incluso seleccionar etiquetas basadas en el texto que contienen. La mejor manera para para
hacer esto es usar el poder de las expresiones regulares a travs la funcin predefinida re:test():

//h:h2[re:test(., 'chapter|section', 'i')] (Selects <h2> tags that contain the words
chapter or

section)

Aqu el operador . se refiere a los contenidos de la etiqueta, igual que el operador @ se refiere a sus atributos.

Libro electrnico de muestra

<html>
<head>
<title>A very short ebook</title>
<meta name="charset" value="utf-8" />
</head>
<body>
<h1 class="bookTitle">A very short ebook</h1>
<p style="text-align:right">Written by Kovid Goyal</p>
<div class="introduction">
<p>A very short ebook to demonstrate the use of XPath.</p>
</div>

<h2 class="chapter">Chapter One</h2>


<p>This is a truly fascinating chapter.</p>

<h2 class="chapter">Chapter Two</h2>


<p>A worthy continuation of a fine tradition.</p>
</body>
</html>

Funciones XPath predefinidas

name() El nombre de la etiqueta actual.


contains() contains(s1, s2) devuelve true si s1 contiene s2.
re:test() re:test(fuente, patrn, opciones) devuelve true si el texto fuente coincide con la expresin
regular patrn. Una opcin particularmente til es i, que hace que no se distinga entre maysculas y minsculas.
Una buena introduccin a la sintaxis de las expresiones regulares se puede encontrar en sintaxis de expresiones
regulares77 (en ingls)
77 https://docs.python.org/2.7/library/re.html

1.9. Cursillos 145


Manual de usuario de calibre, Versin 2.82.0

1.9.3 El lenguaje de plantillas de calibre

El lenguaje de plantillas de calibre se usa en varios lugares. Se usa para controlar la estructura de carpetas y el nombre
del archivo cuando se guardan archivos de la biblioteca de calibre en el disco o en un lector. Tambin se usa para
definir columnas virtuales que contienen datos de otras columnas, etctera.
El lenguaje de plantillas bsico es muy simple pero tambin tiene caractersticas avanzadas muy potentes. La idea
bsica es que una plantilla consiste en texto y nombres entre llaves que se sustituyen por los metadatos correspondientes
del libro que est siendo procesado. As, por ejemplo, la plantilla predeterminada usada para guardar libros en un
dispositivo en calibre es:

{author_sort}/{title}/{title} - {authors}

Para el libro La Fundacin de Isaac Asimov da lugar a:

Asimov, Isaac/The Foundation/The Foundation - Isaac Asimov

Las barras son texto que se ponen en la plantilla donde van a aparecer. Por ejemplo, si la plantilla es:

{author_sort} Some Important Text {title}/{title} - {authors}

Para el libro La Fundacin de Isaac Asimov da lugar a:

Asimov, Isaac Some Important Text The Foundation/The Foundation - Isaac Asimov

Puede usar los distintos campos de metadatos disponibles en calibre en una plantilla, incluidas las columnas perso-
nalizadas que haya creado. Para obtener el nombre de plantilla de una columna, pase el cursor sobre el encabezado
de la columna. Los nombre para los campos personalizados (columnas que haya creado usted) siempre empiezan por
#. Para campos personalizados de tipo serie, siempre hay un campo adicional llamado #nombredeserie_index
que es el ndice de serie para dicha serie. As, si tiene un campo personalizado de serie llamado #miserie, tambin
habr un campo llamado #miserie_index.
Adems de los campos basados en columnas, tambin puede usar:

{formats} - A list of formats available in the calibre library for a book


{identifiers:select(isbn)} - The ISBN number of the book

Si un libro concreto no tiene un determinado metadato, el campo se elimina automticamente de la plantilla para este
libro. Considere, por ejemplo:

{author_sort}/{series}/{title} {series_index}

Si un libro tiene una serie, la plantilla producir:

Asimov, Isaac/Foundation/Second Foundation 3

y si un libro no pertenece a una serie:

Asimov, Isaac/Second Foundation

(calibre elimina automticamente barras mltiples y espacios iniciales o finales).

Formato avanzado

Puede hacerse ms que simples sustituciones con las plantillas. Se puede incluir texto de manera condicional y con-
trolar el formato de los datos sustituidos.

146 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

Primero, incluir texto condicionalmente. Hay casos en los que puede querer que aparezca un texto en la salida slo si
un campo no est vaco. Un caso comn es series y series_index, para los que puede querer o nada o ambos
valores con un guin entre ellos. calibre tiene en cuenta este caso usando una sintaxis de campo especial.
Por ejemplo, supongamos que desea usar la plantilla:

{series} - {series_index} - {title}

Si el libro no tiene serie, la respuesta ser - - title. Mucha gente preferira que el resultado fuera simplemente
title, sin los guiones. Para conseguir esto, use la sintaxis extendida {campo:|prefijo|sufijo}. Cuando
usa esta sintaxis, si el campo tiene el valor SERIE el resultado ser prefijoSERIEsufijo. Si el campo no tiene
ningn valor, el resultado ser un texto vaco (nada); el prefijo y el sufijo se descartan. El prefijo y el sufijo pueden
contener espacios. No use subplantillas ({ ... }) ni funciones (ver ms adelante) como prefijo o sufijo.
Usando esta sintaxis, podemos resolver el problema anterior de las series con esta plantilla:

{series}{series_index:| - | - }{title}

Los guiones se incluirn solamente si el libro tiene ndice de serie, que slo tendr si tiene una serie.
Notas: debe incluir el carcter : si quiere usar un prefijo o un sufijo. Debe usar ambos caracteres | o ninguno; usar
slo no, como en {campo:| - }, no est permitido. Es posible especificar un texto vaco en uno u otro lugar, como
en {series:|| - }. Usar {title:||} es lo mismo que usar {title}.
Segundo: formato. Supongamos que queremos asegurarnos de que series_index siempre tenga tres dgitos, con ceros
a la izquierda. Se conseguira de esta manera:

{series_index:0>3s} - Three digits with leading zeros

Si en lugar de ceros a la izquierda desea espacios, utilice:

{series_index:>3s} - Three digits with leading spaces

Para obtener ceros a la derecha use:

{series_index:0<3s} - Three digits with trailing zeros

Si usa ndices de serie con subvalores (por ejemplo 1,1), puede querer asegurarse de que los decimales quedan alinea-
dos. Por ejemplo, puede que los ndices 1 y 2,5 aparezcan como 01,00 y 02,50 para que se ordenen correctamente.
Para ello, use:

{series_index:0>5.2f} - Five characters, consisting of two digits with leading zeros,


a decimal point, then 2 digits after the decimal point

Si quiere slo las dos primeras letras de los datos, use:

{author_sort:.2} - Only the first two letter of the author sort name

El lenguaje de plantillas de calibre proviene de python, para obtener ms detalles sobre la sintaxis de estas operaciones
de formato avanzadas, vea la documentacin de Python78 (en ingls).

Funciones avanzadas

78 https://docs.python.org/2/library/string.html#format-string-syntax

1.9. Cursillos 147


Manual de usuario de calibre, Versin 2.82.0

Usar plantillas en columnas personalizadas

A veces hay casos en los que quiere mostrar metadatos que calibre no muestra normalmente, o mostrarlos de una
manera diferente. Por ejemplo, puede querer mostrar el ISBN, un campo que calibre no muestra. Puede usar columnas
personalizadas para esto creando una columna de tipo columna generada a partir de otras columnas (en lo sucesivo
llamadas columnas compuestas), e introduciendo una plantilla. calibre mostrar una columna con el resultado de
evaluar la plantilla. Para mostrar el ISBN, cree la columna e introduzca {identifiers:select(isbn)} en
el cuadro de plantilla. Para mostrar una columna que contenga los valores de dos campos personalizados de serie
separados por una coma, use {#serie1:||,}{#serie2}.
Las columnas compuestas pueden utilizar cualquier opcin de plantilla, incluidas las de formato.
No puede cambiar los datos contenidos en una columna compuesta. Si modifica una columna compuesta pulsando dos
veces sobre un elemento, se abrir la plantilla para modificarla, no los datos resultantes. Modificar la plantilla en la
interfaz grfica es una manera rpida de probar y modificar columnas compuestas.

Usar funciones en plantillas: modo de funcin nica

Supongamos que desea mostrar el valor de un campo en maysculas, aunque normalmente el valor del campo tiene
slo las iniciales en mayscula. Puede conseguir esto (y muchas otras cosas) usando las funciones disponibles para
plantillas. Por ejemplo, para mostrar el ttulo en maysculas use {title:uppercase()}. Para mostrarlo con las
iniciales en mayscula use {title:titlecase()}.
Las referencias a funciones aparecen en la parte del formato, despus de : y antes del primer | o del } de cierre. Si
tiene tanto un formato como una referencia de funcin, la funcin despus de otro :. Las funciones siempre deben
acabar con (). Algunas funciones toman valores adicionales (argumentos), y stos van dentro de los ().
Las funciones siempre se aplican antes de las especificaciones de formato. Vase ms abajo un ejemplo de cmo usar
un formato y una funcin, donde se demuestra este orden.
La sintaxis para usar funciones es {campo:funcin(argumentos)} o
{campo:funcin(argumentos)|prefijo|sufijo}. Los argumentos van separados por comas. Las
comas dentro de los argumentos deben ir precedidas por una barra invertida ( \\ ). El ltimo (o nico) argumento
no puede contener un parntesis de cierre ( ) ). Las funciones devuelven el valor del campo usado en la plantilla,
convenientemente modificado.
Importante: Si tiene experiencia en programacin, tenga en cuenta que la sintaxis de este modo (de funcin nica) no
es la que podra esperarse. Los textos van sin comillas. Los espacios son importantes. Todos los argumentos deben ser
constantes; no hay evaluacin interna. No use subplantillas ({...}) como argumentos de funcin. En lugar de ello,
use el modo de programacin de plantilla (pgina 151) y el modo de programacin general (pgina 175).
Muchas funciones usan expresiones regulares. En todos los casos, la expresin regular no distingue entre maysculas
y minsculas.
Las funciones disponibles se enumeran a continuacin. Tenga en cuenta que la documentacin definitiva para las
funciones est disponibles en la seccin Clasificacin de funciones (pgina 156):
lowercase() devuelve el valor del campo en minsculas.
uppercase() devuelve el valor del campo en maysculas.
titlecase() devuelve el valor del campo con las iniciales en mayscula.
capitalize() devuelve el valor con la primera letra mayscula y el resto en minsculas.
contains(patrn, texto_si_coincide, texto_si_no_coincide) comprueba si el campo
contiene coincidencias para la expresin regular patrn. Devuelve texto_si_coincide si se encuentran coinciden-
cias, en caso contrario devuelve texto_si_no_coincide.

148 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

count(separador) interpreta el valor como una lista de elementos separados por separador y devuelve
el nmero de elementos de la lista. La mayora de las listas usan una coma como separador, pero authors usa
un ampersand (&). Ejemplos: {tags:count(,)}, {authors,count(&)}
format_number(plantilla) interpreta el valor como un nmero y le da formato usando una plantilla
de formato de python como {0:5.2f} o {0:,d} o ${0:5,.2f}. El nombre del campo dentro de la plantilla
debe ser un 0 (cero) (el {0: en los ejemplos anteriores). Vase la documentacin del lenguaje de plantillas y
de python para ms ejemplos. Devuelve un texto vaco si el formato falla.
human_readable() espera que el valor sea un nmero y devuelve un texto que representa ese nmero en
KB, MB, GB, etc.
ifempty(texto) si el campo no est vaco, devuelve el valor del campo. En caso contrario devuelve texto.
in_list(separador, patrn, encontrado, no_encontrado) interpreta el campo como una
lista de elementos separados por separador y compara patrn con cada valor de la lista. Si patrn coincide con
alguno de los elementos de la lista, devuelve encontrado, en caso contrario devuelve no_encontrado.
language_codes(nombres) devuelve los cdigos de idioma correspondientes a nombres. Los nom-
bres deben estar en el idioma actual. El argumento nombres es una lista separada por comas.
language_strings(cdigos, localizar) devuelve los nombres de los idiomas identificados por
cdigos. Si localizar es cero, devuelve los nombres en ingls. Si localizar no es cero, devuelve los nombres en
el idioma actual. El argumento cdigos es una lista separada por comas.
list_item(ndice, separador) interpreta el campo como una lista de elementos separados por
separador y devuelve el elemento nmero ndice. El primer elemento es el nmero cero. El ltimo elemento
puede obtenerse con list_item(-1, separador). Si el elemento no est en la lista devuelve un valor
vaco. El separador tiene el mismo significado que en la funcin count.
lookup(patrn, campo, patrn, campo, ..., otro_campo) como switch, pero los ar-
gumentos son nombres de campo (metadatos), no texto. Se usar el valor del campo apropiado. Tenga en cuenta
que puesto que las columnas compuestas son campos, puede usar esta funcin en un campo compuesto para
usar el valor de otro campo compuesto. Esto es muy til para construir rutas de guardado variables (ms sobre
esto ms adelante).
re(patrn, sustitucin) devuelve el campo despus de aplicar la expresin regular. Todas las ve-
ces que aparezca patrn se sustituir por sustitucin. Como en todo calibre, se trata de expresiones regulares
compatibles con python.
select(clave) interpreta el campo como una lista de elementos separados por comas, con los elementos
de la forma id:valor. Encuentra la pareja con id igual a clave y devuelve el valor correspondiente. Esta
funcin es particularmente til para extraer un valor tal como el isbn del conjunto de identificadores de un libro.
shorten(car_izq, texto_medio, car_der) devuelve una versin abreviada del campo, consis-
tente en un nmero car_izq de caracteres del principio del campo, seguidos de texto_medio, seguido de un
nmero car_der de caracteres del final del campo. car_izq y car_der deben ser nmeros enteros. Por ejemplo,
supongamos que el ttulo del libro es Novsima recopilacin de las leyes de Espaa y que quiere que quepa
en un espacio de 15 caracteres a lo sumo. Si usa {title:shorten(9,-,5)}, el resultado ser Novsima
-spaa. Si la longitud del campo es menor que car_izq + car_der + la longitud de texto_medio, se usar el
campo intacto. Por ejemplo, el ttulo La colmena no se cambiar.
str_in_list(val, separador, texto, val_encontrado, val_no_encontrado) con-
sidera val como una lista de elementos separados por separador, y compara el texto con cada valor de
la lista. Si el texto coincide con alguno de los valores, devuelve val_encontrado, en caso contrario devuelve
val_no_encontrado. Si el texto contiene separadores, tambin se considera como una lista y se comprueba
cada elemento.
subitems(val, ndice_inicio, ndice_fin) Esta funcin se usa para separar listas de elemen-
tos jerrquicos de tipo etiqueta, tales como los gneros. Interpreta val como una lista de elementos separados por

1.9. Cursillos 149


Manual de usuario de calibre, Versin 2.82.0

comas, donde cada elemento es a su vez una lista de elementos separados por puntos. Devuelve una nueva lista
formada tomando, de cada lista de elementos separados por puntos, los elementos situados entre las posiciones
ndice_inicio e ndice_fin y combinando los resultados. El primer elemento de cada lista separada por puntos
ocupa la posicin cero. Si un ndice es negativo, se cuenta desde el final de la lista. Como caso especial, si
ndice_fin es cero, se considera que es el final de la lista. Ejemplos:

Assuming a #genre column containing "A.B.C":


{#genre:subitems(0,1)} returns "A"
{#genre:subitems(0,2)} returns "A.B"
{#genre:subitems(1,0)} returns "B.C"
Assuming a #genre column containing "A.B.C, D.E":
{#genre:subitems(0,1)} returns "A, D"
{#genre:subitems(0,2)} returns "A.B, D.E"

sublist(val, ndice_inicio, ndice_fin, separador) interpreta el valor como una lista


de elementos separados por separador y devuelve una nueva lista con los elementos comprendidos entre la
posicin ndice_inicio e ndice_fin. El primer elemento ocupa la posicin cero. Si un ndice es negativo, se
cuenta desde el final de la lista. Como caso especial, si ndice_fin es cero, se considera que es el final de la lista.
Ejemplos suponiendo que la columna de etiquetas (definida como valores separados por comas) contiene A, B,
C:

{tags:sublist(0,1,\,)} returns "A"


{tags:sublist(-1,0,\,)} returns "C"
{tags:sublist(0,-1,\,)} returns "A, B"

swap_around_comma(val) dado un valor de la forma B, A, devuelve A B. Esto es til para convertir


nombres en formato APELLIDO, NOMBRE a NOMBRE APELLIDO. Si no hay ninguna coma, la funcin
devuelve val sin cambios.
switch(patrn, valor, patrn, valor, ..., otro_valor) para cada pareja patrn, va-
lor, comprueba si el campo contiene coincidencias para la expresin regular patrn y, en tal caso, devuelve ese
valor. Si no coincide ningn patrn, devuelve otro_valor. Pueden emplearse tantas parejas patrn, valor como
se desee.
test(texto_si_no_vaco, texto_si_vaco) devuelve texto_si_no_vaco si el campo no est
vaco, devuelve texto_si_vaco en caso contrario.
transliterate() Devuelve un texto en el alfabeto latino formado por aproximacin del sonido de las
palabras en el campo de origen. Por ejemplo, si el campo de origen es a
la funcin devuelve Fiodor Mikhailovich Dostoievskii.
Veamos ahora cmo usar funciones y format en el mismo campo. Supongamos que tiene una columna personalizada
con nmeros enteros llamada #myint, que quiere mostrar con ceros a la izquierda, como en 003. Para conseguirlo
usara un formato de 0>3s. Sin embargo, de manera predeterminada, si un nmero (entero o decimal) es igual a cero,
el campo produce un valor vaco, as que el valor cero no produce nada, no 000. Si realmente quiere ver los valores
como 000, debe usar el texto de formato y la funcin ifempty para cambiar el valor vaco a cero de nuevo, la
referencia al campo sera:

{#myint:0>3s:ifempty(0)}

Tenga en cuenta que puede usar tambin prefijo y sufijo. Si desea que el nmero aparezca como [003] o [000], use
el campo:

{#myint:0>3s:ifempty(0)|[|]}

150 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

Usar funciones en plantillas: modo de programacin de plantilla

El modo de programacin de lenguaje de plantillas se diferencia del modo de funcin nica en que le permite es-
cribir expresiones de plantilla que se refieren a otros campos de metadatos, modifican valores y realizan operaciones
aritmticas. Es un lenguaje de programacin razonablemente completo.
Puede usar las funciones documentadas anteriormente en modo de programacin de plantilla. Vase ms adelante para
ms detalles.
Para empezar con un ejemplo, supongamos que quiere una plantilla que muestre la serie de un libro si la tiene, y en
caso contrario muestre el valor del campo personalizado #genre. Esto no se puede hacer en el modo bsico, porque
no se puede hacer referencia a otro campo en la expresin de la plantilla. En el modo de programacin s se puede. La
siguiente expresin funciona:

{#series:'ifempty($, field('#genre'))'}

El ejemplo muestra varias cosas:


el modo de programa se usa si la expresin empieza por :' y termina por '. Cualquier otra cosa se supone que
es una sola funcin.
la variable $ representa el campo sobre el que opera la expresin, #series en este caso.
las funciones deben llevar todos sus argumentos. No hay valores predeterminados. Por ejemplo, las funciones
estndar predefinidas deben tener un parmetro inicial que indique el campo de origen, lo que es una diferencia
importante con respecto al modo de funcin nica.
los espacios en blanco se ignoran y se pueden utilizar en cualquier lugar dentro de la expresin.
los textos constantes se encierran en comillas del mismo tipo, ya sea ' o ".
El lenguaje es parecido a los lenguajes funcionales, en tanto que se construye casi nicamente a base de funciones.
Una sentencia es una funcin. Una expresin es una funcin. Las constantes e identificadores pueden interpretarse
como funciones que devuelven el valor indicado por la constante o almacenado en el identificador.
La sintaxis del lenguaje se muestra en la siguiente gramtica:

constant ::= " string " | ' string ' | number


identifier ::= sequence of letters or ``_`` characters
function ::= identifier ( statement [ , statement ]* )
expression ::= identifier | constant | function | assignment
assignment ::= identifier '=' expression
statement ::= expression [ ; expression ]*
program ::= statement

Los comentarios son lneas que empiezan por un carcter #.


Una expresin siempre tiene un valor, ya sea el valor de la constante, el valor contenido en el identificador o el valor
devuelto por una funcin. El valor de una sentencia es el valor de la ltima expresin de la secuencia de sentencias.
As, el valor del siguiente programa (sentencia):

1; 2; 'foobar'; 3

es 3.
Otro ejemplo de un programa complejo pero ms bien tonto podra ayudar a aclarar las cosas:

{series_index:'
substr(
strcat($, '->',
cmp(divide($, 2), 1,

1.9. Cursillos 151


Manual de usuario de calibre, Versin 2.82.0

assign(c, 1); substr('lt123', c, 0),


'eq', 'gt')),
0, 6)
'| prefix | suffix}

Este programa hace lo siguiente:


especifica que el campo que se examina es series_index. Esto establece el valor de la variable $.
ejecuta la funcin substr, que toma 3 argumentos (texto, inicio, fin). Devuelve un texto formado
extrayendo los caracteres entre inicio y fin de texto (el primer carcter es el nmero cero). En este caso, el texto
se calcula mediante la funcin strcat, inicio es 0 y fin es 6. En este caso, devolver los primeros 6 caracteres
del texto devuelto por strcat, que debe evaluarse antes de que substr pueda finalizar.
ejecuta la funcin strcat (concatenacin de textos). strcat acepta 1 o ms argumentos, y devuelve un texto
formado por la concatenacin de todos los valores. En este caso hay tres argumentos. El primer argumento es el
valor en $, que aqu es el valor de series_index. El segundo parmetro es el texto constante '->'. El tercer
parmetro es el valor devuelto por la funcin cmp, que debe evaluarse completamente antes de que strcat
pueda finalizar.
La funcin cmp toma 5 argumentos (x, y, mn, ig, my). Compara x e y y devuelve el tercer argumento,
mn si x < y, el cuarto argumento, ig, si x = y, y el quinto argumento, my, si x > y. Como en todas las funciones,
todos los parmetros pueden ser sentencias. En este caso el primer parmetro (el valor de x) es el resultado
de dividir series_index entre 2. El segundo parmetro, y, es la constante 1. El tercer parmetro, mn es
una sentencia (volveremos a l ms adelante). El cuarto parmetro, ig, es el texto constante 'eq'. El quinto
parmetro es el texto constante 'gt'.
El tercer parmetro (el de mn) es una sentencia, o una sequencia de expresiones. Recuerde que una sentencia
(una sentencia de expresiones separadas por punto y coma) tambin es una expresin, que devuelve el valor de
la ltima expresin de la lista. En este caso, el programa primero asigna el valor 1 a la variable local c, despus
devuelve un subtexto creado extrayendo desde el carcter nmero c hasta el final. Puesto que c siempre contiene
la constante 1, el subtexto devolver los caracteres desde el segundo hasta el final, o 't123'.
Una vez que se ejecuta la sentencia que proporciona un valor para el tercer parmetro, cmp puede devolver
un valor. En este punto, strcat puede devolver un valor, y substr puede devolver un valor. Entonces el
programa finaliza.
Para distintos valores de series_index, el programa devuelve:
series_index == undefined, resultado = prefix ->t123 suffix
series_index == 0.5, resultado = prefix 0.50-> suffix
series_index == 1, resultado = prefix 1->t12 suffix
series_index == 2, resultado = prefix 2->eq suffix
series_index == 3, resultado = prefix 3->gt suffix
Todas las funciones mostradas en el modo de funcin nica puede usarse en el modo de programacin. Para
ello debe proporcionar el valor sobre el que actuar la funcin como primer parmetro, adems de los parmetros
documentados anteriormente. Por ejemplo, en el modo de programacin los parmetros de la funcin test son
test(x, texto_si_no_vaco, texto_si_vaco). El parmetro x, que es el valor que se comprueba,
casi siempre ser una variable o una llamada una funcin, a menudo field().
Las siguientes funciones estn disponibles, adems de las descritas en el modo de funcin nica. Recuerde del ejemplo
anterior que las funciones del modo de funcin nica requieren un primer parmetro adicional que especifique el
campo sobre el que se opera. Excepto el parmetro id de assign, todos los parmetros pueden ser sentencias
(secuencias de expresiones). Tenga en cuenta que la documentacin definitiva de las funciones est disponible en la
seccin Clasificacin de funciones (pgina 156):

152 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

and(valor, valor, ...) devuelve el texto 1 si todos los valores son no vacos, en caso contrario
devuelve un texto vaco. Esta funcin opera bien con test o first_non_empty. Pueden usarse tantos
valores como se desee.
add(x, y) devuelve x + y. Da un error si x o y no son nmeros.
assign(id, val) asigna val a id y devuelve val. id debe ser un identificador, no una expresin
approximate_formats() devuelve una lista separada por comas de formatos que en algn mo-
mento estuvieron asociados con el libro. No hay garanta de que esta lista sea correcta, aunque probable-
mente lo sea. Esta funcin puede ejecutarse en el modo de programacin de plantillas usando la plantilla
{:'approximate_formats()'}. Tenga en cuenta que los nombres de formato estn siempre en mays-
culas, como en EPUB.
author_links(sep_val, sep_par) devuelve un texto que contiene una lista de autores y en-
laces de autores de la forma: autor1 sep_val enlace_autor1 sep_par autor2 sep_val
enlace_autor2 etc. Cada autor est separado de su correspondiente enlace por el texto sep_val, sin espacios
adicionales. Los pares autor:enlace_autor estn separados por el texto sep_par, sin espacios adicionales.
Es responsabilidad del usuario proporcionar separadores que no aparezcan en los nombres o enlaces de autor.
El nombre de autor se incluye aunque su enlace est vaco.
author_sorts(separador) devuelve un texto que contiene la lista de valores de orden de autor para los
autores del libro. El orden de autor es el que figura en los metadatos de autores (diferente del valor de orden de
autor del libro). La lista devuelta es de la forma orden_de_autor_1 separador orden_de_autor_2
etc. Los valores de orden de autor en la lista estn en el mismo orden que los autores del libro. Si quiere espacios
alrededor de separador, inclyalos en el valor.
booksize() devuelve el valor del campo tamao de calibre. Devuelve si no hay formatos.
cmp(x, y, mn, ig, my) compara x e y despus de convertirlas en nmeros. Devuelve mn si x < y.
Devuelve ig si x == y. Devuelve my en otros casos.
current_library_name() devuelve la ltima parte de la ruta a la biblioteca de calibre ac-
tual. Esta funcin puede llamarse en el modo de programacin de plantilla usando la plantilla
{:'current_library_name()'}.
current_library_path() devuelve la ruta a la biblioteca de calibre actual. Esta funcin puede usarse
en el modo de programacin de plantillas utilizando la plantilla {:'current_library_path()'}.
days_between(fecha1, fecha2) devuelve el nmero de das entre fecha1 y fecha2. El nmero es
positivo si fecha1 es posterior a fecha2, en caso contrario es negativo. Si fecha1 o fecha2 no son fechas, la
funcin devuelve un texto vaco.
divide(x, y) devuelve x / y. Da un error si x o y no son nmeros.
eval(texto) evala texto como un programa, pasando las variables locales (las definidas con assign).
Esto permite usar el procesador de plantillas para elaborar resultados complejos a partir de variables locales.
Dado que los caracteres { y } tienen un uso especial, debe usarse [[ en lugar de { y ]] para }; se convertirn
automticamente. Tenga en cuenta que los prefijos y sufijos (la sintaxis |prefijo|sufijo|) no puede usarse
en el argumento de esta funcin en el modo de programacin de plantilla.
field(nombre) devuelve el campo de metadatos identificado por nombre.
first_matching_cmp(val, cmp1, resultado1, cmp2, resultado2, ...,
otro_resultado) compara val < cmpN consecutivamente y devuelve resultadoN para la prime-
ra comparacin que sea cierta. Devuelve otro_resultado si ninguna comparacin es cierta. Ejemplo:

first_matching_cmp(10,5,"small",10,"middle",15,"large","giant")

devuelve large. El mismo ejemplo con un primer valor de 16 devuelve giant.

1.9. Cursillos 153


Manual de usuario de calibre, Versin 2.82.0

first_non_empty(valor, valor, ...) devuelve el primer valor que no est vaco. Si todos los
valores estn vacos, se devuelve tambin un valor vaco. Puede incluir tantos valores como quiera.
format_date(val, formato_fecha) da formato a un valor, que debe ser un campo de fecha, segn
formato_fecha y devuelve un texto. Los cdigos de formato son:
d : the day as number without a leading zero (1 to 31)
dd : the day as number with a leading zero (01 to 31)
ddd : the abbreviated localized day name (e.g. "Mon" to "Sun").
dddd : the long localized day name (e.g. "Monday" to "Sunday").
M : the month as number without a leading zero (1 to 12).
MM : the month as number with a leading zero (01 to 12)
MMM : the abbreviated localized month name (e.g. "Jan" to "Dec").
MMMM : the long localized month name (e.g. "January" to "December").
yy : the year as two digit number (00 to 99).
yyyy : the year as four digit number.
h : the hours without a leading 0 (0 to 11 or 0 to 23, depending on am/pm)
hh : the hours with a leading 0 (00 to 11 or 00 to 23, depending on am/pm)
m : the minutes without a leading 0 (0 to 59)
mm : the minutes with a leading 0 (00 to 59)
s : the seconds without a leading 0 (0 to 59)
ss : the seconds with a leading 0 (00 to 59)
ap : use a 12-hour clock instead of a 24-hour clock, with 'ap' replaced by the
localized string for am or pm.

AP : use a 12-hour clock instead of a 24-hour clock, with 'AP' replaced by the
localized string for AM or PM.

iso : the date with time and timezone. Must be the only format present.

Puede obtener resultados inesperados si la fecha a la que se da formato contiene nombres de meses traducidos,
lo que puede ocurrir si ha modificado los ajustes de formato para incluir MMMM. En este caso, en lugar de usar
algo como {pubdate:format_date(yyyy)}, escriba la plantilla usando el modo de programacin de
plantillas, como en {:'format_date(raw_field('pubdate'),'yyyy')'}.
finish_formatting(val, formato, prefijo, sufijo) aplica el formato, prefijo y sufijo a
un valor de la misma manera que se hara en una plantilla como {series_index:05.2f| - |- }. Esta
funcin se proporciona para facilitar la conversin de plantillas complejas en modo de funcin nica o de
plantilla al modo de programacin general (pgina 175) (ver ms adelante) y aprovechar la compilacin de
plantillas. Por ejemplo, el siguiente programa produce la misma salida que la plantilla anterior:
program: finish_formatting(field("series_index"), "05.2f", " - ", " - ")

Otro ejemplo: para la plantilla {series:re(([^\s])[^\s]+(\s|$),\1)}{series_index:0>2s|


- | - }{title} use:
program:
strcat(
re(field('series'), '([^\s])[^\s]+(\s|$)', '\1'),
finish_formatting(field('series_index'), '0>2s', ' - ', ' - '),
field('title')
)

formats_modtimes(formato_fecha) devuelve una lista de elementos (separados por dos puntos) separados por
comas que representa las fechas de modificacin para los formatos de un libro. El argumento formato_fecha es-
pecifica cmo se da formato a la fecha. Vase la funcin format_date para ms detalles. Puede usar la funcin
select para obtener la fecha de modificacin de un formato especfico. Tenga en cuenta que los nombres de
formato siempre estn en maysculas, como en EPUB.
formats_paths() devuelve una lista separada por comas de elementos separados por dos puntos que
representan la ruta completa a los formatos de un libro. Puede usar la funcin select para obtener la ruta a

154 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

un formato especfico. Tenga en cuenta que los nombres de formato estn siempre en maysculas, como en
EPUB.
formats_sizes() devuelve una lista de elementos (separados por dos puntos) separados por comas que
representa los tamaos en bytes de los formatos de un libro. Puede usar la funcin select para obtener el
tamao de un formato especfico. Tenga en cuenta que los nombres de formato siempre estn en maysculas,
como en EPUB.
has_cover() devuelve Yes si el libro tiene portada, en caso contrario devuelve un texto vaco.
not(valor) devuelve el texto 1 si el valor est vaco, en caso contrario, devuelve un texto vaco. Esta
funcin opera bien con test o first_non_empty.
list_difference(lista1, lista2, separador) devuelve una lista construida eliminando de
lista1 cualquier elemento que aparezca en lista2, sin distinguir maysculas y minsculas. Los elementos de
lista1 y lista2 estn separados por separador, as como los de la lista resultante.
list_equals(lista1, sep1, lista2, sep2, val_s, val_no) devuelve val_s si lista1 y
lista2 contienen los mismos elementos, en caso contrario devuelve val_no. Los elementos se determinan di-
vidiendo cada lista por el correspondiente carcter separador (sep1 o sep2). El orden de los elementos no es
relevante. La comparacin no diferencia maysculas y minsculas.
list_intersection(lista1, lista2, separador) devuelve una lista construida eliminando
de lista1 cualquier elemento que no aparezca en lista2, sin distinguir maysculas y minsculas. Los elementos
de lista1 y lista2 estn separados por separador, as como los de la lista resultante.
list_re(lista_orig, separador, incluir, sust_opc) construye una lista separando pri-
mero lista_orig en elementos usando el carcter separador. Para cada elemento en la lista, comprueba si coin-
cide con la expresin regular incluir. Si coincide, se aade a la lista final. Si sust_opc no es un texto vaco, se
aplica la sustitucin antes de aadir el elemento a la lista final.
list_re_group(lista_orig, separador, incluir, bsqueda, plantilla_grupo_1,
plantilla_grupo_2, ...) como list_re, pero las sustituciones no son opcionales. Usa
re_group(elemento, bsqueda, plantilla_grupo_1, ...) para hacer sustituciones..
list_sort(lista, direccin, separador) devuelve lista ordenada sin distincin de mayscu-
las y minsculas. Si direccin es cero, la lista se ordena de manera ascendente, en caso contrario, de manera
descendente. Los elementos de lista estn separados por separador, as como los de la lista resultante.
list_union(lista1, lista2, separador) devuelve una lista construida por combinacin de los
elementos en lista1 y lista2, eliminando los duplicados de lista2 (no distingue maysculas y minsculas, se
mantiene la versin de lista1). Los elementos de lista1 y lista2 estn separados por separador, as como los de
la lista resultante.
multiply(x, y) devuelve x * y. Da una excepcin si x o y no son nmeros.
ondevice() devuelve el texto Yes si ondevice est activado, si no, devuelve un texto vaco
or(valor, valor, ...) devuelve el texto 1 si alguno de los valores no est vaco, en caso contrario
devuelve un texto vaco. Esta funcin opera bien con test o first_non_empty. Pueden usarse tantos
valores como se desee.
print(a, b, ...) escribe los argumentos en la salida estndar. Slo ser visible si inicia calibre a partir
de lnea de rdenes (calibre-debug -g).
raw_field(name) devuelve el campo de metadatos llamado nombre sin aplicar ningn formato.
raw_list(nombre, separador) devuelve la lista de metadatos nombrada por nombre sin aplicar nin-
gn formato u ordenacin, con los elementos separados por separador.
re_group(val, patrn, plantilla_para_grupo_1, para_grupo_2, ...) devuelve un
texto formado por aplicacin de la expresin regular patrn al valor val, sustituyendo cada coincidencia por

1.9. Cursillos 155


Manual de usuario de calibre, Versin 2.82.0

el texto calculado al sustituir cada grupo por el valor devuelto por la correspondiente plantilla. El valor de
correspondencia original del grupo est disponible como $. En el modo de programacin de plantillas, como
en las funciones template y eval, use [[ en lugar de { y ]] en lugar de }. El siguiente ejemplo en modo
de programacin de plantillas busca nombres de serie con ms de una palabra y pone la primera palabra en
maysculas:

{series:'re_group($, "(\S* )(.*)", "[[$:uppercase()]]", "[[$]]")'}

series_sort() devuelve el valor de orden de serie.


strcat(a, b, ...) puede tomar cualquier nmero de argumentos. Devuelve texto formado por la con-
catenacin de todos los argumentos.
strcat_max(mx, texto1, prefijo2, texto2, ...) devuelve un texto formado por concate-
nacin de los argumentos. El valor devuelto es inicialmente texto1. Se van aadiendo parejas prefijo, texto al
final del valor mientras la longitud del resultado sea menor que mx. El resultado es siempre al menos texto1,
aunque su longitud sea mayor que mx. Pueden especificarse tantas parejas prefijo, texto como se desee.
strcmp(x, y, mn, ig, my) hace una comparacin sin distincin de maysculas y minsculas entre x
e y como textos. Devuelve mn si x < y. Devuelve ig si x == y. Devuelve my en otros casos.
strlen(a) Devuelve la longitud del texto pasado como argumento.
substr(texto, inicio, fin) devuelve los caracteres entre la posicin inicio y fin de texto. El primer
carcter de texto est en la posicin cero. Si fin es negativo, entonces indica la posicin contando desde la
derecha. Si fin es cero, indica el ltimo carcter. Por ejemplo, substr('12345', 1, 0) devuelve 2345,
y substr('12345', 1, -1) devuelve 234.
subtract(x, y) devuelve x - y. Da un error si x o y no son nmeros.
today() devuelve un texto para la fecha de hoy. Este valor est preparado para usarse con format_date
o days_between, pero puede manipularse como cualquier otro texto. La fecha est en formato ISO.
template(x) evala x como una plantilla. La evaluacin se realiza en un contexto propio, lo que significa
que las variables no se comparten entre el proceso que llama a la funcin y la evaluacin de la plantilla. Dado que
los caracteres { y } tienen un uso especial, debe usar [[ en lugar de { y ]] para }; se convertirn automticamen-
te. Por ejemplo, template('[[orden_de_ttulo]]') evaluar la plantilla {orden_de_ttulo} y
devolver su valor. Tenga en cuenta que los prefijos y sufijos (la sintaxis |prefijo|sufijo) no puede usarse en el
argumento de esta funcin en el modo de programacin de plantilla.

Clasificacin de funciones

Reference for all built-in template language functions

Here, we document all the built-in functions available in the calibre template language. Every function is implemented
as a class in python and you can click the source links to see the source code, in case the documentation is insufficient.
The functions are arranged in logical groups by type.

Arithmetic (pgina 159)


add(x, y) (pgina 159)
divide(x, y) (pgina 159)
multiply(x, y) (pgina 159)
subtract(x, y) (pgina 159)

156 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

Boolean (pgina 159)


and(valor, valor, ...) (pgina 160)
not(valor) (pgina 160)
or(valor, valor, ...) (pgina 160)
Date functions (pgina 160)
days_between(fecha1, fecha2) (pgina 160)
today() (pgina 160)
Formatting values (pgina 160)
finish_formatting(val, fmt, prefijo, sufijo) (pgina 160)
format_date(val, texto_formato) (pgina 160)
format_number(v, plantilla) (pgina 161)
human_readabe(v) (pgina 161)
Get values from metadata (pgina 161)
approximate_formats() (pgina 161)
author_links(sep_val, sep_par) (pgina 161)
author_sorts(separador) (pgina 162)
booksize() (pgina 162)
current_library_name() (pgina 162)
current_library_path() (pgina 162)
field(nombre) (pgina 162)
formats_modtimes(formato_fecha) (pgina 162)
formats_paths() (pgina 162)
formats_sizes() (pgina 163)
has_cover() (pgina 163)
language_codes(nombres) (pgina 163)
language_strings(cdigos, localizar) (pgina 163)
ondevice() (pgina 163)
raw_field(nombre) (pgina 163)
raw_list(nombre, separador) (pgina 163)
series_sort() (pgina 164)
user_categories() (pgina 164)
virtual_libraries() (pgina 164)
If-then-else (pgina 164)
contains(val, patrn, texto_si_coincide, texto_si_no_coincide) (pgina 164)
ifempty(val, texto_si_vaco) (pgina 164)

1.9. Cursillos 157


Manual de usuario de calibre, Versin 2.82.0

test(val, texto_si_no_vaco, texto_si_vaco) (pgina 164)


Iterating over values (pgina 164)
first_non_empty(valor, valor, ...) (pgina 165)
lookup(val, patrn, campo, patrn, campo, ..., otro_campo) (pgina 165)
switch(val, patrn, valor, patrn, valor, ..., otro_valor) (pgina 165)
List lookup (pgina 165)
identifier_in_list(val, id, val_encontrado, val_no_encontrado) (pgina 165)
in_list(val, separador, patrn, encontrado, no_encontrado) (pgina 165)
list_item(val, ndice, separador) (pgina 165)
select(val, clave) (pgina 166)
str_in_list(val, separador, texto, val_encontrado, val_no_encontrado) (pgina 166)
List manipulation (pgina 166)
count(val, separador) (pgina 166)
list_difference(lista1, lista2, separador) (pgina 166)
list_equals(lista1, sep1, lista2, sep2, val_s, val_no) (pgina 166)
list_intersection(lista1, lista2, separador) (pgina 166)
list_re(lista_orig, separador, incluir, sust_opc) (pgina 167)
list_re_group(lista_orig, separador, incluir, bsqueda, plantilla_grupo_1, ...) (pgina 167)
list_sort(lista, direccin, separador) (pgina 167)
list_union(lista1, lista2, separador) (pgina 167)
subitems(val, ndice_inicio, ndice_fin) (pgina 167)
sublist(val, ndice_inicio, ndice_fin, separador) (pgina 167)
Other (pgina 168)
assign(id, val) (pgina 168)
print(a, b, ...) (pgina 168)
Recursion (pgina 168)
eval(plantilla) (pgina 168)
template(x) (pgina 168)
Relational (pgina 168)
cmp(x, y, mn, ig, my) (pgina 168)
first_matching_cmp(val, cmp1, resultado1, cmp2, resultado2, ..., otro_resultado) (pgina 169)
strcmp(x, y, mn, ig, my) (pgina 169)
String case changes (pgina 169)
capitalize(val) (pgina 169)
lowercase(val) (pgina 169)

158 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

titlecase(val) (pgina 169)


uppercase(val) (pgina 169)
String manipulation (pgina 169)
re(val, patrn, sustitucin) (pgina 169)
re_group(val, patrn, plantilla_para_grupo_1, para_grupo_2, ...) (pgina 170)
shorten(val, car_izq, texto_medio, car_der) (pgina 170)
strcat(a, b, ...) (pgina 170)
strcat_max(mx, texto1, prefijo2, texto2, ...) (pgina 170)
strlen(a) (pgina 170)
substr(texto, inicio, fin) (pgina 170)
swap_around_comma(val) (pgina 171)
transliterate(a) (pgina 171)
API of the Metadata objects (pgina 171)

Arithmetic

add(x, y)

class calibre.utils.formatter_functions.BuiltinAdd
add(x, y) devuelve x + y. Da un error si x o y no son nmeros.

divide(x, y)

class calibre.utils.formatter_functions.BuiltinDivide
divide(x, y) devuelve x / y. Da un error si x o y no son nmeros.

multiply(x, y)

class calibre.utils.formatter_functions.BuiltinMultiply
multiply(x, y) devuelve x * y. Da un error si x o y no son nmeros.

subtract(x, y)

class calibre.utils.formatter_functions.BuiltinSubtract
subtract(x, y) devuelve x - y. Da un error si x o y no son nmeros.

Boolean

1.9. Cursillos 159


Manual de usuario de calibre, Versin 2.82.0

and(valor, valor, ...)

class calibre.utils.formatter_functions.BuiltinAnd
and(valor, valor, ...) devuelve el texto 1 si ninguno de los valores est vaco, en caso contrario, devuelve un
texto vaco. Esta funcin funciona bien con first_non_empty. Puede incluir tantos valores como quiera.

not(valor)

class calibre.utils.formatter_functions.BuiltinNot
not(valor) devuelve el texto 1 si el valor est vaco, en caso contrario, devuelve un texto vaco. Esta funcin
opera bien con test o first_non_empty.

or(valor, valor, ...)

class calibre.utils.formatter_functions.BuiltinOr
or(valor, valor, ...) devuelve el texto 1 si alguno de los valores no est vaco, en caso contrario, devuelve un
texto vaco. Esta funcin funciona bien con first_non_empty. Puede incluir tantos valores como quiera.

Date functions

days_between(fecha1, fecha2)

class calibre.utils.formatter_functions.BuiltinDaysBetween
days_between(fecha1, fecha2) devuelve el nmero de das entre fecha1 y fecha2. El nmero es positivo
si fecha1 es posterior a fecha2, en caso contrario es negativo. Si fecha1 o fecha2 no son fechas, la
funcin devuelve un texto vaco.

today()

class calibre.utils.formatter_functions.BuiltinToday
today() devuelve un texto para la fecha de hoy. Este valor est preparado para usarse con format_date o
days_between, pero puede manipularse como cualquier otro texto. La fecha est en formato ISO.

Formatting values

finish_formatting(val, fmt, prefijo, sufijo)

class calibre.utils.formatter_functions.BuiltinFinishFormatting
finish_formatting(val, fmt, prefijo, sufijo) aplica el formato, prefijo y sufijo a un valor de la misma manera
que se hara en una plantilla como {series_index:05.2f| - |- }. Por ejemplo, el siguiente programa produce la
misma salida que la plantilla anterior: program: finish_formatting(field(series_index), 05.2f, - , - )

format_date(val, texto_formato)

class calibre.utils.formatter_functions.BuiltinFormatDate
format_date(val, texto_formato) da formato a un valor, que debe ser un campo de fecha, segn texto_formato
y devuelve un texto. Los cdigos de formato son: d: el da como un nmero, sin cero inicial (de 1 a 31). dd:

160 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

el da como un nmero, con un cero inicial si es necesario (de 01 a 31). ddd: el da de la semana abreviado
segn el idioma local (p. ej. de lun a dom). dddd: el nombre local completo del da de la semana (p. ej.
de lunes a domingo). M: el mes como un nmero sin cero inicial (de 1 a 12). MM: el mes como un
nmero, con un cero inicial si es necesario (de 01 a 12). MMM: el mes abreviado segn el idioma local (p.
ej. de ene a dic). MMMM: el nombre local completo del mes (p. ej. de enero a diciembre). yy: el
ao como un nmero de dos cifras (de 00 a 99). yyyy: el ao como un nmero de cuatro cifras. h: la hora
sin cero inicial (de 0 a 11 o de 0 a 23, segn am/pm). hh: la hora con un cero inicial si es necesario (de 00 a
11 o de 00 a 23, segn am/pm). m: los minutos sin cero inicial (de 0 a 59). mm: los minutos con un cero
inicial si es necesaro (de 00 a 59). s: los segundos sin cero inicial (de 0 a 59). ss: los segundos con un cero
inicial si es necesario (de 00 a 59). ap: se escribe la hora en formato de 12 horas en lugar de 24, con ap
sustituido por la forma local para am o pm. AP: se escribe la hora en formato de 12 horas en lugar de 24, con
AP sustituido por la forma local para AM o PM. iso: la fecha con hora y zona horaria. Debe ser el nico
formato presente.

format_number(v, plantilla)

class calibre.utils.formatter_functions.BuiltinFormatNumber
format_number(v, plantilla) da formato al nmero v usando una plantilla de formato de python como
{0:5.2f} o {0:,d} o ${0:5,.2f}. El nombre del campo dentro de la plantilla debe ser un 0 (cero) (el {0:
en los ejemplos anteriores). Vase la documentacin del lenguaje de plantillas y de python para ms ejemplos.
Devuelve un texto vaco si el formato falla.

human_readabe(v)

class calibre.utils.formatter_functions.BuiltinHumanReadable
human_readabe(v) devuelve un texto que representa el nmero v en KB, MB, GB, etc.

Get values from metadata

approximate_formats()

class calibre.utils.formatter_functions.BuiltinApproximateFormats
approximate_formats() devuelve una lista separada por comas de formatos que en algn momento estuvieron
asociados con el libro. No hay garanta de que esta lista sea correcta, aunque probablemente lo sea. Esta funcin
puede ejecutarse en el modo de programacin de plantillas usando la plantilla {:approximate_formats()}.
Tenga en cuenta que los nombres de formato estn siempre en maysculas, como en EPUB. Esta funcin
funciona slo en la interfaz grfica. Si quiere usar estos valores en las plantillas para guardar en el disco o enviar
al dispositivo, debe crear una columna personalizada de tipo Columna generada a partir de otras columnas,
usar la funcin en la plantilla de dicha columna y usar el valor de la columna en las plantillas para guardar o
enviar

author_links(sep_val, sep_par)

class calibre.utils.formatter_functions.BuiltinAuthorLinks
author_links(sep_val, sep_par) devuelve un texto que contiene una lista de autores y enlaces a los autores de
la forma: autor1 sep_val enlace_autor1 sep_par autor2 sep_val enlace_autor2 etc. Cada autor est separado
de su correspondiente enlace por el texto sep_val, sin espacios adicionales. Los pares autor:enlace_autor
estn separados por el texto sep_par, sin espacios adicionales. Es responsabilidad del usuario proporcionar
separadores que no aparezcan en los nombres o enlaces de autor. El nombre de autor se incluye aunque su enlace
est vaco.

1.9. Cursillos 161


Manual de usuario de calibre, Versin 2.82.0

author_sorts(separador)

class calibre.utils.formatter_functions.BuiltinAuthorSorts
author_sorts(separador) devuelve un texto que contiene la lista de valores de orden de autor para los autores
del libro. El orden de autor es el que figura en los metadatos de autores (diferente del valor de orden de autor
del libro). La lista devuelta es de la forma orden_de_autor_1 separador orden_de_autor_2 etc. Los valores de
orden de autor en la lista estn en el mismo orden que los autores del libro. Si quiere espacios alrededor de
separador, inclyalos en el valor.

booksize()

class calibre.utils.formatter_functions.BuiltinBooksize
booksize() devuelve el valor del campo de tamao. Esta funcin funciona slo en la interfaz grfica. Si quiere
usar estos valores en las plantillas para guardar en el disco o enviar al dispositivo, debe crear una columna
personalizada de tipo Columna generada a partir de otras columnas, usar la funcin en la plantilla de dicha
columna y usar el valor de la columna en las plantillas para guardar o enviar

current_library_name()

class calibre.utils.formatter_functions.BuiltinCurrentLibraryName
current_library_name() devuelve la ltima parte de la ruta a la biblioteca de calibre actual. Esta funcin puede
llamarse en el modo de programacin de plantilla usando la plantilla {:current_library_name()}.

current_library_path()

class calibre.utils.formatter_functions.BuiltinCurrentLibraryPath
current_library_path() devuelve la ruta a la biblioteca de calibre actual. Esta funcin puede usarse en el modo
de programacin de plantillas utilizando la plantilla {:current_library_path()}.

field(nombre)

class calibre.utils.formatter_functions.BuiltinField
field(nombre) devuelve el campo de metadatos identificado por nombre.

formats_modtimes(formato_fecha)

class calibre.utils.formatter_functions.BuiltinFormatsModtimes
formats_modtimes(formato_fecha) devuelve una lista de elementos (separados por dos puntos) separados por
comas que representa las fechas de modificacin para los formatos de un libro. El argumento formato_fecha
especifica cmo se da formato a la fecha. Vase la funcin format_date para ms detalles. Puede usar la fun-
cin select para obtener la fecha de modificacin de un formato especfico. Tenga en cuenta que los nombres
de formato siempre estn en maysculas, como en EPUB.

formats_paths()

class calibre.utils.formatter_functions.BuiltinFormatsPaths
formats_paths() devuelve una lista separada por comas de elementos separados por dos puntos que representan

162 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

la ruta completa a los formatos de un libro. Puede usar la funcin select para obtener la ruta a un formato
especfico. Tenga en cuenta que los nombres de formato estn siempre en maysculas, como en EPUB.

formats_sizes()

class calibre.utils.formatter_functions.BuiltinFormatsSizes
formats_sizes() devuelve una lista de elementos (separados por dos puntos) separados por comas que repre-
senta los tamaos en bytes de los formatos de un libro. Puede usar la funcin select para obtener el tamao
de un formato especfico. Tenga en cuenta que los nombres de formato siempre estn en maysculas, como en
EPUB.

has_cover()

class calibre.utils.formatter_functions.BuiltinHasCover
has_cover() devuelve Yes si el libro tiene portada, en caso contrario devuelve un texto vaco.

language_codes(nombres)

class calibre.utils.formatter_functions.BuiltinLanguageCodes
language_codes(nombres) devuelve los cdigos de idioma correspondientes a nombres. Los nombres deben
estar en el idioma actual. El argumento nombres es una lista separada por comas.

language_strings(cdigos, localizar)

class calibre.utils.formatter_functions.BuiltinLanguageStrings
language_strings(cdigos, localizar) devuelve los nombres de los idiomas identificados por cdigos. Si
localizar es cero, devuelve los nombres en ingls. Si localizar no es cero, devuelve los nombres en el
idioma actual. El argumento cdigos es una lista separada por comas.

ondevice()

class calibre.utils.formatter_functions.BuiltinOndevice
ondevice() devuelve Yes si ondevice est activado, si no, devuelve un texto vaco. Esta funcin funciona slo
en la interfaz grfica. Si quiere usar estos valores en las plantillas para guardar en el disco o enviar al dispositivo,
debe crear una columna personalizada de tipo Columna generada a partir de otras columnas, usar la funcin
en la plantilla de dicha columna y usar el valor de la columna en las plantillas para guardar o enviar

raw_field(nombre)

class calibre.utils.formatter_functions.BuiltinRawField
raw_field(nombre) devuelve el campo de metadatos llamado nombre sin aplicar ningn formato.

raw_list(nombre, separador)

class calibre.utils.formatter_functions.BuiltinRawList
raw_list(nombre, separador) devuelve la lista de metadatos nombrada por nombre sin aplicar ningn formato
u ordenacin, con los elementos separados por separador.

1.9. Cursillos 163


Manual de usuario de calibre, Versin 2.82.0

series_sort()

class calibre.utils.formatter_functions.BuiltinSeriesSort
series_sort() devuelve el valor del orden de serie

user_categories()

class calibre.utils.formatter_functions.BuiltinUserCategories
user_categories() devuelve una lista separada por comas de las categoras de usuario que contiene este libro.
Esta funcin slo funciona en la interfaz grfica. Si desea utilizar estos valores en las plantillas para guardar en
el disco o enviar al dispositivo, deber crear una plantilla personalizada Columna generada a partir de otras
columnas, utilice la funcin en la plantilla de esa columna y use el valor de esa columna en las plantillas para
guardar o enviar

virtual_libraries()

class calibre.utils.formatter_functions.BuiltinVirtualLibraries
virtual_libraries() devuelve una lista separada por comas de bibliotecas virtuales que contienen este libro. Esta
funcin funciona slo en la interfaz grfica. Si quiere usar estos valores en las plantillas para guardar en el
disco o enviar al dispositivo, debe crear una columna personalizada de tipo Columna generada a partir de otras
columnas, usar la funcin en la plantilla de dicha columna y usar el valor de la columna en las plantillas para
guardar o enviar

If-then-else

contains(val, patrn, texto_si_coincide, texto_si_no_coincide)

class calibre.utils.formatter_functions.BuiltinContains
contains(val, patrn, texto_si_coincide, texto_si_no_coincide) comprueba si val contiene coincidencias para
la expresin regular patrn. Devuelve texto_si_coincide si se encuentran coincidencias, en caso contrario
devuelve texto_si_no_coincide.

ifempty(val, texto_si_vaco)

class calibre.utils.formatter_functions.BuiltinIfempty
ifempty(val, texto_si_vaco) devuelve val si no est vaco, en caso contrario devuelve texto_si_vaco.

test(val, texto_si_no_vaco, texto_si_vaco)

class calibre.utils.formatter_functions.BuiltinTest
test(val, texto_si_no_vaco, texto_si_vaco) devuelve texto_si_no_vaco si val no est vaco, devuelve
texto_si_vaco en caso contrario.

Iterating over values

164 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

first_non_empty(valor, valor, ...)

class calibre.utils.formatter_functions.BuiltinFirstNonEmpty
first_non_empty(valor, valor, ...) devuelve el primer valor que no est vaco. Si todos los valores estn vacos,
se devuelve tambin un valor vaco. Puede incluir tantos valores como quiera.

lookup(val, patrn, campo, patrn, campo, ..., otro_campo)

class calibre.utils.formatter_functions.BuiltinLookup
lookup(val, patrn, campo, patrn, campo, ..., otro_campo) como switch, pero los argumentos son nombres
de campo (metadatos), no texto. Se usar el valor del campo apropiado. Tenga en cuenta que puesto que las
columnas compuestas son campos, puede usar esta funcin en un campo compuesto para usar el valor de otro
campo compuesto. Esto es muy til para construir rutas de guardado variables.

switch(val, patrn, valor, patrn, valor, ..., otro_valor)

class calibre.utils.formatter_functions.BuiltinSwitch
switch(val, patrn, valor, patrn, valor, ..., otro_valor) para cada pareja patrn, valor, comprueba si val
contiene coincidencias para la expresin regular patrn y, en tal caso, devuelve ese valor. Si no coincide
ningn patrn, devuelve otro_valor. Puede emplear tantas parejas patrn, valor como desee.

List lookup

identifier_in_list(val, id, val_encontrado, val_no_encontrado)

class calibre.utils.formatter_functions.BuiltinIdentifierInList
identifier_in_list(val, id, val_encontrado, val_no_encontrado) considera val como una lista de identifica-
dores separados por comas, y compara el id con cada valor de la lista. Un identificador tiene el formato
id:valor. El argumento id debera ser id o id:expreg. El primer caso, selecciona identificadores con
dicho id. El segundo caso, selecciona identificadores cuyo valor coincida con la expresin regular expreg.
Si existe alguna coincidencia, devuelve val_encontrado, en caso contrario devuelve val_no_encontrado.

in_list(val, separador, patrn, encontrado, no_encontrado)

class calibre.utils.formatter_functions.BuiltinInList
in_list(val, separador, patrn, encontrado, no_encontrado) considera val como una lista de elementos sepa-
rados por separador y compara patrn con cada valor de la lista. Si patrn coincide con alguno de los
elementos de la lista, devuelve encontrado, en caso contrario devuelve no_encontrado.

list_item(val, ndice, separador)

class calibre.utils.formatter_functions.BuiltinListitem
list_item(val, ndice, separador) interpreta el campo como una lista de elementos separados por separador
y devuelve el elemento nmero ndice. El primer elemento es el nmero cero. El ltimo elemento puede
obtenerse con list_item(-1, separador). Si el elemento no est en la lista devuelve un valor vaco. El separador
tiene el mismo significado que en la funcin count.

1.9. Cursillos 165


Manual de usuario de calibre, Versin 2.82.0

select(val, clave)

class calibre.utils.formatter_functions.BuiltinSelect
select(val, clave) interpreta el valor como una lista de elementos separados por comas, con los elementos de
la forma id:valor. Encuentra la pareja con id igual a clave y devuelve el valor correspondiente.

str_in_list(val, separador, texto, val_encontrado, val_no_encontrado)

class calibre.utils.formatter_functions.BuiltinStrInList
str_in_list(val, separador, texto, val_encontrado, val_no_encontrado) considera val como una lista de ele-
mentos separados por separador, y compara el texto con cada valor de la lista. Si el texto coincide con
alguno de los valores, devuelve val_encontrado, en caso contrario devuelve val_no_encontrado. Si el texto
contiene separadores, tambin se considera como una lista y se comprueba cada elemento.

List manipulation

count(val, separador)

class calibre.utils.formatter_functions.BuiltinCount
count(val, separador) interpreta el campo como una lista de elementos separados por separador y devuelve
el nmero de elementos de la lista. La mayora de las listas usan una coma como separador, pero authors usa
un ampersand (&). Ejemplos: {tags:count(,)}, {authors,count(&)}

list_difference(lista1, lista2, separador)

class calibre.utils.formatter_functions.BuiltinListDifference
list_difference(lista1, lista2, separador) devuelve una lista construida eliminando de
lista1 cualquier elemento que aparezca en lista2, sin distinguir maysculas y minsculas. Los elementos de
lista1 y lista2 estn separados por separador, as como los de la lista resultante.

list_equals(lista1, sep1, lista2, sep2, val_s, val_no)

class calibre.utils.formatter_functions.BuiltinListEquals
list_equals(lista1, sep1, lista2, sep2, val_s, val_no) devuelve val_s si lista1 y lista2 contienen los
mismos elementos, en caso contrario devuelve val_no. Los elementos se determinan dividiendo cada lista
por el correspondiente carcter separador (sep1 o sep2). El orden de los elementos no es relevante. La
comparacin no diferencia maysculas y minsculas.

list_intersection(lista1, lista2, separador)

class calibre.utils.formatter_functions.BuiltinListIntersection
list_intersection(lista1, lista2, separador) devuelve una lista construida eliminando
de lista1 cualquier elemento que no aparezca en lista2, sin distinguir maysculas y minsculas. Los elementos
de lista1 y lista2 estn separados por separador, as como los de la lista resultante.

166 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

list_re(lista_orig, separador, incluir, sust_opc)

class calibre.utils.formatter_functions.BuiltinListRe
list_re(lista_orig, separador, incluir, sust_opc) construye una lista separando primero lista_orig en elementos
usando el carcter separador. Para cada elemento en la lista, comprueba si coincide con la expresin regular
incluir. Si coincide, se aade a la lista final. Si sust_opc no es un texto vaco, se aplica la sustitucin antes
de aadir el elemento a la lista final.

list_re_group(lista_orig, separador, incluir, bsqueda, plantilla_grupo_1, ...)

class calibre.utils.formatter_functions.BuiltinListReGroup
list_re_group(lista_orig, separador, incluir, bsqueda, plantilla_grupo_1, ...) como list_re, pero las sustitu-
ciones no son opcionales. Usa re_group(elemento, bsqueda, plantilla_grupo_1, ...) al hacer sustituciones en la
lista final.

list_sort(lista, direccin, separador)

class calibre.utils.formatter_functions.BuiltinListSort
list_sort(lista, direccin, separador) devuelve lista ordenada sin distincin de maysculas y minsculas. Si
direccin es cero, la lista se ordena de manera ascendente, en caso contrario, de manera descendente. Los
elementos de lista estn separados por separador, as como los de la lista resultante.

list_union(lista1, lista2, separador)

class calibre.utils.formatter_functions.BuiltinListUnion
list_union(lista1, lista2, separador) devuelve una lista construida por combinacin de los
elementos en lista1 y lista2, eliminando los duplicados de lista2 (no distingue maysculas y minsculas, se
mantiene la versin de lista1). Los elementos de lista1 y lista2 estn separados por separador, as como los de
la lista resultante.

subitems(val, ndice_inicio, ndice_fin)

class calibre.utils.formatter_functions.BuiltinSubitems
subitems(val, ndice_inicio, ndice_fin) Esta funcin se usa para separar listas de elementos tales como los
gneros. Interpreta el valor como una lista de elementos separados por comas, donde cada elemento es a su
vez una lista de elementos separados por puntos. Devuelve una nueva lista formada tomando, de cada lista
de elementos separados por puntos, los elementos situados entre las posiciones ndice_inicio e ndice_fin
y combinando los resultados. El primer elemento de cada lista separada por puntos ocupa la posicin cero.
Si un ndice es negativo, se cuenta desde el final de la lista. Como caso especial, si ndice_fin es cero, se
considera que es el final de la lista. Ejemplos en el modo bsico de plantilla y suponiendo que la columna
#gnero contiene el valor A.B.C: {#gnero:subitems(0,1)} devuelve A, {#gnero:subitems(0,2)} devuelve
A.B, {#gnero:subitems(1,0)} devuelve B.C. Suponiendo que #gnero contiene el valor A.B.C, D.E.F:
{#gnero:subitems(0,1)} devuelve A, D, {#gnero:subitems(0,2)} devuelve A.B, D.E.

sublist(val, ndice_inicio, ndice_fin, separador)

class calibre.utils.formatter_functions.BuiltinSublist
sublist(val, ndice_inicio, ndice_fin, separador) interpreta el valor como una lista de elementos separados
por separador y devuelve una nueva lista con los elementos comprendidos entre la posicin ndice_inicio

1.9. Cursillos 167


Manual de usuario de calibre, Versin 2.82.0

e ndice_fin. El primer elemento ocupa la posicin cero. Si un ndice es negativo, se cuenta desde el final
de la lista. Como caso especial, si ndice_fin es cero, se considera que es el final de la lista. Ejemplos en el
modo bsico de plantilla y suponiendo que la columna de etiquetas (definida como valores separados por comas)
contiene A, B, C: {tags:sublist{0,1)} devuelve A, {tags:sublist(-1,0)} devuelve C, {tags:sublist(0,-1)}
devuelve A, B.

Other

assign(id, val)

class calibre.utils.formatter_functions.BuiltinAssign
assign(id, val) asigna val a id y devuelve val. id debe ser un identificador, no una expresin

print(a, b, ...)

class calibre.utils.formatter_functions.BuiltinPrint
print(a, b, ...) escribe los argumentos en la salida estndar. Slo ser visible si inicia calibre a partir de lnea de
rdenes (calibre-debug -g).

Recursion

eval(plantilla)

class calibre.utils.formatter_functions.BuiltinEval
eval(plantilla) evala la plantilla, pasando las variables locales (las definidas con assign) en lugar de los
metadatos del libro. Esto permite usar el procesador de plantillas para elaborar resultados complejos a partir
de variables locales. Dado que los caracteres { y } tienen un uso especial, debe usar [[ en lugar de
{ y ]] para }; se convertirn automticamente. Tenga en cuenta que los prefijos y sufijos (la sintaxis
|prefijo|sufijo|) no puede usarse en el argumento de esta funcin en el modo de programacin de plantilla.

template(x)

class calibre.utils.formatter_functions.BuiltinTemplate
template(x) evala x como una plantilla. La evaluacin se realiza en un contexto propio, lo que significa que
las variables no se comparten entre el proceso que llama a la funcin y la evaluacin de la plantilla. Dado que
los caracteres { y } tienen un uso especial, debe usar [[ en lugar de { y ]] para }; se convertirn
automticamente. Por ejemplo, template([[orden_de_ttulo]]) evaluar la plantilla {orden_de_ttulo} y de-
volver su valor. Tenga en cuenta que los prefijos y sufijos (la sintaxis |prefijo|sufijo|) no puede usarse en el
argumento de esta funcin en el modo de programacin de plantilla.

Relational

cmp(x, y, mn, ig, my)

class calibre.utils.formatter_functions.BuiltinCmp
cmp(x, y, mn, ig, my) compara x e y despus de convertirlas en nmeros. Devuelve mn si x < y. Devuelve ig
si x = y. Devuelve my en otros casos.

168 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

first_matching_cmp(val, cmp1, resultado1, cmp2, resultado2, ..., otro_resultado)

class calibre.utils.formatter_functions.BuiltinFirstMatchingCmp
first_matching_cmp(val, cmp1, resultado1, cmp2, resultado2, ..., otro_resultado) compa-
ra val < cmpN consecutivamente y devuelve resultadoN para la primera compara-
cin que sea cierta. Devuelve otro_resultado si ninguna comparacin es cierta. Ejemplo:
first_matching_cmp(10,5,pequeo,10,mediano,15,grande,enorme) devuelve grande. El mismo
ejemplo con un primer valor de 16 devuelve enorme.

strcmp(x, y, mn, ig, my)

class calibre.utils.formatter_functions.BuiltinStrcmp
strcmp(x, y, mn, ig, my) compara x e y como textos sin distinguir maysculas y minsculas. Devuelve
mn si x < y. Devuelve ig si x = y. Devuelve my en otros casos.

String case changes

capitalize(val)

class calibre.utils.formatter_functions.BuiltinCapitalize
capitalize(val) devuelve val con la primera letra mayscula

lowercase(val)

class calibre.utils.formatter_functions.BuiltinLowercase
lowercase(val) devuelve val en minsculas

titlecase(val)

class calibre.utils.formatter_functions.BuiltinTitlecase
titlecase(val) devuelve val con las iniciales en mayscula

uppercase(val)

class calibre.utils.formatter_functions.BuiltinUppercase
uppercase(val) devuelve val en maysculas

String manipulation

re(val, patrn, sustitucin)

class calibre.utils.formatter_functions.BuiltinRe
re(val, patrn, sustitucin) devuelve val despus de aplicar la expresin regular. Todas las veces que aparezca
patrn se sustituir por sustitucin. Como en todo calibre, se trata de expresiones regulares compatibles con
python.

1.9. Cursillos 169


Manual de usuario de calibre, Versin 2.82.0

re_group(val, patrn, plantilla_para_grupo_1, para_grupo_2, ...)

class calibre.utils.formatter_functions.BuiltinReGroup
re_group(val, patrn, plantilla_para_grupo_1, para_grupo_2, ...) devuelve un texto formado por aplicacin de
la expresin regular patrn al valor val, sustituyendo cada coincidencia con el texto calculado al sustituir
cada grupo por el valor devuelto por la correspondiente plantilla. El valor de correspondencia original del grupo
est disponible como $. En el modo de programacin de plantillas, como en las funciones template y eval,
use [[ en lugar de { y ]] en lugar de }. El siguiente ejemplo en modo de programacin de plantillas
busca un nombre de serie con ms de una palabra y pone la primera palabra en maysculas: {series:re_group($,
(S* )(.*), [[$:uppercase()]], [[$]])}

shorten(val, car_izq, texto_medio, car_der)

class calibre.utils.formatter_functions.BuiltinShorten
shorten(val, car_izq, texto_medio, car_der) devuelve una versin abreviada de val, consistente en un nmero
car_izq de caracteres del principio del val, seguidos de texto_medio, seguido de un nmero car_der
de caracteres del fina de val. car_izq y car_der deben ser nmeros enteros. Por ejemplo, supongamos
que el ttulo del libro es Novsima recopilacin de las leyes de Espaa y que quiere que quepa en un espacio
de 15 caracteres a lo sumo. Si usa {title:shorten(8,-,6)}, el resultado ser Novsima-Espaa. Si la longitud
del campo es menor que car_izq + car_der + la longitud de texto_medio, se usar el campo intacto. Por
ejemplo, el ttulo La colmena no se cambiar.

strcat(a, b, ...)

class calibre.utils.formatter_functions.BuiltinStrcat
strcat(a, b, ...) admite un nmero arbitrario de argumentos. Devuelve un texto consistente en la unin de todos
los argumentos consecutivamente.

strcat_max(mx, texto1, prefijo2, texto2, ...)

class calibre.utils.formatter_functions.BuiltinStrcatMax
strcat_max(mx, texto1, prefijo2, texto2, ...) devuelve un texto formado por concatenacin de los argumentos.
El valor devuelto es inicialmente texto1. Se van aadiendo parejas prefijo, texto al final del valor mientras
la longitud del resultado sea menor que mx. El resultado es siempre al menos texto1, aunque su longitud
sea mayor que mx. Puede especificar tantas parejas prefijo, texto como desee.

strlen(a)

class calibre.utils.formatter_functions.BuiltinStrlen
strlen(a) devuelve la longitud del texto pasado como argumento.

substr(texto, inicio, fin)

class calibre.utils.formatter_functions.BuiltinSubstr
substr(texto, inicio, fin) devuelve los caracteres entre la posicin inicio y fin de texto. El primer carcter
de texto est en la posicin cero. Si fin es negativo, entonces indica la posicin contando desde la derecha. Si
fin es cero, indica el ltimo carcter. Por ejemplo, substr(12345, 1, 0) devuelve 2345, y substr(12345,
1, -1) devuelve 234.

170 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

swap_around_comma(val)

class calibre.utils.formatter_functions.BuiltinSwapAroundComma
swap_around_comma(val) dado un valor de la forma B, A, devuelve A B. Esto es til para convertir
nombres en formato APELLIDO, NOMBRE a NOMBRE APELLIDO. Si no hay ninguna coma, la funcin
devuelve val sin cambios.

transliterate(a)

class calibre.utils.formatter_functions.BuiltinTransliterate
transliterate(a) Devuelve un texto en el alfabeto latino formado por aproximacin del sonido de las palabras en
el texto origen. Por ejemplo, si el origen es a la funcin devuelve Fiodor
Mikhailovich Dostoievskii.

API of the Metadata objects

The python implementation of the template functions is passed in a Metadata object. Knowing its API is useful if you
want to define your own template functions.
class calibre.ebooks.metadata.book.base.Metadata(title, authors=(uDesconocido, ), ot-
her=None, template_cache=None, for-
matter=None)
A class representing all the metadata for a book. The various standard metadata fields are available as attributes
of this object. You can also stick arbitrary attributes onto this object.
Metadata from custom columns should be accessed via the get() method, passing in the lookup name for the
column, for example: #mytags.
Use the is_null() (pgina 171) method to test if a field is null.
This object also has functions to format fields into strings.
The list of standard metadata fields grows with time is in STANDARD_METADATA_FIELDS (pgina 172).
Please keep the method based API of this class to a minimum. Every method becomes a reserved field name.
is_null(field)
Return True if the value of field is null in this object. null means it is unknown or evaluates to False. So
a title of _(Unknown) is null or a language of und is null.
Be careful with numeric fields since this will return True for zero as well as None.
Also returns True if the field does not exist.
deepcopy(class_generator=<function <lambda>>)
Do not use this method unless you know what you are doing, if you want to create a simple clone of
this object, use deepcopy_metadata() instead. Class_generator must be a function that returns an
instance of Metadata or a subclass of it.
get_identifiers()
Return a copy of the identifiers dictionary. The dict is small, and the penalty for using a reference where a
copy is needed is large. Also, we dont want any manipulations of the returned dict to show up in the book.
set_identifiers(identifiers)
Set all identifiers. Note that if you previously set ISBN, calling this method will delete it.
set_identifier(typ, val)
If val is empty, deletes identifier of type typ

1.9. Cursillos 171


Manual de usuario de calibre, Versin 2.82.0

standard_field_keys()
return a list of all possible keys, even if this book doesnt have them
custom_field_keys()
return a list of the custom fields in this book
all_field_keys()
All field keys known by this instance, even if their value is None
metadata_for_field(key)
return metadata describing a standard or custom field.
all_non_none_fields()
Return a dictionary containing all non-None metadata fields, including the custom ones.
get_standard_metadata(field, make_copy)
return field metadata from the field if it is there. Otherwise return None. field is the key name, not the label.
Return a copy if requested, just in case the user wants to change values in the dict.
get_all_standard_metadata(make_copy)
return a dict containing all the standard field metadata associated with the book.
get_all_user_metadata(make_copy)
return a dict containing all the custom field metadata associated with the book.
get_user_metadata(field, make_copy)
return field metadata from the object if it is there. Otherwise return None. field is the key name, not the
label. Return a copy if requested, just in case the user wants to change values in the dict.
set_all_user_metadata(metadata)
store custom field metadata into the object. Field is the key name not the label
set_user_metadata(field, metadata)
store custom field metadata for one column into the object. Field is the key name not the label
template_to_attribute(other, ops)
Takes a list [(src,dest), (src,dest)], evaluates the template in the context of other, then copies the result to
self[dest]. This is on a best-efforts basis. Some assignments can make no sense.
smart_update(other, replace_metadata=False)
Merge the information in other into self. In case of conflicts, the information in other takes precedence,
unless the information in other is NULL.
format_field(key, series_with_index=True)
Returns the tuple (display_name, formatted_value)
to_html()
A HTML representation of this object.
calibre.ebooks.metadata.book.base.STANDARD_METADATA_FIELDS
The set of standard metadata fields.

'''
All fields must have a NULL value represented as None for simple types,
an empty list/dictionary for complex types and (None, None) for cover_data
'''

SOCIAL_METADATA_FIELDS = frozenset([
'tags', # Ordered list
'rating', # A floating point number between 0 and 10
'comments', # A simple HTML enabled string

172 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

'series', # A simple string


'series_index', # A floating point number
# Of the form { scheme1:value1, scheme2:value2}
# For example: {'isbn':'123456789', 'doi':'xxxx', ... }
'identifiers',
])

'''
The list of names that convert to identifiers when in get and set.
'''

TOP_LEVEL_IDENTIFIERS = frozenset([
'isbn',
])

PUBLICATION_METADATA_FIELDS = frozenset([
'title', # title must never be None. Should be _('Unknown')
# Pseudo field that can be set, but if not set is auto generated
# from title and languages
'title_sort',
'authors', # Ordered list. Must never be None, can be [_('Unknown')]
'author_sort_map', # Map of sort strings for each author
# Pseudo field that can be set, but if not set is auto generated
# from authors and languages
'author_sort',
'book_producer',
'timestamp', # Dates and times must be timezone aware
'pubdate',
'last_modified',
'rights',
# So far only known publication type is periodical:calibre
# If None, means book
'publication_type',
'uuid', # A UUID usually of type 4
'languages', # ordered list of languages in this publication
'publisher', # Simple string, no special semantics
# Absolute path to image file encoded in filesystem_encoding
'cover',
# Of the form (format, data) where format is, for e.g. 'jpeg', 'png', 'gif'...
'cover_data',
# Either thumbnail data, or an object with the attribute
# image_path which is the path to an image file, encoded
# in filesystem_encoding
'thumbnail',
])

BOOK_STRUCTURE_FIELDS = frozenset([
# These are used by code, Null values are None.
'toc', 'spine', 'guide', 'manifest',
])

USER_METADATA_FIELDS = frozenset([
# A dict of dicts similar to field_metadata. Each field description dict
# also contains a value field with the key #value#.
'user_metadata',
])

DEVICE_METADATA_FIELDS = frozenset([

1.9. Cursillos 173


Manual de usuario de calibre, Versin 2.82.0

'device_collections', # Ordered list of strings


'lpath', # Unicode, / separated
'size', # In bytes
'mime', # Mimetype of the book file being represented

])

CALIBRE_METADATA_FIELDS = frozenset([
'application_id', # An application id, currently set to the db_id.
'db_id', # the calibre primary key of the item.
'formats', # list of formats (extensions) for this book
# a dict of user category names, where the value is a list of item names
# from the book that are in that category
'user_categories',
# a dict of author to an associated hyperlink
'author_link_map',

]
)

ALL_METADATA_FIELDS = SOCIAL_METADATA_FIELDS.union(
PUBLICATION_METADATA_FIELDS).union(
BOOK_STRUCTURE_FIELDS).union(
USER_METADATA_FIELDS).union(
DEVICE_METADATA_FIELDS).union(
CALIBRE_METADATA_FIELDS)

# All fields except custom fields


STANDARD_METADATA_FIELDS = SOCIAL_METADATA_FIELDS.union(
PUBLICATION_METADATA_FIELDS).union(
BOOK_STRUCTURE_FIELDS).union(
DEVICE_METADATA_FIELDS).union(
CALIBRE_METADATA_FIELDS)

# Metadata fields that smart update must do special processing to copy.


SC_FIELDS_NOT_COPIED = frozenset(['title', 'title_sort', 'authors',
'author_sort', 'author_sort_map',
'cover_data', 'tags', 'languages',
'identifiers'])

# Metadata fields that smart update should copy only if the source is not None
SC_FIELDS_COPY_NOT_NULL = frozenset(['lpath', 'size', 'comments', 'thumbnail'])

# Metadata fields that smart update should copy without special handling
SC_COPYABLE_FIELDS = SOCIAL_METADATA_FIELDS.union(
PUBLICATION_METADATA_FIELDS).union(
BOOK_STRUCTURE_FIELDS).union(
DEVICE_METADATA_FIELDS).union(
CALIBRE_METADATA_FIELDS) - \
SC_FIELDS_NOT_COPIED.union(
SC_FIELDS_COPY_NOT_NULL)

SERIALIZABLE_FIELDS = SOCIAL_METADATA_FIELDS.union(
USER_METADATA_FIELDS).union(
PUBLICATION_METADATA_FIELDS).union(
CALIBRE_METADATA_FIELDS).union(
DEVICE_METADATA_FIELDS) - \
frozenset(['device_collections', 'formats',

174 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

'cover_data'])
# these are rebuilt when needed

Usar el modo de programa general

Para programas de plantilla ms complicados, a veces es ms sencillo evitar la sintaxis de plantillas (todos los caracte-
res { y }) y escribir programas con aspecto ms convencional. Puede hacer esto en calibre comenzando la plantilla
con program:. En este caso no se realizar ningn procesado de plantillas. El valor especial $ no se establece. El
programa es enteramente responsable de producir los resultados correctos.
Una ventaja del modo program: es que las llaves ya no son especiales. Por ejemplo, no es necesario usar [[ y ]]
al usar la funcin template(). Otra ventaja es que las plantillas en modo de programacin se compilan en Python
y pueden ejecutarse ms rpidamente que las plantillas en los otros dos modos. La mejora de velocidad depende de
la complejidad de las plantillas: cuanto ms compleja mayor es la mejora. La compilacin se activa y desactiva con
el ajuste compile_gpm_templates (Compilar plantillas en el modo de programa general a python). El principal
motivo para desactivar la compilacin es si una plantilla compilada no funciona, si esto ocurre por favor enve un
informe de error.
El siguiente ejemplo es una implementacin en modo program: de una frmula del foro MobileRead: Poner la serie
en el ttulo, usando iniciales o una forma abreviada. Eliminar artculos al inicio del nombre de la serie (cualquiera).
Por ejemplo, para el libro Las dos torres en la serie El seor de los anillos, la frmula da sdla [02] Las dos
torres. Usando plantillas estndar, la frmula requiere tres columnas personalizadas y un panel de conexiones, como
se explica a continuacin:
La solucin requiere crear tres columnas compuestas. La primera columna se usa para eliminar los artculos iniciales.
La segunda se usa para calcular la forma abreviada. La tercera es para calcular la forma de iniciales. Una vez tiene
estas columnas, el panel de conexiones selecciona entre ellas. Puede ocultar alguna o las tres columnas en la vista de
biblioteca:

First column:
Name: #stripped_series.
Template: {series:re(^(A|The|An)\s+,)||}

Second column (the shortened form):


Name: #shortened.
Template: {#stripped_series:shorten(4,-,4)}

Third column (the initials form):


Name: #initials.
Template: {#stripped_series:re(([^\s])[^\s]+(\s|$),\1)}

Plugboard expression:
Template:{#stripped_series:lookup(.\s,#initials,.,#shortened,series)}{series_index:0>
2.0f| [|] }{title}

Destination field: title

This set of fields and plugboard produces:


Series: The Lord of the Rings
Series index: 2
Title: The Two Towers
Output: LotR [02] The Two Towers

Series: Dahak
Series index: 1
Title: Mutineers Moon
Output: Dahak [01] Mutineers Moon

1.9. Cursillos 175


Manual de usuario de calibre, Versin 2.82.0

Series: Berserkers
Series Index: 4
Title: Berserker Throne
Output: Bers-kers [04] Berserker Throne

Series: Meg Langslow Mysteries


Series Index: 3
Title: Revenge of the Wrought-Iron Flamingos
Output: MLM [03] Revenge of the Wrought-Iron Flamingos

El siguiente programa produce los mismos resultados que la frmula original, usando solamente una columna perso-
nalizada para mantener los resultados de un programa que calcule el valor de ttulo especial:

Custom column:
Name: #special_title
Template: (the following with all leading spaces removed)
program:
# compute the equivalent of the composite fields and store them in local
variables

stripped = re(field('series'), '^(A|The|An)\s+', '');


shortened = shorten(stripped, 4, '-' ,4);
initials = re(stripped, '[^\w]*(\w?)[^\s]+(\s|$)', '\1');

# Format the series index. Ends up as empty if there is no series index.


# Note that leading and trailing spaces will be removed by the formatter,
# so we cannot add them here. We will do that in the strcat below.
# Also note that because we are in 'program' mode, we can freely use
# curly brackets in strings, something we cannot do in template mode.
s_index = template('{series_index:0>2.0f}');

# print(stripped, shortened, initials, s_index);

# Now concatenate all the bits together. The switch picks between
# initials and shortened, depending on whether there is a space
# in stripped. We then add the brackets around s_index if it is
# not empty. Finally, add the title. As this is the last function in
# the program, its value will be returned.
strcat(
switch( stripped,
'.\s', initials,
'.', shortened,
field('series')),
test(s_index, strcat(' [', s_index, '] '), ''),
field('title'));

Plugboard expression:
Template:{#special_title}
Destination field: title

Sera posible hacer lo anterior sin columnas personalizadas, poniendo el programa en el cuadro de plantilla del panel
de conexiones. Sin embargo, para hacerlo, habra que eliminar todos los comentarios, puesto que el cuadro de texto
del panel de conexiones no admite varias lneas. Es discutible si el beneficio de no tener una columna personalizada
compensa el gran incremento de dificultad creado por tener el programa en una nica y enorme lnea.

176 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

Funciones de plantilla definidas por el usuario

Puede aadir funciones propias al procesador de plantillas. Dichas funciones estn escritas en python y pueden usarse
en cualquiera de los tres modos de programacin de plantillas. Las funciones se aaden en Preferencias > Avanzado
> Funciones de plantilla. Las instrucciones se muestran en el correspondiente cuadro de dilogo.

Notas especiales para plantillas de guardado o envo

Cuando una plantilla se usa como plantilla de guardado a disco o de envo a dispositivo, ocurre un procesado
especial. Los valores de los campos se sanean, eliminando caracteres especiales para los sistemas operativos por
guiones bajos, incluyendo barras. Esto significa que el texto de los campos no puede usarse para crear carpetas. Sin
embargo, las barras no se modifican en los textos de prefijo o sufijo, por lo que las barras en estos textos harn que se
creen carpetas. Gracias a esto, es posible crear estructuras de carpetas de profundidad variable.
Por ejemplo, supongamos que quiere una estructura de carpetas serie/ndice de serie - ttulo, con la salvedad de que si
la serie no existe el ttulo debe estar en la carpeta superior. La plantilla para conseguir esto es:

{series:||/}{series_index:|| - }{title}

La barra y el guin slo aparecen si la serie no est vaca.


La funcin lookup() nos permite realizar un procesado an ms complejo. Por ejemplo, supongamos que si un
libro tiene una serie, entonces queremos una estructura de carpetas serie/ndice de serie - ttulo. Si el libro no tiene
una serie, entonces queremos la estructura gnero/orden de autor/ttulo. Si el libro no tiene gnero, queremos que use
Desconocido. Queremos seguir dos caminos completamente distintos segn el valor de la serie.
Para lograr esto:
1. Creamos un campo compuesto (dmosle el nombre de bsqueda #AA) que contiene {series}/
{series_index} - {title}. Si la serie no est vaca, esta plantilla produce serie/nmero_de_serie
- ttulo.
2. Creamos un campo compuesto (dmosle el nombre de bsqueda #BB) que contenga
{#genre:ifempty(Desconocido)}/{author_sort}/{title}. Esta plantilla produce
gnero/orden de autor/ttulo, donde un gnero vaco se sustituye por Desconocido.
3. Establecemos la plantilla de guardado en {series:lookup(.,#AA,#BB)}. Esta plantilla elige el
campo compuesto #AA si la serie no est vaca y el campo compuesto #BB si la serie est vaca. Obtenemos
por lo tanto dos rutas de guardado completamente diferentes segn el campo series est o no vaco.

Plantillas y controles de metadatos

Los paneles de conexiones se usan para cambiar los metadatos escritos en los libros durante las operaciones de guar-
dado en disco y de envo a dispositivo. Un panel de conexiones le permite especificar una plantilla para suministrar los
datos que se escribirn en los metadatos del libro. Puede usar los paneles de conexiones para modificar los siguientes
campos: authors, author_sort, language, publisher, tags, title, title_sort. Esa funcin es til para los que quieren usar
metadatos diferentes en los libros de los dispositivos, para solucionar problemas de ordenacin o de visualizacin.
Cuando cree un panel de conexiones, especifique el formato y dispositivo para los que se usar. Hay un dispositivo
especial save_to_disk, que se usa para guardar formatos (en lugar de enviarlos a un dispositivo). Una vez que ha
elegido el formato y dispositivo, elija los campos de metadatos para cambiar, y suministre plantillas para obtener los
nuevos valores. Estas plantillas estn conectadas con sus campos de destino, de ah el nombre panel de conexiones.
Por supuesto, puede usar columnas compuestas en estas plantillas.
Cuando un panel de conexiones pueda aplicarse (servidor de contenido, guardado en disco o envo a dispositivo),
calibre busca los paneles definidos para elegir el correcto segn el formato y dispositivo. Por ejemplo, para encontrar

1.9. Cursillos 177


Manual de usuario de calibre, Versin 2.82.0

el panel de conexiones apropiado para enviar un libro EPUB a un dispositivo ANDROID, calibre busca en los paneles
en el siguiente orden:
un panel de conexiones con una coincidencia exacta de formato y dispositivo, por ejemplo: EPUB y ANDROID
un panel de conexiones con una coincidencia exacta de formato y el dispositivo especial any device, por
ejemplo EPUB y any device
un panel de conexiones con el formato especial any format y una coincidencia exacta de dispositivo, por
ejemplo: any format y ANDROID
un panel de conexiones con any format y any device
Los campos etiquetas y autores tienen un trato especial, debido a que ambos pueden tener ms de un elemento. Un libro
puede poseer varias etiquetas y varios autores. Cuando indique que desea cambiar uno de estos campos, la plantilla
se examina para comprobar si hay ms de un elemento. Para las etiquetas, el resultado se divide dondequiera que
calibre encuentre una coma. Por ejemplo, si la plantilla produce el valor Intriga, Terror, el resultado sern dos
etiquetas: Intriga y Terror. No existe manera de poner una coma dentro de una etiqueta.
Lo mismo ocurre con los autores, pero usando un carcter diferente para el corte, un signo & en lugar de una
coma. Por ejemplo, si la plantilla produce el valor Blogs, Joe&Posts, Susan, el libro acabar con dos autores,
Blogs, Joe y Posts, Susan. Si la plantilla produce el valor Blogs, Joe;Posts, Susan, el libro tendr
un autor con un nombre peculiar.
Los paneles de conexiones afectan a los metadatos escritos en el libro cuando se guarda en disco o se escribe en un
dispositivo. Los paneles de conexiones no afectan a los metadatos usados por las funciones Guardar en el disco Enviar
al dispositivo para crear los nombres de archivo. En lugar de ello, los nombres de archivo se construyen usando las
plantillas introducidas en la ventana de preferencias correspondiente.

Consejos tiles

Puede encontrar tiles los siguientes consejos.


Cree una columna compuesta personalizada para probar plantillas. Una vez que tenga la columna, puede hacer
cambios en la plantilla pulsando dos veces en la columna. Oculte la columna cuando no est haciendo pruebas.
Las plantillas pueden usar otras plantillas haciendo referencia a una columna personalizada compuesta.
En un panel de conexiones, puede establecer un campo como vaco (o lo que sea equivalente a vaco) utilizando
la plantilla especial {}. Esta plantilla siempre producir un texto vaco.
La tcnica descrita anteriormente para mostrar los nmeros incluso si son cero funciona con el campo estndar
series_index.

1.9.4 Todo acerca de cmo utilizar expresiones regulares en calibre

Las expresiones regulares son funciones utilizadas en muchos lugares en calibre para llevar a cabo sofisticadas manipu-
laciones de contenido y metadatos de libros electrnicos. Este cursillo es una breve introduccin al uso de expresiones
regulares en calibre.

Contents

Primero, una advertencia y unas palabras de aliento (pgina 179)


Dnde puedo utilizar expresiones regulares en calibre? (pgina 179)
Pero qu es una expresin regular? (pgina 179)

178 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

Me lo puede explicar? (pgina 180)


No suena tan mal. Qu viene despus? (pgina 180)
Estupendo! Esto empieza a tener sentido! (pgina 180)
Bien, estos caracteres especiales estn muy bien, pero qu ocurre si quiero hacer coincidir un punto o un
signo de interrogacin? (pgina 181)
Y cules son los conjuntos ms tiles? (pgina 181)
Pero si tengo varios textos diferentes para hacer coincidir, las cosas se complican? (pgina 181)
Falta algo... (pgina 182)
No dijo al principio que hay una manera de hacer que una expresin regular no distinga entre maysculas
y minsculas? (pgina 182)
Creo que empiezo a entender esto de las expresiones regulares... cmo las utilizo en calibre? (pgina 182)
Conversiones (pgina 182)
Aadir libros (pgina 183)
Modificar metadatos en masa (pgina 183)
Crditos (pgina 184)

Primero, una advertencia y unas palabras de aliento

Esto, inevitablemente, va a ser un poco tcnico, despus de todo, las expresiones regulares son una herramienta tcnica
para hacer cosas tcnicas. Voy a tener que usar una jerga y conceptos que pueden parecer complicados o enrevesados.
Voy a tratar de explicar esos conceptos tan claramente como pueda, pero realmente no puedo hacerlo sin utilizarlos
en absoluto. Dicho esto, no se desanime por la jerga segn intento explicar las cosas nuevas. Y mientras que las
expresiones regulares en s pueden parecer cosa magia negra y arcana (o, siendo ms prosaicos, una serie aleatoria
de letras y signos sin sentido), le aseguro que no son tan complicadas. Incluso los que entienden las expresiones
regulares muy bien tienen problemas para leer las ms complejas, pero escribirlas no es tan difcil: se va construyendo
la expresin paso a paso. Dicho esto, d el primer paso y sgame en la madriguera.

Dnde puedo utilizar expresiones regulares en calibre?

Las expresiones regulares se usan en unos cuantos lugares de calibre. En buscar y sustituir en las opciones de conver-
sin, en la deteccin de metadatos a partir de los nombres de archivo en las configuraciones de importacin y en buscar
y sustituir al modificar metadatos en masa. El editor de libros de calibre tambin puede usar expresiones regulares para
buscar y sustituir.

Pero qu es una expresin regular?

Una expresin regular es una manera de describir porciones de texto. Una sola expresin regular coincidir con una
serie de diferentes textos. Esto es lo que hace a las expresiones regulares tan potentes: son una forma concisa de
describir un nmero potencialmente elevado de variaciones.

Nota: Aqu se habla de textos en el sentido en que se usan en los lenguajes de programacin: un texto de uno o
ms caracteres, caracteres que incluyen caracteres reales, nmeros, puntuacion y los llamados espacios en blanco
(tabulaciones, saltos de lnea, etc.). Tenga en cuenta que en general, los caracteres en maysculas y en minsculas no
se consideran iguales, por lo tanto a es diferente de A, etc. En calibre, las expresiones regulares no distinguen

1.9. Cursillos 179


Manual de usuario de calibre, Versin 2.82.0

maysculas y minsculas en la barra de bsqueda, pero s en las opciones de conversin. Hay una manera de hacer que
las expresiones regulares no distingan nunca entre maysculas y minsculas, pero hablaremos de eso ms adelante. La
cosa se complica porque las expresiones regulares permiten variaciones en los textos con los que coinciden, de manera
que una expresin pueden coincidir con varios textos, que es la causa por la mucha gente no se molesta en usarlas.
Ms sobre esto en un momento.

Me lo puede explicar?

Bueno, para eso estamos aqu. En primer lugar, ste es el concepto ms importante en las expresiones regulares: Un
texto por s mismo es una expresin regular que coincide consigo mismo. Es decir, si yo quisiera encontrar el texto
"Hola a todos!" utilizando una expresin regular, sta sera Hola a todos!. Y s, realmente es as de
simple. Se dar cuenta, sin embargo, de que esto slo coincide con el texto exacto "Hola a todos!" y no, por
ejemplo, con "Hola a Todos!" u "hola a todos!" o cualquier otra variacin.

No suena tan mal. Qu viene despus?

Next is the beginning of the really good stuff. Remember where I said that regular expressions can match multiple
strings? This is where it gets a little more complicated. Say, as a somewhat more practical exercise, the ebook you
wanted to convert had a nasty footer counting the pages, like Page 5 of 423. Obviously the page number would rise
from 1 to 423, thus youd have to match 423 different strings, right? Wrong, actually: regular expressions allow you
to define sets of characters that are matched: To define a set, you put all the characters you want to be in the set into
square brackets. So, for example, the set [abc] would match either the character a, b or c. Sets will always
only match one of the characters in the set. They understand character ranges, that is, if you wanted to match all the
lower case characters, youd use the set [a-z] for lower- and uppercase characters youd use [a-zA-Z] and so on.
Got the idea? So, obviously, using the expression Page [0-9] of 423 youd be able to match the first 9 pages,
thus reducing the expressions needed to three: The second expression Page [0-9][0-9] of 423 would match
all two-digit page numbers, and Im sure you can guess what the third expression would look like. Yes, go ahead.
Write it down.

Estupendo! Esto empieza a tener sentido!

Esperaba que dijera eso. Pero preprese, ahora se pone an mejor! Acabamos de ver que con el uso de conjuntos,
podemos detectar uno de varios caracteres a la vez. Pero incluso se puede repetir un carcter o conjunto, reduciendo
el nmero de expresiones necesarias el ejemplo anterior de los nmers de pgina a una. S, UNA! Emocionado?
Debera estarlo! Funciona as: Algunos de los llamados caracteres especiales, +, ? y *, repiten el elemento
nico que los precede. (Elemento significa un nico carcter, un conjunto de caracteres, una secuencia de escape o
un grupo (aprenderemos ms acerca de los dos ltimos ms tarde), en resumen, cualquier entidad individual en una
expresin regular). Estos caracteres se llaman comodines o cuantificadores. Para ser ms precisos, ? coincide con
0 o 1 copias del elemento anterior, * coincide con 0 o ms copias del elemento anterior y + coincide con 1 o
ms copias del elemento anterior. Algunos ejemplos: La expresin a? coincidira con (que es un texto vaco, no
estrictamente til en este caso) o a, la expresin a* coincidira con , a, aa o cualquier nmero de aes seguidas,
y, finalmente, la expresin a+ se coincidira con a, aa o cualquier nmero de aes seguidas. (Nota: no coincidira
con el texto vaco!). Lo mismo para los conjuntos. La expresin [0-9]+ coincidira con cualquier nmero entero!
S lo que est pensando, y tiene razn: si lo utiliza en el caso anterior de los nmeros de pgina, no sera la forma de
obtener una nica expresin que coincida con todos los nmeros de pgina? S, la expresin Pgina [0-9]+ de
423 coincidira con cualquier nmero de pgina de ese libro!

Nota: Un apunte sobre estos cuantificadores: Generalmente intentan hacer coincidir tanto como sea posible, as que
tenga cuidado al usarlos. Esto se conoce como comportamiento codicioso, seguro que entiende por qu. Se vuelve
problemtico cuando, por ejemplo, se intenta hacer coincidir una etiqueta. Consideremos, por ejemplo, el texto "<p

180 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

class=alibre2">Ttulo aqu</p>" y digamos que le gustara hacer coincidir la etiqueta de apertura (la
parte entre el primer par de ngulos, veremos ms sobre las etiquetas ms adelante). Se podra pensar que la expresin
<p.*> se correspondera con esa etiqueta, pero en realidad coincide con todo el texto! (El carcter . es otro carcter
especial, coincide con cualquier cosa excepto saltos de lnea, por lo que, bsicamente, la expresin .* coincide con
cualquier lnea que se pueda imaginar). En lugar de eso, trate de usar <p.*?>, lo que hace que el cuantificador *
no codicioso. Esa expresin slo coincidira con la primera etiqueta de apertura, como se pretende. De hecho, hay otra
manera de lograr esto. La expresin <p[^>]*> coincidir con la misma etiqueta de apertura, ya ver por qu despus
de la siguiente seccin. Tenga en cuenta que frecuentemente hay ms de una manera de escribir una expresin regular.

Bien, estos caracteres especiales estn muy bien, pero qu ocurre si quiero hacer coincidir un
punto o un signo de interrogacin?

Por supuesto que puede hacerlo: simplemente escriba una barra invertida delante de cualquier carcter especial y se
interpretar como un carcter literal, sin ningn significado especial. Esta pareja de barra invertida y un carcter se
llama secuencia de escape, y el acto de poner una barra invertida delante de un carcter especial se llama escapar ese
carcter. Una secuencia de escape se interpreta como un solo elemento. Hay, por supuesto, secuencias de escape que
hacen ms que slo escapar caracteres especiales, por ejemplo "\t" representa una tabulacin. Vamos a ver algunas
de las secuencias de escape ms adelante. Ah, por cierto, en relacin con esos caracteres especiales: considere que
cualquier carcter que sealemos en esta introduccin como poseedor de alguna funcin es especial y por lo tanto
necesita ser escapado si desea que sea un carcter literal.

Y cules son los conjuntos ms tiles?

Saba que lo preguntara. Algunos conjuntos tiles son [0-9], que coincide con un solo dgintoo, [a-z], que coin-
cide con una sola letra minscula, [A-Z], que coincide con una sola letra mayscula, [a-zA-Z], que coincide con
una sola letra, y [a-zA-Z0-9], que coincide con una sola letra o nmero. Tambin puede utilizar una secuencia de
escape como abreviatura:

\d is equivalent to [0-9]
\w is equivalent to [a-zA-Z0-9_]
\s is equivalent to any whitespace

Nota: Espacios en blanco es un trmino para cualquier cosa que no se imprime. Estos caracteres incluyen el espacio,
tabulador, avance de lnea, salto de pgina y retorno de carro.

Como ltimo apunte sobre los conjuntos, tambin puede definir un conjunto como cualquier carcter excepto los
especificados. Esto se hace incluyendo el carcter "^" como el primer carcter en el conjunto. As, [^a] coincidir
con cualquier carcter excepto a. Esto se llama complementar el conjunto. Las secuencias de escape anteriores
que funcionan como abreviaturas tambin pueden complementarse. "\D" significa cualquier carcter que no sea un
nmero, siendo por lo tanto equivalente a [^0-9]. Las otras abreviaturas se pueden complementar, como puede
imaginar, utilizando la respectiva letra mayscula en lugar de la minscula. Volviendo al ejemplo <p[^>]*> de la
seccin anterior, ahora se puede ver que el conjunto especificado trata de coincidir con cualquier carcter excepto el
ngulo de cierre.

Pero si tengo varios textos diferentes para hacer coincidir, las cosas se complican?

No tema, todo sigue siendo bueno y fcil. Considere este ejemplo: El libro que quiere convirtir tiene un Ttulo
escrito en cada pgina impar y Autor en cada pgina par. Queda muy bien en la versin impresa, no? Pero en
libros electrnicos es molesto. Puede agrupar expresiones enteras en parntesis normales, y el carcter "|" har que
coincida la expresin a la derecha o la de la izquierda. Combnelas y ya est. Demasiado rpido? Bueno, en primer

1.9. Cursillos 181


Manual de usuario de calibre, Versin 2.82.0

lugar, agrupamos las expresiones para pginas pares e impares, consiguiendo de este modo (Ttulo)(Autor)
como nuestras dos expresiones necesarias. Ahora hacemos las cosas ms simples mediante el uso de la barra vertical
("|" se llama barra vertical). Si utiliza la expresin (Ttulo|Autor) har coincidir Ttulo (en las pginas
impares) o Autor (en las pginas pares). Bueno, no ha sido fcil?
Tambin puede, por supuesto, usar la barra vertical sin utilizar parntesis de agrupamiento. Recuerda cuando dije
que los cuantificadores repiten el elemento que los precede? Pues bien, la barra vertical funciona de manera un poco
diferente. La expresin Ttulo|Autor tambin coincide con el texto Ttulo o el texto Autor, igual que el
ejemplo anterior utilizando agrupamiento. La barra vertical selecciona entre toda la expresin anterior y toda la
posterior. As que, si quiere que coincidan los textos Calibre y calibre y quiere seleccionar slo entre la c
mayscula y minscula, tendra que utilizar la expresin (c|C)alibre, donde el agrupamiento asegura que slo la
c se selecciona. Si usara c|Calibre, obtendra coincidencias con el texto c o el texto Calibre, que no es lo
que quera. En resumen: en caso de duda, utilice el agrupamiento con la barra vertical.

Falta algo...

...espere un momento, hay una ltima cosa muy interesante que se puede hacer con los grupos. Si tiene un grupo que
previamente ha hecho coincidir, puede utilizar referencias a ese grupo posteriormente en la expresin. Los grupos se
numeran comenzando por 1, y se referencian escapando el nmero del grupo, por ejemplo, al quinto grupo se hara
referencia como \5. As, aplicando ([^ ]+) \1 sobre el texto Prueba Prueba, se hara coincidir todo el texto!

No dijo al principio que hay una manera de hacer que una expresin regular no distinga entre
maysculas y minsculas?

S, lo hice, gracias por prestar atencin y recordrmelo. Puede decirle a calibre cmo desea ciertas cosas se comporten
mediante el uso de opciones. Las opciones se incluyen en una expresin mediante la construccin especial (?aqu
van las opciones), donde, obviamente, debe sustituir aqu van las opciones por las opciones especficas que
desee. Para no distinguir maysculas y minsculas, la opcin es i, as que incluya (?i) en la expresin. Por lo tanto,
prueba(?i) coincidira con Prueba, pRueba, PRueba y cualquier variacin en las maysculas y minsculas
que pueda imaginar.
Otra opcin til hace que el punto coincida con absolutamente cualquier carcter, incluyendo el salto de lnea, la
opcin s. Si desea utilizar varias opciones en una expresin, slo hay que ponerlas en la misma declaracin: (?is)
no distingue entr maysculas y minsculas y hace que el punto coincida con todo. No importa qu opcin se declara
en primer lugar, (?si) sera equivalente a la anterior. Por cierto, es buena idea poner las opciones al principio o al
final de la expresin, de esta manera no se mezclan con cualquier otra cosa.

Creo que empiezo a entender esto de las expresiones regulares... cmo las utilizo en calibre?

Conversiones

Vamos a empezar con las configuraciones de conversin. En la seccin Buscar y sustituir, puede introducir una regexp
(abreviatura de expresin regular) que describe el texto que se sustituir durante la conversin. La parte interesante es el
asistente. Pulse en la varita mgica y obtendr una vista previa de lo que calibre ve durante el proceso de conversin.
Vaya al texto que desea eliminar, seleccinelo y cpielo, pguelo en el campo de expresin regular en la parte superior
de la ventana. Si hay partes variables, como nmeros de pgina o algo as, use conjuntos y cuantificadores para
recogerlos, y ya que est en ello, recuerde que debe escapar los caracteres especiales, si hay alguno. Pulse el botn
con la etiqueta Probar y calibre resaltar las partes que sustituira al utilizar la expresin regular. Una vez que est
satisfecho, pulse Aceptar y se inicia el proceso de conversin. Tenga cuidado si el origen de la conversin tiene
etiquetas como este ejemplo:

182 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

Maybe, but the cops feel like you do, Anita. What's one more dead vampire?
New laws don't change that. </p>
<p class="calibre4"> <b class="calibre2">Generated by ABC Amber LIT Conv
<a href="http://www.processtext.com/abclit.html" class="calibre3">erter,
http://www.processtext.com/abclit.html</a></b></p>
<p class="calibre4"> It had only been two years since Addison v. Clark.
The court case gave us a revised version of what life was

(copiado descaradamente de este hilo79 ). Habra que eliminar tambin algunas de las etiquetas. En este ejemplo,
recomendara empezar con la etiqueta <b class=alibre2">, tiene que acabar con la etiqueta de cierre co-
rrespondiente (las etiquetas de apertura son <etiqueta>, las etiquetas de cierre son </etiqueta>), que es
simplemente el siguiente </b> en este caso. (Consulte un buen manual de HTML o pregunte en el foro si tie-
ne dudas sobre este punto). La etiqueta de apertura puede describirse usando <b.*?>, la etiqueta de cierre usan-
do </b>, por lo que podramos quitar todo lo que est entre estas etiquetas usando <b.*?>.*?</b>. Pero usar
esta expresin sera una mala idea, ya que elimina todo lo encerrado entre las etiquetas <b> (que, por cierto, ha-
cen que el texto encerrado se muestre en negrita), y es casi seguro que eliminaremos porciones del libro de esta
manera. En su lugar, incluya tambin el principio del texto entre las etiquetas, haciendo la expresin regular <b.
*?>\s*Generated\s+by\s+ABC\s+Amber\s+LIT.*?</b>. La \s con cuantificadores se incluye aqu en
lugar de utilizar explcitamente los espacios que aparecen en el texto para recoger cualquier variacin del texto que pu-
diera ocurrir. Si prueba una nueva expresin, recuerde revisar qu eliminar calibre para asegurarse de que no elimina
partes que desea conservar. Si slo examina un caso, es posible que pase por alto un desajuste en otro lugar del texto.
Tambin tenga en cuenta que en caso de que accidentalmente elimine ms o menos etiquetas de las que realmente
deseaba, calibre intenta reparar el cdigo daado despus de hacer la eliminacin.

Aadir libros

Tambin puede utilizar expresiones regulares para extraer metadatos de los nombres de archivo. Puede encontrar esta
funcin en la seccin Aadir libros de la configuracin. Hay una caracterstica especial: puede utilizar nombres de
campo para los campos de metadatos, por ejemplo (?P<title>), que indicara que calibre utiliza esta parte del texto
como el ttulo del libro. Los nombres de los campos permitidos se enumeran en las ventanas, junto con otro til campo
de prueba. Un ejemplo: digamos que desea importar un gran nmero de archivos llamados as Textos clsicos:
La divina comedia de Dante Alighieri.mobi (obviamente, ya lo tiene en la biblioteca, ya que a todos
nos gusta la poesa italiana clsica) o Ciencia ficcin pica: La Triloga de la Fundacin de Isaac Asimov.epub.
Esto es obviamente un esquema de nombres del que calibre no va a extraer datos significativos: la expresin estndar
para la extraccin de los metadatos es (?P<titulo>.+) - (?P<autor>[^_]+). Una expresin regular que
podra funcionar en este caso sera [a-zA-Z]+: (?P<titulo>.+) de (?P<autor>.+). Tenga en cuenta
que, dentro del grupo para el campo de metadatos, es necesario utilizar expresiones para describir lo que el campo
realmente recoge. Y tambin tenga en cuenta que, cuando se utiliza el campo de prueba que calibre ofrece, es necesario
agregar la extensin de archivo al nombre de archivo de prueba, de lo contrario no recibir ninguna correspondencia
en absoluto, a pesar de utilizar una expresin correcta.

Modificar metadatos en masa

La ltima parte es la bsqueda y sustitucin con expresiones regulares en los campos de metadatos. Puede acceder
a esta funcin seleccionando varios libros en la biblioteca y usando la modificacin de metadatos en masa. Tenga
mucho cuidado al utilizar esta ltima funcin, ya que puede hacer cosas muy malas en la biblioteca! Verifique que
las expresiones hacen lo que quiere que hagan en los campos de prueba, y slo marque los libros que realmente quiere
cambiar. En el modo de bsqueda de expresione regulare, puede buscar en un campo, sustituir el texto con algo e
incluso escribir el resultado en otro campo. Un ejemplo prctico: Digamos que la biblioteca contiene los libros de la
serie Dune de Frank Herbert, nombrados de este modo Dune 1 - Dune, Dune 2 - El mesas de Dune y
79 https://www.mobileread.com/forums/showthread.php?t=75594"

1.9. Cursillos 183


Manual de usuario de calibre, Versin 2.82.0

as sucesivamente. Ahora desea incluir Dune en el campo serie. Puede hacerlo mediante la bsqueda (.*?) \d+ -
.* en el campo ttulo y sustituyendo con \1 en el campo serie. Ve lo que he hecho? Esto es una referencia al primer
grupo que est de coincidencia en la expresin regular. Ahora que tiene toda la serie lista, slo tiene que hacer otra
bsqueda .*? - en el campo ttulo y reemplazarlo con (un texto vaco), de nuevo en el campo ttulo, y los metadatos
estarn todos limpios y ordenados. No es genial? Por cierto, en lugar de sustituir todo el campo, puede tambin aadir
al principio o al final del campo, por lo que, si quisiera el ttulo del libro con la informacin de la serie delante, puede
hacerlo tambin. Como sin duda se ha dado cuenta, hay una casilla etiquetada Distinguir maysculas, para que no
tenga que usar la opcin correspondiente dentro de la expresin regular en este caso.
Y con esto concluye la breve introduccion a las expresiones regulares. Espero haberle enseado lo suficiente para que
pueda empezar a trabajar y aprender por su cuenta. Un buen punto de partida sera la documentacin de Python para
expresiones regulares80 (en ingls).
Una ltima palabra de advertencia: las expresiones regulares son potentes, pero tambin es muy fcil equivocarse.
calibre ofrece muy buenas posibilidades de pruebas para ver si las expresiones se comportan como se espera que lo
hagan. selas. Intente no dispararse los pies (me encanta esta expresin...). Pero si, a pesar de la advertencia, se lesiona
el pie (o cualquier otra parte del cuerpo), trate de aprender de ello.

Crditos

Gracias por ayudar con sugerencias, correcciones y dems:


ldolse
kovidgoyal
chaley
dwanthny
kacir
Starson17
Para saber ms acerca de expresiones regulares, vea el manual de usario de Python81 (en ingls).

1.9.5 Integrar el servidor de contenidos de calibre en otros servidores

Aqu, le mostraremos cmo integrar el servidor de contenidos de calibre en otro servidor. La razn ms comn para
esto es hacer uso de SSL u otro tipo de autenticacin ms sofisticado. Existen dos tcnicas principales: ejecutar el
servidor de contenido calibre como un proceso independiente y utilizando un proxy inverso para conectar con el
servidor principal, o ejecutar el servidor de contenido como un proceso en el servidor principal con WSGI. Los
siguientes ejemplos son para Apache 2.x sobre linux, pero deberan ser fcilmente adaptables a otras plataformas.

Contents

Usar un proxy inverso (pgina 185)


En proceso (pgina 185)

Nota: Esto slo se aplica a versiones de calibre >= 0.7.25

80 https://docs.python.org/2/library/re.html
81 https://docs.python.org/2/library/re.html

184 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

Usar un proxy inverso

Un proxy inverso es cuando el servidor principal acepta peticiones entrantes y las traslada al servidor de calibre.
A continuacin, lee la respuesta desde el servidor de calibre y la enva al cliente. Esto significa que slo tiene que
ejecutar el servidor de calibre de forma normal sin tratar de integrarlo estrechamente con el servidor principal y
aprovechar cualquier sistema de autenticacin que posea el servidor principal. ste es el mtodo ms sencillo, ya que
le permite usar la instalacin de binaria de calibre sin dependencias externas o requisitos de integracin en el sistema.
A continuacin se muestra un ejemplo de cmo lograr esto con Apache como servidor principal, pero funcionar con
cualquier servidor compatible con servidores proxy inversos.
Primero active el servidor de contenidos de calibre como se muestra a continuacin:

calibre-server --url-prefix /calibre --port 8080

El parmetro clave aqu es --url-prefix /calibre. Esto hace que el servidor de contenidos sirva todos los
URL con el prefijo calibre. Para verlo en accin, visite http://localhost:8080/calibre en su navegador.
Debera ver la pgina web habitual del servidor de contenido, pero ahora se ejecutar desde /calibre.
Supongamos ahora que Apache es el servidor principal. En primer lugar, habilite los mdulos de proxy en Apache,
aadiendo lo siguiente a httpd.conf:

LoadModule proxy_module modules/mod_proxy.so


LoadModule proxy_http_module modules/mod_proxy_http.so

La tcnica exacta para habilitar los mdulos proxy variar segn la instalacin de Apache. Una vez que tenga los
mdulos proxy habilitados, agregue las siguientes reglas a httpd.conf (o, si est usando servidores virtuales, al
archivo conf del servidor virtual en cuestin):

RewriteEngine on
RewriteRule ^/calibre/(.*) http://localhost:8080/calibre/$1 [proxy]
RewriteRule ^/calibre http://localhost:8080 [proxy]
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1

Eso es todo, ahora podr acceder al servidor de contenidos de calibre bajo el URL /calibre en su servidor Apache. Las
reglas anteriores pasan todas las peticiones bajo /calibre al servidor de calibre que se ejecuta en el puerto 8080 y gracias
a la opcin --url-prefix mencionada anteriormente, el servidor de calibre las gestiona de forma transparente.

Nota: Si est dispuesto a dedicar todo un VirtualHost para el servidor de contenidos, entonces no hay necesidad de
utilizar --url-prefix y RewriteRule, simplemente use la directiva ProxyPass.

Nota: El motor del servidor que usa calibre, CherryPy, puede tener problemas cuando se utilizan proxys y peticiones
KeepAlive, as que desactvelos en Apache, con las directivas SetEnv que se muestran arriba.

En proceso

El servidor de contenidos de calibre se puede ejecutar directamente, en proceso, dentro de un servidor anfitrin como
Apache utilizando el marco WSGI.

Nota: Para que esto funcione, todas las dependencias requeridas por calibre deben estar instaladas en el sistema.
Conseguir esto no es en absoluto trivial, y se aconseja no usar servidores en proceso. No se proporcionar ninguna

1.9. Cursillos 185


Manual de usuario de calibre, Versin 2.82.0

ayuda para depurar problemas relacionados con servidores en proceso.

Primero, debemos crear un adaptador WSGI para el servidor de contenidos de calibre. Aqu hay una plantilla que
puede utilizar para dicho propsito. Reemplace las rutas de acceso como se indica en los comentarios.

# WSGI script file to run calibre content server as a WSGI app

import sys, os

# You can get the paths referenced here by running


# calibre-debug --paths
# on your server

# The first entry from CALIBRE_PYTHON_PATH


sys.path.insert(0, '/home/kovid/work/calibre/src')

# CALIBRE_RESOURCES_PATH
sys.resources_location = '/home/kovid/work/calibre/resources'

# CALIBRE_EXTENSIONS_PATH
sys.extensions_location = '/home/kovid/work/calibre/src/calibre/plugins'

# Path to directory containing calibre executables


sys.executables_location = '/usr/bin'

# Path to a directory for which the server has read/write permissions


# calibre config will be stored here
os.environ['CALIBRE_CONFIG_DIRECTORY'] = '/var/www/localhost/calibre-config'

del sys
del os

from calibre.library.server.main import create_wsgi_app


application = create_wsgi_app(
# The mount point of this WSGI application (i.e. the first argument to
# the WSGIScriptAlias directive). Set to empty string is mounted at /
prefix='/calibre',

# Path to the calibre library to be served


# The server process must have write permission for all files/dirs
# in this directory or BAD things will happen
path_to_library='/home/kovid/documents/demo library',

# The virtual library (restriction) to be used when serving this


# library.
virtual_library=None
)

del create_wsgi_app

Guarde este adaptador como calibre-wsgi-adapter.py en algn lugar al que el servidor tenga acceso.
Supongamos que queremos usar WSGI en Apache. En primer lugar, habilite WSGI en Apache aadiendo lo siguiente
a httpd.conf:

LoadModule wsgi_module modules/mod_wsgi.so

186 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

La tcnica exacta para habilitar el mdulo WSGI variar segn la instalacin de Apache. Una vez que tenga los
mdulos proxy habilitados, agregue las siguientes reglas a httpd.conf (o, si est usando servidores virtuales, en el
archivo conf para el servidor virtual en cuestin):

WSGIScriptAlias /calibre /var/www/localhost/cgi-bin/calibre-wsgi-adapter.py

Cambie la ruta de calibre-wsgi-adapter.py a la ubicacin donde lo haya guardado previamente (asegrese


de que Apache tenga acceso).
Eso es todo, ahora podr acceder al servidor de contenidos de calibre bajo la direccin /calibre en su servidor Apache.

Nota: Para ms ayuda en el uso de mod_wsgi en Apache, vea mod_wsgi82 (en ingls).

1.9.6 Escribir sus propios complementos para extender la funcionalidad de calibre

calibre tiene un diseo muy modular. Casi todas las funciones de calibre vienen en forma de complementos. Los
complementos se utilizan para la conversin, para la descarga de noticias (aunque stos se llaman frmulas), para
diversos componentes de la interfaz de usuario, para conectarse a diferentes dispositivos, para procesar archivos cuando
se aaden a calibre, etctera. Puede obtener una lista completa de todos los complementos integrados en calibre en
Preferencias > Complementos.
Aqu le ensearemos como crear sus propios complementos para agregar funciones a calibre.

Contents

Anatoma de un complemento de calibre (pgina 188)


Un complemento de interfaz de usuario (pgina 189)
__init__.py (pgina 189)
ui.py (pgina 191)
main.py (pgina 192)
Obtener recursos del archivo zip del complemento (pgina 195)
Habilitar la configuracin de usuario para el complemento (pgina 195)
Complementos para modificar libros (pgina 197)
main.py (pgina 197)
Aadir traducciones al complemento (pgina 200)
La API del complemento (pgina 201)
Depurar complementos (pgina 201)
Ms ejemplos de complementos (pgina 201)
Compartir sus complementos con otros (pgina 201)

Nota: Esto slo se aplica a versiones calibre >= 0.8.60

82 https://code.google.com/p/modwsgi/wiki/WhereToGetHelp

1.9. Cursillos 187


Manual de usuario de calibre, Versin 2.82.0

Anatoma de un complemento de calibre

Un complemento de calibre es muy sencillo, no es ms que un archivo zip que contiene algo de cdigo python y
otros recursos, como archivos de imagen, que necesite el complemento. Sin ms prembulos, vamos a ver un ejemplo
bsico.
Supongamos que est usando una instalacin de calibre publicar sus propios documentos electrnicos en formatos
EPUB y MOBI. Le gustara que todos los archivos generados por calibre establecieran la editorial como Hello
World, he aqu cmo hacerlo. Cree un archivo llamado __init __.py (ste es un nombre especial y siempre debe
ser el del archivo principal del complemento) e introduzca el siguiente cdigo Python en l:

import os
from calibre.customize import FileTypePlugin

class HelloWorld(FileTypePlugin):

name = 'Hello World Plugin' # Name of the plugin


description = 'Set the publisher to Hello World for all new conversions'
supported_platforms = ['windows', 'osx', 'linux'] # Platforms this plugin will
run on

author = 'Acme Inc.' # The author of this plugin


version = (1, 0, 0) # The version number of this plugin
file_types = set(['epub', 'mobi']) # The file types that this plugin
will be applied to

on_postprocess = True # Run this plugin after conversion is complete


minimum_calibre_version = (0, 7, 53)

def run(self, path_to_ebook):


from calibre.ebooks.metadata.meta import get_metadata, set_metadata
file = open(path_to_ebook, 'r+b')
ext = os.path.splitext(path_to_ebook)[-1][1:].lower()
mi = get_metadata(file, ext)
mi.publisher = 'Hello World'
set_metadata(file, mi, ext)
return path_to_ebook

Eso es todo. Para agregar este cdigo a calibre como un complemento, simplemente ejecute lo siguiente en el directorio
donde reside el archivo __init__.py:

calibre-customize -b .

Nota: En OS X, las herramientas de lnea de rdenes estn dentro del paquete calibre, por ejemplo, si ha instalado ca-
libre en &#x2F;Aplicaciones las herramientas de lnea de rdenes estn en &#x2F;Aplicaciones&#x2F;
calibre.app&#x2F;Contents&#x2F;console.app&#x2F;Contents&#x2F;MacOS&#x2F;.

Puede descargar el complemento Hello World en helloworld_plugin.zip83 .


Cada vez que utilice calibre para convertir un libro, el mtodo run() del complemento se ejecutar y el libro con-
vertido tendr como editorial predeterminada Hello World. ste es un complemento intranscendente, veamos un
ejemplo ms complejo que agrega un componente a la interfaz de usuario.

83 https://calibre-ebook.com/downloads/helloworld_plugin.zip

188 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

Un complemento de interfaz de usuario

Este complemento ocupar unos pocos archivos (para mantener el cdigo ms limpio). Le mostrar cmo obtener
recursos (imgenes o archivos de datos) desde el archivo zip del complemento, cmo permitir a los usuarios configurar
el complemento, cmo crear elementos en la interfaz de usuario de calibre y cmo acceder y consultar la base de datos
de libros de calibre.
Puede descargar este complemento desde interface_demo_plugin.zip84 Lo primero que hay que tener en cuenta es
que este archivo zip tiene muchos ms archivos en su interior, explicados a continuacin, preste especial atencin a
plugin-import-name-interface_demo.txt.
plugin-import-name-interface_demo.txt Un archivo de texto vaco utilizado para activar la gestin de
mltiples archivos en el complemento. Este archivo debe estar presente en todos los complementos
que utilicen ms de un archivo .py. Debe quedar vaco y su nombre debe ser de la forma: plugin-
import-name-some_name.txt. La presencia de este archivo le permite importar cdigo de los archi-
vos .py presentes dentro del archivo zip, usando una sentencia como sta:

from calibre_plugins.some_name.some_module import some_object

El prefijo calibre_plugins siempre debe estar presente. some_name proviene del nombre
del archivo de texto vaco. some_module se refiere al archivo some_module.py dentro del
archivo zip. Tenga en cuenta que esta importacin es tan potente como las importaciones normales
en python. Puede crear paquetes y subpaquetes de mdulos .py dentro del archivo zip, igual que lo
hara normalmente (definiendo __init__.py en cada subdirectorio), y todo debera funcionar.
El nombre que utilice para some_name entra en un espacio global de nombres compartido por
todos los complementos, as que hgalo tan nico como sea posible. Pero recuerde que debe ser
un identificador python vlido (slo letras, nmeros y guin bajo).
__init__.py Como antes, el archivo que define la clase del complemento
main.py Este archivo contiene el cdigo real que realiza alguna operacin til
ui.py Este archivo define la interfaz del complemento
images/icon.png El icono para este complemento
about.txt Un archivo de texto con informacin acerca de este complemento
translations Una carpeta que contiene archivos .mo con las traducciones de la interfaz de usuario del
complemento a diferentes idiomas. Ver ms adelante para ms detalles.
Ahora veamos el cdigo.

__init__.py

Primero, el __init__.py obligatorio para definir los metadatos del complemento:

# The class that all Interface Action plugin wrappers must inherit from
from calibre.customize import InterfaceActionBase

class InterfacePluginDemo(InterfaceActionBase):
'''
This class is a simple wrapper that provides information about the actual
plugin class. The actual interface plugin class is called InterfacePlugin
and is defined in the ui.py file, as specified in the actual_plugin field
below.

84 https://calibre-ebook.com/downloads/interface_demo_plugin.zip

1.9. Cursillos 189


Manual de usuario de calibre, Versin 2.82.0

The reason for having two classes is that it allows the command line
calibre utilities to run without needing to load the GUI libraries.
'''
name = 'Interface Plugin Demo'
description = 'An advanced plugin demo'
supported_platforms = ['windows', 'osx', 'linux']
author = 'Kovid Goyal'
version = (1, 0, 0)
minimum_calibre_version = (0, 7, 53)

#: This field defines the GUI plugin class that contains all the code
#: that actually does something. Its format is module_path:class_name
#: The specified class must be defined in the specified module.
actual_plugin = 'calibre_plugins.interface_demo.ui:InterfacePlugin'

def is_customizable(self):
'''
This method must return True to enable customization via
Preferences->Plugins
'''
return True

def config_widget(self):
'''
Implement this method and :meth:`save_settings` in your plugin to
use a custom configuration dialog.

This method, if implemented, must return a QWidget. The widget can have
an optional method validate() that takes no arguments and is called
immediately after the user clicks OK. Changes are applied if and only
if the method returns True.

If for some reason you cannot perform the configuration at this time,
return a tuple of two strings (message, details), these will be
displayed as a warning dialog to the user and the process will be
aborted.

The base class implementation of this method raises NotImplementedError


so by default no user configuration is possible.
'''
# It is important to put this import statement here rather than at the
# top of the module as importing the config class will also cause the
# GUI libraries to be loaded, which we do not want when using calibre
# from the command line
from calibre_plugins.interface_demo.config import ConfigWidget
return ConfigWidget()

def save_settings(self, config_widget):


'''
Save the settings specified by the user with config_widget.

:param config_widget: The widget returned by :meth:`config_widget`.


'''
config_widget.save_settings()

# Apply the changes


ac = self.actual_plugin_

190 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

if ac is not None:
ac.apply_settings()

La nica caracterstica notable es el campo actual_plugin. Puesto que calibre posee tanto una interfaz grfica
como de lnea de rdenes, los complementos con interfaz grfica como ste no cargan ninguna biblioteca grfica en
__init__.py. El campo actual_plugin se encargad de esto, informando a calibre de que el complemento real se encuentra
en otro archivo dentro del archivo zip, que slo se cargar en un contexto de interfaz grfica.
Recuerde que para que esto funcione, debe tener un archivo plugin-import-name-some_name.txt en el archivo zip del
complemento, como se discuti anteriormente.
Tambin hay un par de mtodos para permitir la configuracin por parte del usuario del complemento. stos se discuten
ms adelante.

ui.py

Veamos ahora ui.py, que define la interfaz grfica del complemento. El cdigo fuente est explcitamente comentado
y se explica por s mismo:
# The class that all interface action plugins must inherit from
from calibre.gui2.actions import InterfaceAction
from calibre_plugins.interface_demo.main import DemoDialog

class InterfacePlugin(InterfaceAction):

name = 'Interface Plugin Demo'

# Declare the main action associated with this plugin


# The keyboard shortcut can be None if you dont want to use a keyboard
# shortcut. Remember that currently calibre has no central management for
# keyboard shortcuts, so try to use an unusual/unused shortcut.
action_spec = ('Interface Plugin Demo', None,
'Run the Interface Plugin Demo', 'Ctrl+Shift+F1')

def genesis(self):
# This method is called once per plugin, do initial setup here

# Set the icon for this interface action


# The get_icons function is a builtin function defined for all your
# plugin code. It loads icons from the plugin zip file. It returns
# QIcon objects, if you want the actual data, use the analogous
# get_resources builtin function.
#
# Note that if you are loading more than one icon, for performance, you
# should pass a list of names to get_icons. In this case, get_icons
# will return a dictionary mapping names to QIcons. Names that
# are not found in the zip file will result in null QIcons.
icon = get_icons('images/icon.png')

# The qaction is automatically created from the action_spec defined


# above
self.qaction.setIcon(icon)
self.qaction.triggered.connect(self.show_dialog)

def show_dialog(self):

1.9. Cursillos 191


Manual de usuario de calibre, Versin 2.82.0

# The base plugin object defined in __init__.py


base_plugin_object = self.interface_action_base_plugin
# Show the config dialog
# The config dialog can also be shown from within
# Preferences->Plugins, which is why the do_user_config
# method is defined on the base plugin class
do_user_config = base_plugin_object.do_user_config

# self.gui is the main calibre GUI. It acts as the gateway to access


# all the elements of the calibre user interface, it should also be the
# parent of the dialog
d = DemoDialog(self.gui, self.qaction.icon(), do_user_config)
d.show()

def apply_settings(self):
from calibre_plugins.interface_demo.config import prefs
# In an actual non trivial plugin, you would probably need to
# do something based on the settings in prefs
prefs

main.py

El cdigo que implementa el cuadro de dilogo Interface Plugin Demo.

from PyQt5.Qt import QDialog, QVBoxLayout, QPushButton, QMessageBox, QLabel

from calibre_plugins.interface_demo.config import prefs

class DemoDialog(QDialog):

def __init__(self, gui, icon, do_user_config):


QDialog.__init__(self, gui)
self.gui = gui
self.do_user_config = do_user_config

# The current database shown in the GUI


# db is an instance of the class LibraryDatabase from db/legacy.py
# This class has many, many methods that allow you to do a lot of
# things. For most purposes you should use db.new_api, which has
# a much nicer interface from db/cache.py
self.db = gui.current_db

self.l = QVBoxLayout()
self.setLayout(self.l)

self.label = QLabel(prefs['hello_world_msg'])
self.l.addWidget(self.label)

self.setWindowTitle('Interface Plugin Demo')


self.setWindowIcon(icon)

self.about_button = QPushButton('About', self)


self.about_button.clicked.connect(self.about)
self.l.addWidget(self.about_button)

192 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

self.marked_button = QPushButton(
'Show books with only one format in the calibre GUI', self)
self.marked_button.clicked.connect(self.marked)
self.l.addWidget(self.marked_button)

self.view_button = QPushButton(
'View the most recently added book', self)
self.view_button.clicked.connect(self.view)
self.l.addWidget(self.view_button)

self.update_metadata_button = QPushButton(
'Update metadata in a book\'s files', self)
self.update_metadata_button.clicked.connect(self.update_metadata)
self.l.addWidget(self.update_metadata_button)

self.conf_button = QPushButton(
'Configure this plugin', self)
self.conf_button.clicked.connect(self.config)
self.l.addWidget(self.conf_button)

self.resize(self.sizeHint())

def about(self):
# Get the about text from a file inside the plugin zip file
# The get_resources function is a builtin function defined for all your
# plugin code. It loads files from the plugin zip file. It returns
# the bytes from the specified file.
#
# Note that if you are loading more than one file, for performance, you
# should pass a list of names to get_resources. In this case,
# get_resources will return a dictionary mapping names to bytes. Names that
# are not found in the zip file will not be in the returned dictionary.
text = get_resources('about.txt')
QMessageBox.about(self, 'About the Interface Plugin Demo',
text.decode('utf-8'))

def marked(self):
''' Show books with only one format '''
db = self.db.new_api
matched_ids = {book_id for book_id in db.all_book_ids() if len(db.
formats(book_id)) == 1}

# Mark the records with the matching ids


# new_api does not know anything about marked books, so we use the full
# db object
self.db.set_marked_ids(matched_ids)

# Tell the GUI to search for all marked records


self.gui.search.setEditText('marked:true')
self.gui.search.do_search()

def view(self):
''' View the most recently added book '''
most_recent = most_recent_id = None
db = self.db.new_api
for book_id, timestamp in db.all_field_for('timestamp', db.all_book_ids()).
iteritems():

if most_recent is None or timestamp > most_recent:


most_recent = timestamp

1.9. Cursillos 193


Manual de usuario de calibre, Versin 2.82.0

most_recent_id = book_id

if most_recent_id is not None:


# Get a reference to the View plugin
view_plugin = self.gui.iactions['View']
# Ask the view plugin to launch the viewer for row_number
view_plugin._view_calibre_books([most_recent_id])

def update_metadata(self):
'''
Set the metadata in the files in the selected book's record to
match the current metadata in the database.
'''
from calibre.ebooks.metadata.meta import set_metadata
from calibre.gui2 import error_dialog, info_dialog

# Get currently selected books


rows = self.gui.library_view.selectionModel().selectedRows()
if not rows or len(rows) == 0:
return error_dialog(self.gui, 'Cannot update metadata',
'No books selected', show=True)
# Map the rows to book ids
ids = list(map(self.gui.library_view.model().id, rows))
db = self.db.new_api
for book_id in ids:
# Get the current metadata for this book from the db
mi = db.get_metadata(book_id, get_cover=True, cover_as_data=True)
fmts = db.formats(book_id)
if not fmts:
continue
for fmt in fmts:
fmt = fmt.lower()
# Get a python file object for the format. This will be either
# an in memory file or a temporary on disk file
ffile = db.format(book_id, fmt, as_file=True)
ffile.seek(0)
# Set metadata in the format
set_metadata(ffile, mi, fmt)
ffile.seek(0)
# Now replace the file in the calibre library with the updated
# file. We dont use add_format_with_hooks as the hooks were
# already run when the file was first added to calibre.
db.add_format(book_id, fmt, ffile, run_hooks=False)

info_dialog(self, 'Updated files',


'Updated the metadata in the files of %d book(s)'%len(ids),
show=True)

def config(self):
self.do_user_config(parent=self)
# Apply the changes
self.label.setText(prefs['hello_world_msg'])

194 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

Obtener recursos del archivo zip del complemento

El sistema de carga de complementos de calibre tiene predefinidas un par de funciones que permiten obtener archivos
desde el archivo zip del complemento de manera prctica.
get_resources(nombre_o_lista_de_nombres) Esta funcin debe ejecutarse con una lista de rutas de ac-
ceso a archivos dentro del archivo zip. Por ejemplo, para acceder al archivo icon.png en la images
del archivo zip, utilizara: images/icon.png. Use siempre una barra inclinada a la derecha co-
mo separador de ruta, incluso en windows. Cuando se pasa un solo nombre, la funcin devolver los
bytes en bruto de ese archivo o None si el nombre no se encuentra en el archivo zip. Si se pasa ms
de un nombre, entonces devuelve un diccionario de mapeo de nombres a bytes. Si no se encuentra
un nombre, no estar presente en el diccionario devuelto.
get_icons(nombre_o_lista_de_nombres) Una envoltura prctica para get_resources() que crea objetos
QIcon a partir de los bytes devueltos por get_resources. Si un nombre no se encuentra en el archivo
zip, el QIcon correspondiente ser nulo.

Habilitar la configuracin de usuario para el complemento

To allow users to configure your plugin, you must define three methods in your base plugin class, is_customizable,
config_widget and save_settings as shown below:
def is_customizable(self):
'''
This method must return True to enable customization via
Preferences->Plugins
'''
return True

def config_widget(self):
'''
Implement this method and :meth:`save_settings` in your plugin to
use a custom configuration dialog.

This method, if implemented, must return a QWidget. The widget can have
an optional method validate() that takes no arguments and is called
immediately after the user clicks OK. Changes are applied if and only
if the method returns True.

If for some reason you cannot perform the configuration at this time,
return a tuple of two strings (message, details), these will be
displayed as a warning dialog to the user and the process will be
aborted.

The base class implementation of this method raises NotImplementedError


so by default no user configuration is possible.
'''
# It is important to put this import statement here rather than at the
# top of the module as importing the config class will also cause the
# GUI libraries to be loaded, which we do not want when using calibre
# from the command line
from calibre_plugins.interface_demo.config import ConfigWidget
return ConfigWidget()

def save_settings(self, config_widget):


'''

1.9. Cursillos 195


Manual de usuario de calibre, Versin 2.82.0

Save the settings specified by the user with config_widget.

:param config_widget: The widget returned by :meth:`config_widget`.


'''
config_widget.save_settings()

# Apply the changes


ac = self.actual_plugin_
if ac is not None:
ac.apply_settings()

calibre tiene muchas maneras diferentes de almacenar los datos de configuracin (un legado de su larga historia). El
mtodo recomendado es usar la clase JSONConfig, que almacena la informacin de configuracin en un archivo .json.
El cdigo para gestionar los datos de configuracin en el complemento de demostracin est en config.py:

from PyQt5.Qt import QWidget, QHBoxLayout, QLabel, QLineEdit

from calibre.utils.config import JSONConfig

# This is where all preferences for this plugin will be stored


# Remember that this name (i.e. plugins/interface_demo) is also
# in a global namespace, so make it as unique as possible.
# You should always prefix your config file name with plugins/,
# so as to ensure you dont accidentally clobber a calibre config file
prefs = JSONConfig('plugins/interface_demo')

# Set defaults
prefs.defaults['hello_world_msg'] = 'Hello, World!'

class ConfigWidget(QWidget):

def __init__(self):
QWidget.__init__(self)
self.l = QHBoxLayout()
self.setLayout(self.l)

self.label = QLabel('Hello world &message:')


self.l.addWidget(self.label)

self.msg = QLineEdit(self)
self.msg.setText(prefs['hello_world_msg'])
self.l.addWidget(self.msg)
self.label.setBuddy(self.msg)

def save_settings(self):
prefs['hello_world_msg'] = unicode(self.msg.text())

El objeto prefs est ahora disponible en todo el cdigo del complemento simplemente con:

from calibre_plugins.interface_demo.config import prefs

Puede observar que el objeto prefs se usa en main.py:

def config(self):
self.do_user_config(parent=self)
# Apply the changes

196 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

self.label.setText(prefs['hello_world_msg'])

Complementos para modificar libros

Vamos a cambiar de tercio y enfocarnos en la creacin de un complemento para aadir herramientas al editor de libros
de calibre. El complemento est disponible aqu: editor_demo_plugin.zip85 .
El primer paso, como para todos los complementos es crear el archivo vaco con el nombre de importacin descrito
anteriormente (pgina 189). Vamos a nombrar el archivo plugin-import-name-editor_plugin_demo.
txt.
Ahora creamos el archivo obligatorio __init__.py que contiene los metadatos del complemento: nombre, autor,
versin, etc.

from calibre.customize import EditBookToolPlugin

class DemoPlugin(EditBookToolPlugin):

name = 'Edit Book plugin demo'


version = (1, 0, 0)
author = 'Kovid Goyal'
supported_platforms = ['windows', 'osx', 'linux']
description = 'A demonstration of the plugin interface for the ebook editor'
minimum_calibre_version = (1, 46, 0)

Un solo complemento del editor puede proporcionar mltiples herramientas; cada herramienta corresponde a un nico
botn en la barra de herramientas y entrada en el men Complementos del editor. stos pueden tener submens en el
caso de que la herramienta posea mltiples acciones relacionadas.
Todas las herramientas deben estar definidas en el archivo main.py del complemento. Cada herramienta es una
clase que hereda de la clase calibre.gui2.tweak_book.plugin.Tool (pgina 303). Echemos un vistazo
al main.py del complemento de demostracin; el cdigo fuente est profusamente comentado y se explica por s
mismo. Lea la documentacin de la API de la clase :clase:calibre.gui2.tweak_book.plugin.Tool para ms detalles.

main.py

Aqu veremos la definicin de una herramienta que multiplicar todos los tamaos de letra en el libro por un nme-
ro proporcionado por el usuario. Esta herramienta demuestra varios conceptos importantes que se necesitarn para
desarrollar otros complementos, por lo que debe leer el cdigo fuente (muy comentado) cuidadosamente.

import re
from PyQt5.Qt import QAction, QInputDialog
from cssutils.css import CSSRule

# The base class that all tools must inherit from


from calibre.gui2.tweak_book.plugin import Tool

from calibre import force_unicode


from calibre.gui2 import error_dialog

85 https://calibre-ebook.com/downloads/editor_demo_plugin.zip

1.9. Cursillos 197


Manual de usuario de calibre, Versin 2.82.0

from calibre.ebooks.oeb.polish.container import OEB_DOCS, OEB_STYLES, serialize

class DemoTool(Tool):

#: Set this to a unique name it will be used as a key


name = 'demo-tool'

#: If True the user can choose to place this tool in the plugins toolbar
allowed_in_toolbar = True

#: If True the user can choose to place this tool in the plugins menu
allowed_in_menu = True

def create_action(self, for_toolbar=True):


# Create an action, this will be added to the plugins toolbar and
# the plugins menu
ac = QAction(get_icons('images/icon.png'), 'Magnify fonts', self.gui) # noqa
if not for_toolbar:
# Register a keyboard shortcut for this toolbar action. We only
# register it for the action created for the menu, not the toolbar,
# to avoid a double trigger
self.register_shortcut(ac, 'magnify-fonts-tool', default_keys=(
'Ctrl+Shift+Alt+D',))

ac.triggered.connect(self.ask_user)
return ac

def ask_user(self):
# Ask the user for a factor by which to multiply all font sizes
factor, ok = QInputDialog.getDouble(
self.gui, 'Enter a magnification factor', 'Allow font sizes in the book
will be multiplied by the specified factor',

value=2, min=0.1, max=4


)
if ok:
# Ensure any in progress editing the user is doing is present in the
container

self.boss.commit_all_editors_to_container()
try:
self.magnify_fonts(factor)
except Exception:
# Something bad happened report the error to the user
import traceback
error_dialog(self.gui, _('Failed to magnify fonts'), _(
'Failed to magnify fonts, click "Show details" for more info'),
det_msg=traceback.format_exc(), show=True)
# Revert to the saved restore point
self.boss.revert_requested(self.boss.global_undo.previous_container)
else:
# Show the user what changes we have made, allowing her to
# revert them if necessary
self.boss.show_current_diff()
# Update the editor UI to take into account all the changes we
# have made
self.boss.apply_container_update_to_gui()

def magnify_fonts(self, factor):


# Magnify all font sizes defined in the book by the specified factor
# First we create a restore point so that the user can undo all changes

198 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

# we make.
self.boss.add_savepoint('Before: Magnify fonts')

container = self.current_container # The book being edited as a container


object

# Iterate over all style declarations in the book, this means css
# stylesheets, <style> tags and style="" attributes
for name, media_type in container.mime_map.iteritems():
if media_type in OEB_STYLES:
# A stylesheet. Parsed stylesheets are cssutils CSSStylesheet
# objects.
self.magnify_stylesheet(container.parsed(name), factor)
container.dirty(name) # Tell the container that we have changed the
stylesheet

elif media_type in OEB_DOCS:


# A HTML file. Parsed HTML files are lxml elements

for style_tag in container.parsed(name).xpath('//*[local-name="style"]


'):
if style_tag.text and style_tag.get('type', None) in {None, 'text/
css'}:
# We have an inline CSS <style> tag, parse it into a
# stylesheet object
sheet = container.parse_css(style_tag.text)
self.magnify_stylesheet(sheet, factor)
style_tag.text = serialize(sheet, 'text/css', pretty_
print=True)
container.dirty(name) # Tell the container that we have
changed the stylesheet
for elem in container.parsed(name).xpath('//*[@style]'):
# Process inline style attributes
block = container.parse_css(elem.get('style'), is_
declaration=True)

self.magnify_declaration(block, factor)
elem.set('style', force_unicode(block.getCssText(separator=' '),
'utf-8'))

def magnify_stylesheet(self, sheet, factor):


# Magnify all fonts in the specified stylesheet by the specified
# factor.
for rule in sheet.cssRules.rulesOfType(CSSRule.STYLE_RULE):
self.magnify_declaration(rule.style, factor)

def magnify_declaration(self, style, factor):


# Magnify all fonts in the specified style declaration by the specified
# factor
val = style.getPropertyValue('font-size')
if not val:
return
# see if the font-size contains a number
num = re.search(r'[0-9.]+', val)
if num is not None:
num = num.group()
val = val.replace(num, '%f' % (float(num) * factor))
style.setProperty('font-size', val)
# We should also be dealing with the font shorthand property and
# font sizes specified as non numbers, but those are left as exercises

1.9. Cursillos 199


Manual de usuario de calibre, Versin 2.82.0

# for the reader

Vamos a analizar main.py. Vemos que define una nica herramienta, llamada Magnify fonts. Esta herramienta le
pedir al usuario un nmero y multiplicar todos los tamaos de letra en el libro por dicho nmero.
La primera cosa importante es el nombre de la herramienta que debe establecer a algn texto relativamente nico, ya
que se utilizar como clave para esta herramienta.
El siguiente punto de entrada importante es calibre.gui2.tweak_book.plugin.Tool.
create_action() (pgina 304). Este mtodo crea los objetos QAction que aparecen en la barra de herramientas y
en el men de complementos. Tambin, opcionalmente, asigna un atajo de teclado que el usuario puede personalizar.
La seal que se genera en el objeto QAction est conectada con el mtodo ask_user() que pide al usuario el
multiplicador del tamao de letra, y luego ejecuta el cdigo de ampliacin.
El cdigo de aumento est bien comentado y es bastante simple. Lo principal que hay que destacar es que se obtiene
una referencia a la ventana del editor como self.gui y al Boss del editor como self.boss. El Boss es el objeto
que controla la interfaz de usuario del editor. Tiene muchos mtodos tiles, que se documentan en la clase calibre.
gui2.tweak_book.boss.Boss (pgina 304).
Finalmente est self.current_container, que es una referencia al libro que se est editando como un objeto
calibre.ebooks.oeb.polish.container.Container (pgina 296). ste representa el libro como una
coleccin de archivos HTML, CSS e imgenes y posee diversos mtodos prcticos para hacer varias cosas tiles.
El objeto contenedor y varias funciones utilitarias que se pueden reutilizar en el cdigo de los complementos estn
documentados en Documentacin de la API para las herramientas de modificacin de libros electrnicos (pgina 295).

Aadir traducciones al complemento

Puede traducir todos los textos de la interfaz de usuario del complemento y mostrarlos en el idioma en que est
configurada la interfaz principal de calibre.
El primer paso es ir al cdigo fuente del complemento y marcar todos los textos visibles por el usuario como traduci-
bles, encerrndolos con _(). Por ejemplo:

action_spec = (_('My plugin'), None, _('My plugin is cool'), None)

Despus utilice algn programa para generar archivos .po para el cdigo fuente del complemento. Debe haber un
archivo .po para cada idioma al que lo quiera traducir. Por ejemplo: de.po para el alemn, fr.po para el francs, etc.
Puede utilizar el programa poedit86 para esto.
Enve estos archivos .po a los traductores. Cuando reciba los archivos traducidos, complelos en archivos .mo. Puede
utilizar nuevamente poedit para ello, o simplemente ejecutar:

calibre-debug -c "from calibre.translations.msgfmt import main; main()" filename.po

Ponga los archivos .mo en la carpeta translations del complemento.


El ltimo paso es simplemente ejecutar la funcin load_translations() al principio de los archivos .py del complemento.
Por motivos de rendimiento, slo debe llamar a esta funcin en aquellos archivos .py que realmente poseen textos
traducibles. As que en un complemento de interfaz de usuario tpico, la ejecutara en ui.py pero no en __init__.
py.
Puede probar las traducciones del complemento cambiando el idioma de la interfaz de usuario en calibre bajo Prefe-
rencias > Apariencia o ejecutando calibre as:

CALIBRE_OVERRIDE_LANG=de calibre

86 https://poedit.net/

200 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

Sustituya de por el cdigo del idioma que desea probar.

La API del complemento

Como ya se habr dado cuenta, un complemento en calibre es una clase. Hay diferentes clases para los diferentes
tipos de complementos en calibre. Los detalles de cada clase, incluyendo la clase base de todos los complementos, se
pueden encontrar en Documentacin de la API para complementos (pgina 212).
Es casi seguro que el complemento va a usar el cdigo de calibre. Para saber cmo encontrar los distintos elementos
de funcionalidad en el cdigo base de calibre, lea la seccin Estructura del cdigo (pgina 282).

Depurar complementos

El primer paso, el ms importante, es ejecutar calibre en modo de depuracin. Puede hacer esto desde la lnea de
rdenes con:

calibre-debug -g

O desde el mismo calibre, pulsando con el botn derecho en Preferencias o usando el atajo de teclado Ctrl+Shift+R.
Cuando se ejecuta desde la lnea de rdenes, la salida de depuracin se enviar a la consola, si se ejecuta dentro de
calibre, la salida ir a un archivo txt.
Puede insertar sentencias de impresin en cualquier lugar en el cdigo fuente del complemento, tendrn efecto en el
modo de depuracin. Recuerde, esto es python, no debe necesitar ms que sentencias de impresin para depurar ;) He
desarrollado todo calibre usando slo esta tcnica de depuracin.
Puede probar rpidamente los cambios en el complemento con la siguiente orden:

calibre-debug -s; calibre-customize -b /path/to/your/plugin/directory; calibre

Esto cerrar calibre, esperar hasta que se cierre completamente, despus actualiza el complemento en calibre y vuelve
a iniciar calibre.

Ms ejemplos de complementos

Puede encontrar una lista de muchos complementos de calibre ms complejos aqui87 .

Compartir sus complementos con otros

Si desea compartir los complementos que ha creado con otros usuarios de calibre, inicie un nuevo hilo adjuntando el
complemento en el foros de complementos de calibre88 (en ingls).

1.9.7 Escribir frmulas matemticas en libros electrnicos

El visor de libros de calibre tiene la capacidad de mostrar frmulas matemticas incrustadas en libros electrnicos
(archivos ePub y HTML). Puede escribir las frmulas directamente con TeX, MathML o ASCIIMath. El visor de
calibre usa la excelente biblioteca MathJax89 para procesar las frmulas. Esto es un breve cursillo para crear libros con
frmulas que funcionen con el visor de calibre.
87 https://www.mobileread.com/forums/showthread.php?t=118764
88 https://www.mobileread.com/forums/forumdisplay.php?f=237
89 https://www.mathjax.org

1.9. Cursillos 201


Manual de usuario de calibre, Versin 2.82.0

Un archivo HTML sencillo con frmulas

Puede escribir frmulas matemticas directamente en el texto de un archivo HTML sencillo y el visor de calibre las
mostrar con una composicin matemtica adecuada. En el ejemplo de abajo, usamos la notacin de TeX para las
frmulas. Ver que puede usar las rdenes normales de TeX, con la pequea precaucin de que los signos &, < y >
deben escrbirse como &amp;, &lt; y &gt respectivamente.
El primer paso es informar a calibre de que este documento contiene frmulas. Para ello se aade el siguiente fragmente
do cdigo a la seccin <head> del archivo HTML:
<script type="text/x-mathjax-config"></script>

Eso es todo, ahora ya se pueden escribir formulas igual que se hara en un archivo .tex. Por ejemplo, stas son las
ecuaciones de Lorentz:
<h2>The Lorenz Equations</h2>

<p>
\begin{align}
\dot{x} &amp; = \sigma(y-x) \\
\dot{y} &amp; = \rho x - y - xz \\
\dot{z} &amp; = -\beta z + xy
\end{align}
</p>

Este fragmento aparece como la siguiente captura de pantalla en el visor de calibre.

Figura 1.2: Las ecuaciones de Lorentz

El archivo HTML completo, con ms ecuaciones y frmulas en el texto se reproduce ms abajo. Puede convertir este
archivo HTML a EPUB con calibre para obtener un libro electrnico fcilmente distribuible a otras personas.
<!DOCTYPE html>
<html>
<!-- Copyright (c) 2012 Design Science, Inc. -->
<head>
<title>Math Test Page</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />

<!-- This script tag is needed to make calibre's ebook-viewer recpgnize that this
file needs math typesetting -->

<script type="text/x-mathjax-config">
// This line adds numbers to all equations automatically, unless explicitly
suppressed.

MathJax.Hub.Config({ TeX: { equationNumbers: {autoNumber: "all"} } });


</script>

202 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

<style>
h1 {text-align:center}
h2 {
font-weight: bold;
background-color: #DDDDDD;
padding: .2em .5em;
margin-top: 1.5em;
border-top: 3px solid #666666;
border-bottom: 2px solid #999999;
}
</style>
</head>
<body>

<h1>Sample Equations</h1>

<h2>The Lorenz Equations</h2>

<p>
\begin{align}
\dot{x} &amp; = \sigma(y-x) \label{lorenz}\\
\dot{y} &amp; = \rho x - y - xz \\
\dot{z} &amp; = -\beta z + xy
\end{align}
</p>

<h2>The Cauchy-Schwarz Inequality</h2>

<p>\[
\left( \sum_{k=1}^n a_k b_k \right)^{\!\!2} \leq
\left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right)
\]</p>

<h2>A Cross Product Formula</h2>

<p>\[
\mathbf{V}_1 \times \mathbf{V}_2 =
\begin{vmatrix}
\mathbf{i} &amp; \mathbf{j} &amp; \mathbf{k} \\
\frac{\partial X}{\partial u} &amp; \frac{\partial Y}{\partial u} &amp; 0 \\
\frac{\partial X}{\partial v} &amp; \frac{\partial Y}{\partial v} &amp; 0 \\
\end{vmatrix}
\]</p>

<h2>The probability of getting \(k\) heads when flipping \(n\) coins is:</h2>

<p>\[P(E) = {n \choose k} p^k (1-p)^{ n-k} \]</p>

<h2>An Identity of Ramanujan</h2>

<p>\[
\frac{1}{(\sqrt{\phi \sqrt{5}}-\phi) e^{\frac25 \pi}} =
1+\frac{e^{-2\pi}} {1+\frac{e^{-4\pi}} {1+\frac{e^{-6\pi}}
{1+\frac{e^{-8\pi}} {1+\ldots} } } }
\]</p>

<h2>A Rogers-Ramanujan Identity</h2>

1.9. Cursillos 203


Manual de usuario de calibre, Versin 2.82.0

<p>\[
1 + \frac{q^2}{(1-q)}+\frac{q^6}{(1-q)(1-q^2)}+\cdots =
\prod_{j=0}^{\infty}\frac{1}{(1-q^{5j+2})(1-q^{5j+3})},
\quad\quad \text{for $|q|&lt;1$}.
\]</p>

<h2>Maxwell's Equations</h2>

<p>
\begin{align}
\nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}
{\partial t} &amp; = \frac{4\pi}{c}\vec{\mathbf{j}} \\

\nabla \cdot \vec{\mathbf{E}} &amp; = 4 \pi \rho \\


\nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}
{\partial t} &amp; = \vec{\mathbf{0}} \\

\nabla \cdot \vec{\mathbf{B}} &amp; = 0


\end{align}
</p>

<h2>In-line Mathematics</h2>

<p>While display equations look good for a page of samples, the


ability to mix math and text in a paragraph is also important. This
expression \(\sqrt{3x-1}+(1+x)^2\) is an example of an inline equation. As
you see, equations can be used this way as well, without unduly
disturbing the spacing between lines.</p>

<h2>References to equations</h2>

<p>Here is a reference to the Lorenz Equations (\ref{lorenz}). Clicking on the


equation number will take you back to the equation.</p>

</body>
</html>

Ms informacin

Puesto que el visor de calibre usa la biblioteca MathJax para mostrar las frmulas, el mejor lugar para encontrar ms
informacin sobre frmulas matemticas en libros electrnicos y obtener ayuda es la pgina web de MathJax90 .

1.9.8 Crear catlogos AZW3 EPUB MOBI

La funcin Crear catlogo de calibre le permite crear un catlogo de su biblioteca en diferentes formatos. Este
archivo de ayuda describe las opciones para generar catlogos en los formatos AZW3, EPUB y MOBI.

Seleccionar libros para catalogar (pgina 205)


Secciones incluidas (pgina 206)
Prefijos (pgina 206)
Libros excluidos (pgina 207)

90 https://www.mathjax.org

204 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

Gneros excluidos (pgina 207)


Otras opciones (pgina 208)
Portadas personalizadas para catlogos (pgina 209)
Otras fuentes de ayuda (pgina 209)

Seleccionar libros para catalogar

Si quiere catalogar todos los libros de su biblioteca, asegrese de no tener ningn criterio de bsqueda ni filtro seleccio-
nados en la ventana principal. Si tiene un slo libro seleccionado, todos los libros de la biblioteca sern considerados
para el catlogo que genere. Puede excluir libros individuales segn distintos criterios; vase la seccin Gneros ex-
cluidos (pgina 207) abajo para ms informacin.
Si desea catalogar slo algunos libros de la biblioteca, tiene dos opciones:
Cree una seleccin mltiple de los libros que desea catalogar. Si ha seleccionado ms de un libro en la ventana
principal de calibre, slo los libros seleccionados se catalogarn.
Use el campo de Bsqueda o el de Explorador de etiquetas para filtrar los libros que debern mostrarse. Slo se
catalogarn los libros que se muestran en la ventana principal.
Para comenzar la generacin del catlogo, seleccione en el men Convertir libros > Crear un catlogo con los libros
en su la biblioteca calibre. Tambin puede aadir un botn Crear catlogo a la barra de herramientas en Preferencias
> Interfaz > a la barra de herramientas para facilitar el acceso al dilogo Generar catlogos.

En Opciones del catlogo, seleccione AZW3, EPUB o MOBI como formato del catlogo. En el campo Ttulo del
catlogo escriba un nombre para el catlogo que va a generar. Si ya existe un catlogo con el mismo nombre y formato,
ste ser reemplazado por el nuevo catlogo generado.

Si se activa Enviar el catlogo automticamente al dispositivo, el catlogo que se genere se descargar en el dispositivo
conectado una vez creado.

1.9. Cursillos 205


Manual de usuario de calibre, Versin 2.82.0

Secciones incluidas

Las secciones con la casilla marcada se incluirn en el catlogo generado:


Autores todos los libros, ordenados por autor, se presentan en una lista. Los libros sin serie aparecern
primero, seguidos por los libros con serie.
Ttulos todos los libros, ordenados por ttulo, aparecen en una lista.
Series todos los libros que pertenecen a una serie, ordenados por serie, aparecen en una lista.
Gneros gneros individuales se presentan en una lista, ordenados por autor y serie.
Aadidos recientemente todos los libros, por orden cronolgico inverso. La lista incluye los libros que fueron
aadidos en los ltimos 30 das, seguidos por un listado de libros aadidos mes a mes.
Descripciones pgina con una descripcin detallada de cada libro, incluyendo una imagen miniatura de la
portada y comentarios. Ordenados por autor, con los libros sin serie, seguidos por los libros con serie.

Prefijos

Las reglas de prefijo permiten aadir un prefijo a las listas de libros cuando cumplan ciertos criterios. Por ejemplo,
puede marcar los libros ledos los libros en su lista de deseos con una X.
La casilla en la primera columna activa la regla. Nombre es el nombre de la regla que usted asigne. Campo puede ser
Etiquetas una columna personalizada de su biblioteca. Valor es el contenido que Campo debe coincidir. Cuando se
cumpla la regla que se indica por un prefijo, el libro tendra el Prefijo seleccionado.
El el ejemplo anterior se especificaron tres reglas de prefijo:
1. Libro ledo especifica que el libro con una fecha cualquiera dentro de la columna personalizada, llamada Ledo
por ltima vez tendr un prefijo sealado con una marca de verificacin.
2. El artculo Deseado indica que aquellos libros con la etiqueta Deseado sern precedidos por una cruz.
3. Biblioteca especifica que cualquier libro con valor Verdadero (o S) en la columna personalizada Disponible
en la biblioteca estar precedido por una flecha doble.
El prefijo aparece cuando la regla se cumple. Las reglas desactivadas o incompletas se ignoran.

206 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

Libros excluidos

Las reglas de Exclusin le permiten indicar los libros que no se incluirn en el catlogo.
La casilla en la primera columna activa la regla. Nombre es el nombre de la regla que usted asigne. Campo puede ser
Etiquetas o una columna personalizada de la biblioteca. Valor es el contenido de Campo que debe coincidir. Cuando
una regla de exclusin se cumpla, el libro se excluir del catlogo que se genere.
En el ejemplo anterior se han especificado dos reglas de exclusin:
1. La regla Catlogos indica que el libro con la etiqueta Catlogo se excluir del catlogo que genere.
2. La regla Libros archivados especifica que cualquier libro con un valor de Archivado en la columna personalizada
Estado ser excluido del catlogo generado.
Todas las reglas se evalan para cada libro. Las reglas desactivadas o incompletas se ignoran.

Gneros excluidos

Cuando el catlogo se genera, las etiquetas en su base de datos se usan como gneros. Por ejemplo, si usted usa las
etiquetas Ficcin y No ficcin. Estas etiquetas aparecern como gneros en el catlogo, con los libros en las
listas de gnero segn las etiquetas asignadas. Cada libro aparecer en la lista de los gneros para los que tenga la
correspondiente etiqueta.
Puede usar algunas de las etiquetas para diferentes propsitos, por ejemplo, un + puede indicar libro ledo la eti-
queta entre corchetes como [Promocin de Amazon] para indicar el origen de un libro. La expresin regular :gila-
bel:Gneros excluidos le permite especificar las etiquetas que no desee usar como gnero en el catlogo generado.
La expresin predeterminada [.+]|+ se emplea para que las etiquetas de tipo [etiqueta], +, as como la etiqueta
predeterminada para los libros ledos, se excluyan de ser empleadas en la lista de gneros del catlogo generado.
Tambin puede usar un nombre de etiqueta exacto en una expresin regular. Por ejemplo, [Promocin de Amazon]
o [Proyecto Gutenberg]. Si quiere crear una lista de etiquetas exactas que deben excluirse, ponga un guin (barra
vertical) entre ellas: [Promocin de Amazon]|[Proyecto Gutenberg].
Resultado de expresin regular muestra la etiquetas a excluir cuando se genere el catlogo, tomando en cuenta, las
etiquetas en su base de datos y a la expresin regular que usted seleccion. El resultado se actualiza con forme usted
modifica la expresin regular.

1.9. Cursillos 207


Manual de usuario de calibre, Versin 2.82.0

Otras opciones

Portada del catlogo indica si se deber generar una nueva portada o si se usar una portada existente. Es posible crear
una portada personalizada para los catlogos, vase Portadas personalizadas para catlogos (pgina 209) para ms
informacin. Si ha creado una portada personalizada que quiere volver a usar, seleccione Utilizar portada actual. En
caso contrario seleccione Generar nueva portada.
Nota de descripcin extra indica el contenido de la columna personalizada que se incluir en la pgina de descripcin,
junto a la imagen miniatura de portada. Por ejemplo, puede mostrar la fecha de la ltima vez que ley un libro al usar
la columna personalizada Ledo por ltima vez. Para un uso avanzado de la opcin de nota de descripcin, vase este
mensaje en el foro de calibre91 .
Thumb width specifies a width preference for cover thumbnails included with Descriptions pages. Thumbnails are
cached to improve performance. To experiment with different widths, try generating a catalog with just a few books
until youve determined your preferred width, then generate your full catalog. The first time a catalog is generated
with a new thumbnail width, performance will be slower, but subsequent builds of the catalog will take advantage of
the thumbnail cache.
Unir con comentarios especifica que al combinar el contenido del campo de una columna personalizada con el campo
metadatos Comentarios, la informacin no se alterar cuando se cree el catlogo. Por ejemplo, usted tiene una columna
personalizada de nombre Biografa del autor que desea agregar al campo metadatos Comentarios. Puede elegir insertar
el contenido de la columna personalizada antes o despus de la seccin de comentarios y si lo desea, puede separarlos
con un guin. Los tipos de columna personalizada que se pueden seleccionar son texto, comentarios y compuesta.

91 https://www.mobileread.com/forums/showpost.php?p=1335767&postcount=395

208 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

Portadas personalizadas para catlogos

Con el complemento Generate Cover92 instalado, puede crear


portadas personalizadas para el catlogo. Para instalar el complemento, vaya a Preferencias > Avanzado > Com-
plementos > Obtener nuevos complementos.

Otras fuentes de ayuda

Para ms informacin sobre las funciones de catlogo de calibre, vase el foro de MobileRead sobre Creating Catalogs
- Start here93 , donde encontrar informacin sobre cmo personalizar las plantillas de catlogo y cmo enviar reportes
sobre errores.
Para hacer preguntas o discutir sobre las funciones del catlogo calibre con otros usuarios, visite el foro de nombre
MobileRead Calibre Catalogs94 .

1.9.9 Bibliotecas virtuales

En calibre, una biblioteca virtual es una manera de hacer que calibre abra slo un subconjunto de una biblioteca
normal. Por ejemplo, es posible que desee trabajar nicamente con los libros de un determinado autor, o slo con
libros que tengan una cierta etiqueta. El uso de las bibliotecas virtuales es la mejor forma de dividir una coleccin
de libros grande en subcolecciones ms pequeas. Es mejor que dividir la biblioteca en mltiples bibliotecas ms
pequeas, pues cuando quiera buscar en toda la biblioteca puede simplemente volver a la biblioteca completa. No hay
manera de buscar a travs de mltiples bibliotecas separadas simultneamente en calibre.
Una biblioteca virtual es diferente a una simple bsqueda. Una bsqueda slo restringir la lista de los libros que
aparecen en la lista de libros. Una biblioteca virtual hace eso, y adems tambin restringe las entradas incluidas en
Explorador de etiquetas a la izquierda. El explorador de etiquetas slo mostrar las etiquetas, autores, series, editores,
etc, que provienen de los libros en la biblioteca virtual. Por tanto, una biblioteca virtual se comporta como la biblioteca
real, pero contiene un conjunto restringido de libros.
92 https://www.mobileread.com/forums/showthread.php?t=124219
93 https://www.mobileread.com/forums/showthread.php?t=118556
94 https://www.mobileread.com/forums/forumdisplay.php?f=236

1.9. Cursillos 209


Manual de usuario de calibre, Versin 2.82.0

Crear bibliotecas virtuales

Para utilizar una biblioteca virtual, pulse en el botn Biblioteca virtual situado a la
izquierda de la barra de bsqueda y seleccione la opcin Crear biblioteca virtual. Como primer ejemplo, vamos a
crear una biblioteca virtual que nos muestre slo los libros de un autor concreto. Pulse en el enlace Autores como se
muestra en la imagen de abajo, elija el autor que desee utilizar y pulse en Aceptar.

El cuadro de dilogo Crear biblioteca virtual ha sido rellenado automticamente. Pulse en Aceptar y ver que se ha
creado y activado una nueva biblioteca virtual, que muestra nicamente los libros del autor seleccionado. En lo que se
refiere a calibre, es como si la biblioteca contuviera slo los libros del autor seleccionado.
Puede volver a la biblioteca completa en cualquier momento, pulsando en Biblioteca virtual y seleccionando la entrada
denominada :guilabel: <Ninguna>.
Las bibliotecas virtuales estn basadas en bsquedas. Puede utilizar cualquier bsqueda como la base de una biblioteca
virtual. La biblioteca virtual contendr slo los libros que coincidan con esa bsqueda. En primer lugar, teclee en el
buscador lo que desea utilizar en la barra de bsqueda o construya una bsqueda utilizando el Explorador de etiquetas.
Cuando est satisfecho con los resultados, pulse en el botn Biblioteca virtual, seleccione Crear biblioteca virtual
y escriba un nombre para la nueva biblioteca virtual. La biblioteca virtual se crear basada en la bsqueda que acaba
de escribir. Estas bsquedas son muy potentes, para ms ejemplos de los tipos de cosas que se pueden conseguir, vea
La interfaz de bsqueda (pgina 12).

Ejemplos de bibliotecas virtuales tiles

Libros aadidos a calibre en el ltimo da: date:>1dasatrs


Libros aadidos a calibre el ltimo mes: date:>30dasatrs
Libros con una calificacin de 5 estrellas: rating:5
Libros con una calificacin de al menos 4 estrellas: rating:>=4
Libros sin calificacin: rating:false
Peridicos descargados por la funcin Obtener noticias en calibre: tags:=Noticias y author:=calibre
Libros sin etiquetas: tags:false

210 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

Libros sin portadas: cover:false

Trabajar con bibliotecas virtuales

Puede modificar una biblioteca virtual ya creada o eliminarla, pulsando en Biblioteca virtual y eligiendo la accin
apropiada.
Puede indicar a calibre que siempre quiere aplicar cierta biblioteca virtual al abrir la biblioteca actual, en Preferencias
> Comportamiento.
Si utiliza el servidor de contenidos de calibre, puede configurarlo para compartir una determinada biblioteca virtual en
lugar de toda la biblioteca, en Preferencias > Compartir por la red.
Puede utilizar rpidamente la bsqueda actual como una biblioteca virtual temporal pulsando en el botn Biblioteca
virtual y eligiendo la entrada *bsqueda actual.
Puede mostrar todas las bibliotecas virtuales disponibles como pestaas en la parte superior de la lista de libros. Esto
es particularmente til si quiere intercambiar entre las bibliotecas virtuales muy a menudo. Pulse en el botn Biblio-
teca virtual y seleccione Mostrar bibliotecas virtuales como pestaas. Puede reorganizar las pestaas simplemente
arrastrando y soltando, y cerrando aquellas que no desee ver. Las pestaas cerradas se pueden restaurar pulsando con
el botn derecho sobre la barra de pestaas.

Usar restricciones adicionales

Puede restringir an ms los libros que se muestran en una biblioteca virtual usando Restricciones adicionales. Una
restriccin adicional es una bsqueda guardada creada previamente y que puede aplicarse a la biblioteca virtual actual
para restringir los libros mostrados. Por ejemplo, si ya tiene una biblioteca virtual para los libros etiquetados como
Ficcin histrica y una bsqueda guardada que muestra los libros no ledos, puede pulsar en el botn Biblioteca
virtual y elegir la opcin Restriccin adicional para mostrar slo los libros de ficcin histrica no ledos. Para obtener
informacin sobre bsquedas guardadas, vea Guardar bsquedas (pgina 16).

1.10 Personalizar calibre

calibre tiene un diseo altamente modular. Sus distintas partes se pueden personalizar. Puede aprender cmo crear
frmulas para aadir nuevas fuentes de contenido en lnea en calibre en la seccin Aadir su sitio de noticias favorito
(pgina 24). Aqu, aprender, en primer lugar, el uso de variables de entorno y ajustes para personalizar el comporta-
miento de calibre, y luego cmo especificar sus propios recursos estticos como iconos y plantillas para reemplazar
los valores predeterminados y, finalmente, cmo utilizar complementos para aadir funcionalidad a calibre.

Variables de entorno (pgina 237)


Ajustes (pgina 238)
Reemplazar iconos, plantillas, etctera (pgina 248)
Crear un tema de iconos propio para calibre (pgina 249)
Personalizar calibre con complementos (pgina 249)

1.10. Personalizar calibre 211


Manual de usuario de calibre, Versin 2.82.0

1.10.1 Documentacin de la API para complementos

Define varias clases abstractas de base que pueden usarse para crear potentes complementos como subclase. Las clases
tiles son:

Complemento (pgina 212)


FileTypePlugin (pgina 214)
Complementos de metadatos (pgina 215)
Complementos de catlogo (pgina 216)
Complementos de descarga de metadatos (pgina 217)
Complementos de conversin (pgina 219)
Controladores de dispositivo (pgina 222)
Acciones de interfaz de usuario (pgina 232)
Complementos de preferencias (pgina 235)
Complementos de visor (pgina 237)

Complemento

class calibre.customize.Plugin(plugin_path)
Un complemento de calibre. Los miembros tiles incluyen:
self.plugin_path: Almacena la ubicacin del archivo zip que contiene este complemento o No-
ne si es un complemento predefinido
self.site_customization: Guarda un texto de personalizacin introducido por el usuario.
Mtodos que deben reemplazarse en subclases:
initialize() (pgina 213)
customization_help() (pgina 214)
Mtodos tiles:
temporary_file() (pgina 214)
__enter__()
load_resources() (pgina 213)
supported_platforms = []
Lista de plataformas con las que este complemento es compatible. Por ejemplo: ['windows', 'osx',
'linux']
name = Trivial Plugin
El nombre de este complemento. Debe establecer algo distinto de Trivial Plugin para que funcione.
version = (1, 0, 0)
La versin de este complemento como una 3-tupla (mayor, menor, revisin)
description = uNo hace absolutamente nada
Una breve descripcin de lo que hace este complemento

212 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

author = uDesconocido
El autor de este complemento
priority = 1
Cuando existe ms de un complemento para un tipo de archivo, los complementos se ejecutarn en orden
de prioridad decreciente, es decir, que los complementos de mayor prioridad se ejecutarn primero. La
prioridad ms alta posible es sys.maxint. La prioridad predeterminada es 1.
minimum_calibre_version = (0, 4, 118)
La versin ms antigua requerida por este complemento
can_be_disabled = True
Si es False, el usuario no podr deshabilitar este complemento. Usar con precaucin.
type = uBase
El tipo de este complemento. Utilizado para clasificar los complementos en la interfaz grfica.
initialize()
Se ejecuta una vez cuando se inicializan los complementos de calibre. Los complementos se vuelven a
inicializar cada vez que se aade uno nuevo. Tenga en cuenta que si el complemento se ejecuta como
un proceso de trabajo, por ejemplo para aadir libros, el complemento debe inicializarse por cada nuevo
proceso.
Realice cualquier inicializacin especfica del complemento aqu, tal como extraer recursos del archivo zip
del complemento. La ruta al archivo zip est disponible como self.plugin_path.
Tenga en cuenta que self.site_customization no est disponible en este punto.
config_widget()
Implemente este mtodo y save_settings() (pgina 213) en el complemento para usar un cuadro de
dilogo de configuracin personalizado, en lugar de emplear la configuracin predeterminada basada en
textos.
Este mtodo, si se implementa, debe devolver un QWidget. El widget puede tener un mtodo opcional
validate() que no toma ningn argumento y se ejecuta en cuanto el usuario pulsa el botn Aceptar.
Los cambios se aplican si y slo si el mtodo devuelve True.
Si por alguna razn no se puede realizar la configuracin en este momento, deber devolver una tupla de
dos textos (mensaje, detalles), que se mostrarn como un cuadro de dilogo de advertencia al usuario y el
proceso se cancelar.
save_settings(config_widget)
Guardar las configuraciones especificadas por el usuario con config_widget.
Parmetros config_widget El widget devuelto por config_widget() (pgina 213).
do_user_config(parent=None)
Este mtodo muestra un dilogo de configuracin para este complemento. Devuelve True si el usuario
pulsa en Aceptar o False en caso contrario. Los cambios se aplican automticamente.
load_resources(names)
Si este complemento viene en un archivo en formato ZIP (complemento aadido por el usuario), este
mtodo le permitir cargar recursos desde el archivo ZIP.
Por ejemplo, para cargar una imagen:

pixmap = QPixmap()
pixmap.loadFromData(self.load_resources(['images/icon.png']).itervalues().
next())

icon = QIcon(pixmap)

1.10. Personalizar calibre 213


Manual de usuario de calibre, Versin 2.82.0

Parmetros names Lista de rutas a los recursos en el archivo zip utilizando / como separador
Devuelve Un diccionario de la forma {nombre: contenido_del_archivo}. Cualquier
nombre que no se encuentre en el archivo zip, no estar en el diccionario.

customization_help(gui=False)
Devuelve un texto que ofrece ayuda sobre cmo personalizar este complemento. De manera predetermi-
nada, genera el error NotImplementedError, que indica que el complemento no necesita personali-
zacin.
Si reimplementa este mtodo en la subclase, se le pedir al usuario que introduzca un texto como
personalizacin para este complemento. El texto de personalizacin estar disponible como self.
site_customization.
site_customization puede ser cualquier cosa, por ejemplo, la ruta de acceso a un archivo binario necesario
en el equipo del usuario.
Parmetros gui Si es True devuelve la ayuda HTML, de lo contrario devuelve ayuda de texto
sin formato.
temporary_file(suffix)
Devuelve un objeto de tipo archivo que es un archivo temporal en el sistema de archivos. Este archivo
permanecer disponible incluso despus de cerrarse y slo se eliminar al terminar el intrprete. Utilice el
miembro name del objeto devuelto para acceder a la ruta completa del archivo temporal creado.
Parmetros suffix El sufijo del archivo temporal.
cli_main(args)
Este mtodo es el principal punto de acceso para la interfaz de lnea de rdenes de los complementos. Se
ejecuta cuando el usuario teclea: calibre-debug -r Nombre del complemento. Todos los argumentos que
se pasen estn presentes en la variable args.

FileTypePlugin

class calibre.customize.FileTypePlugin(plugin_path)
Bases: calibre.customize.Plugin (pgina 212)
Un complemento asociado con un determinado conjunto de tipos de archivo.
file_types = set([])
Conjunto de tipos de archivo para que este complemento debe ejecutarse. Use '*' para todos los tipos de
archivo. Por ejemplo: {'lit', 'mobi', 'prc'}
on_import = False
Si es True, este complemento se ejecuta cuando se aaden libros a la base de datos
on_postimport = False
Si es True, este complemento se ejecuta despus de aadir libros a la base de datos. En tal caso, se ejecu-
tarn los mtodos de postimport() y postadd() del complemento.
on_preprocess = False
Si es True, este complemento se ejecuta justo antes de una conversin
on_postprocess = False
Si es True, este complemento se ejecuta despus de la conversin sobre el archivo final producido por el
complemento de salida de conversin.
run(path_to_ebook)
Ejecutar el complemento. Debe implementarse en subclases. Debe realizar cualquier modificacin nece-
saria sobre el libro y devolver la ruta absoluta al libro modificado. Si no se necesita ninguna modificacin,

214 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

debe devolver la ruta de acceso al libro original. Si ocurre un error, debe generar una excepcin. La imple-
mentacin predeterminada simplemente devuelve la ruta de acceso al libro original. Tenga en cuenta que
la ruta al archivo original (antes de que se ejecute ningn complemento de tipo de archivo) est disponible
como self.original_path_to_file.
El archivo de libro electrnico modificado debe crearse con el mtodo temporary_file().
Parmetros path_to_ebook Ruta absoluta al libro electrnico.
Devuelve Ruta absoluta al libro electrnico modificado.
postimport(book_id, book_format, db)
Se ejecuta despus de la importacin, es decir, despus de aadir el archivo del libro a la base de datos.
Tenga en cuenta que se trata de un mtodo diferente de postadd() (pgina 215), que se ejecuta cuando
se crea el registro del libro por primera vez. Este mtodo se ejecuta siempre que se aade un archivo nuevo
al registro del libro. Resulta til para modificar el registro del libro segn el contenido del archivo recin
aadido.
Parmetros
book_id Identificador de la base de datos del libro aadido.
book_format El tipo de archivo del libro que se ha aadido.
db Base de datos de biblioteca.
postadd(book_id, fmt_map, db)
Se ejecuta despus la creacin, es decir, despus de aadir un nuevo libro a la base de datos. Tenga en
cuenta que se trata de un mtodo diferente de postimport() (pgina 215), que se ejecuta cuando se
aade un archivo de libro a un registro. Este mtodo se ejecuta slo cuando se crea un nuevo registro de
libro, que puede contener ms de un archivo de libro. Resulta til si desea modificar el registro del libro en
la base de datos cuando se aade el libro por primera vez en calibre.
Parmetros
book_id Identificador de la base de datos del libro aadido.
fmt_map Correspondencia de formato de archivo con ruta desde la que se aadi el
archivo. Tenga cuenta que esto puede apuntar a un archivo existente en realidad o no, pues
a veces se aaden archivos como flujos, en cuyo caso puede ser un valor intil o una ruta
no existente.
db Base de datos de biblioteca

Complementos de metadatos

class calibre.customize.MetadataReaderPlugin(*args, **kwargs)


Bases: calibre.customize.Plugin (pgina 212)
Un complemento que implementa la lectura de metadatos de un conjunto de tipos de archivo.
file_types = set([])
Conjunto de tipos de archivo para los que este complemento debe ejecutarse. Por ejemplo: set(['lit',
'mobi', 'prc'])
get_metadata(stream, type)
Return metadata for the file represented by stream (a file like object that supports reading). Raise an
exception when there is an error with the input data.
Parmetros type The type of file. Guaranteed to be one of the entries
in file_types (pgina 215). :return: A calibre.ebooks.metadata.book.Metadata object

1.10. Personalizar calibre 215


Manual de usuario de calibre, Versin 2.82.0

class calibre.customize.MetadataWriterPlugin(*args, **kwargs)


Bases: calibre.customize.Plugin (pgina 212)
Un complemento que implementa la lectura de metadatos de un conjunto de tipos de archivo.
file_types = set([])
Conjunto de tipos de archivo para los que este complemento debe ejecutarse. Por ejemplo: set(['lit',
'mobi', 'prc'])
set_metadata(stream, mi, type)
Set metadata for the file represented by stream (a file like object that supports reading). Raise an exception
when there is an error with the input data.
Parmetros type The type of file. Guaranteed to be one of the entries
in file_types (pgina 216). :param mi: A calibre.ebooks.metadata.book.Metadata ob-
ject

Complementos de catlogo

class calibre.customize.CatalogPlugin(plugin_path)
Bases: calibre.customize.Plugin (pgina 212)
Un complemento que implementa un generador de catlogos.
file_types = set([])
Tipo de archivo de salida para el que debe ejecutarse este complemento. Por ejemplo: epub o xml
cli_options = []
Opciones del intrprete de lnea de rdenes especficas de este complemento, declaradas como un named-
tuple Option:

from collections import namedtuple


Option = namedtuple('Option', 'option, default, dest, help')
cli_options = [Option('--catalog-title',
default = 'My Catalog',
dest = 'catalog_title',
help = (_('Title of generated catalog. \nDefault:') + " '
" +

'%default' + "'"))]
cli_options parsed in library.cli:catalog_option_parser()

initialize()
Si el complemento no es uno de los incorporados, copiar los archivos .ui y .py del archivo zip a $TMPDIR.
Se generar dinmicamente una pestaa que se aadir a las opciones de catlogo en
run(path_to_output, opts, db, ids, notification=None)
Ejecutar el complemento. Debe implementarse en subclases. Debe generar el catlogo en el formato espe-
cificado en file_types y devolver la ruta de acceso absoluta al archivo de catlogo generado. Si ocurre un
error, debe generar una excepcin.
El archivo del catlogo generado debe crearse con el mtodo temporary_file().
Parmetros
path_to_output Ruta absoluta al archivo de catlogo generado.
opts Un diccionario de argumentos de palabras claves
db Un objeto LibraryDatabase2

216 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

Complementos de descarga de metadatos

class calibre.ebooks.metadata.sources.base.Source(*args, **kwargs)


Bases: calibre.customize.Plugin (pgina 212)
capabilities = frozenset([])
Conjunto de capacidades ofrecidas por este complemento. Algunas capacidades tiles son: identify, co-
ver
touched_fields = frozenset([])
Lista de campos de metadatos que este complemento puede descargarse durante la fase de identificacin.
has_html_comments = False
Establzcala a True si el complemento devuelve comentarios en formato HTML
supports_gzip_transfer_encoding = False
Si se establece en True el objeto de navegador aadir Accept-Encoding: gzip a todas las peticiones. Esto
puede acelerar las descargas, pero asegrese primero de que el origen admite transferencias codificadas con
gzip correctamente
cached_cover_url_is_reliable = True
Los URL de portadas en cach no siempre son fiables (la descarga puede fallar o la imagen puede ser
incorrecta). Si esto ocurre a menudo con este origen, establzcalo en False
options = ()
Una lista de objetos Option. Se usarn para construir automticamente el widget de configuracin para
este complemento
config_help_message = None
Un texto que se muestra en la parte superior del widget de configuracin de este complemento.
can_get_multiple_covers = False
Si es True este recurso puede devolver mltiples portadas para una consulta dada
auto_trim_covers = False
Si se establece en True, las portadas descargadas por este complemento se recortan automticamente.
prefer_results_with_isbn = True
Si se establece en True, y esta fuente devuelve mltiples resultados para una consulta, algunos de los cuales
tienen ISBN y otros no, los resultados sin ISBN se ignorarn
is_configured()
Devuelve False si el complemento necesita configurarse antes de usarlo. Por ejemplo, puede requerir un
nombre de usuario, contrasea o clave API.
get_author_tokens(authors, only_first_author=True)
Toma una lista de autores y devuelve una lista de elementos tiles para una consulta de bsqueda AND.
Esta funcin intenta devolver elementos con el orden nombres apellidos, suponiendo que si hay una
coma en nombre de autor, el nombre est en la forma apellidos, nombre.
get_title_tokens(title, strip_joiners=True, strip_subtitle=False)
Toma un ttulo y devuelve una lista de elementos tiles para una consulta de bsqueda AND. Excluye
conectores (opcionalmente) y puntuacin.
split_jobs(jobs, num)
Divide una lista de tareas en num grupos como mximo, tan igualados como sea posible
test_fields(mi)
Devuelve el primer campo de self.touched_fields que es nulo en el objeto mi
clean_downloaded_metadata(mi)
Ejecutar este mtedo en el mtodo de identificacin del complemento para normalizar los metadatos antes

1.10. Personalizar calibre 217


Manual de usuario de calibre, Versin 2.82.0

de poner el objeto mi en result_queue. Lgicamente puede usar un algoritmo personalizado adecuado a la


fuente de metadatos.
get_book_url(identifiers)
Devuelve una 3-tupla o None. La 3-tupla es de la forma: (tipo_identificador, valor_identificador, URL).
URL es el URL del libro identificado por los identificadores en este origen. tipo_identificador
y valor_identificador especifican el identificador correspondiente al URL. Este URL debe ser
accesible a un humano por medio de un navegador. El propsito es proporcionar un enlace que el usuario
pueda pulsar para visitar la pgina del libro en este origen. Si no se encuentra ningn URL, devuelve
None. Este mtodo debe ser rpido y coherente, por lo que slo debe implementarlo si es posible construir
el URL mediante un esquema conocido dado identifiers.
get_book_url_name(idtype, idval, url)
Devuelve un nombre legible por humanos a partir valor devuelto por get_book_url().
get_book_urls(identifiers)
Reemplace este mtodo si desea devolver varios URL para este libro. Devuelve una lista de 3-tuplas. De
manera predeterminada este mtodo simplemente ejecuta get_book_url() (pgina 218).
get_cached_cover_url(identifiers)
Devuelve el URL de portada en cach para el libro identificado por el diccionario identifiers o None
si no existe el URL.
Tenga en cuenta que este mtodo slo debe devolver URL validados, es decir no URL que puedan resultar
en una imagen de portada genrica o un error.
identify_results_keygen(title=None, authors=None, identifiers={})
Devuelve una funcin empleada para generar una clave que pueda ordenar objetos de tipo Metadata por
su relevancia dada una consulta de bsqueda (title, authors, identifiers).
Estas claves se usan para ordenar los resultados de identify() (pgina 218).
Para detalles sobre el algoritmo predeterminado ver InternalMetadataCompareKeyGen (pgi-
na 219). Implemente de nuevo esta funcin en el complemento si el algoritmo predeterminado no es el
adecuado.
identify(log, result_queue, abort, title=None, authors=None, identifiers={}, timeout=30)
Identificar un libro por su ttulo, autor, ISBN, etc.
Si se especifica identifiers y no se encuentran coincidencias y este origen de metadatos no almacena
todos los identificadores relacionados (por ejemplo, todos los ISBN de un libro), este mtodo debe volver
a intentarlo con slo el ttulo y el autor (si se especificaron).
Si este origen de metadatos tambin proporciona portadas, el URL de la portada debe almacenarse en
cach para que ejecuciones posteriores a la API para obtener portadas con el mismo ISBN o identificador
especial no tenga que volver a obtener el URL de portada. Usar la API de cach para esto.
Cada objeto Metadata puesto en result_queue por este mtodo debe tener un atributo
attr:source_relevance que es un entero que indica el orden en que el origen de metadatos devuelve los
resultados para esta bsqueda. Este entero se usar por compare_identify_results(). Si el orden
no es importante, pngalo a cero para todos los resultados.
Asegrese de que cualquier informacin de correspondencia de portada o ISBN est en cach antes de que
el objeto Metadata sea puesto en result_queue.
Parmetros
log Un objeto de registro, selo para obtener errores e informacin de depuracin
result_queue Un objeto Queue resultante, los resultados deben ser puestos en l.
Cada resultado es un objeto Metadata.

218 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

abort Si abort.is_set() devuelve True, interrumpir el proceso y volver tan pron-


to como sea posible
title El ttulo del libro, puede ser None
authors Una lista de autores del libro, puede ser None
identifiers Un diccionario de otros identificadores, principalmente
{isbn:1234...}
timeout Tiempo de espera en segundos, ninguna peticin de red debera esperar ms
de este tiempo.
Devuelve None si no hubo ningn error, en caso contrario una representacin unicode del error
que pueda mostrarse al usuario
download_cover(log, result_queue, abort, title=None, authors=None, identifiers={}, timeout=30,
get_best_cover=False)
Descargar una portada y poner el resultado en result_queue. Todos los parmetros tienen el mismo
significado que para identify() (pgina 218). Poner (self, cover_data) en result_queue.
Este metodo de usar los URL de portada en cach siempre que sea posible. Cuando no se encuentran los
datos en cach, la mayora de los complementos ejecutan identify() y usan sus resultados.
Si el parmetro get_best_cover es True y este complemento puede obtener mltiples portadas, esto
debera obtener slo la mejor.
class calibre.ebooks.metadata.sources.base.InternalMetadataCompareKeyGen(mi,
sour-
ce_plugin,
title,
aut-
hors,
iden-
ti-
fiers)
Generar una clave de orden para comparar la relevancia de los objetos Metadata, dada una consulta de bs-
queda. Esto se usa slo para comparar resultados del mismo origen de metadatos, no entre distintos orgenes.
La clave de orden garantiza que el orden ascendente corresponde a un orden descendiente de relevancia.
El algoritmo es:
Dar prioridad a los resultados que tienen al menos un identificador igual al de la consulta
Preferir resultados con un URL de portada en cach
Preferir resultados con todos los campos disponibles rellenos
Dar prioridad a los resultados en el mismo idioma que la interfaz de usuario actual
Preferir resultados con una coincidencia de ttulo perfecto con la consulta
Preferir resultados con comentarios ms largos (diferencia mayor del 10 %)
Usar la relevancia del resultado segn la indice la bsqueda del origen de metadatos motor

Complementos de conversin

class calibre.customize.conversion.InputFormatPlugin(*args)
Bases: calibre.customize.Plugin (pgina 212)

1.10. Personalizar calibre 219


Manual de usuario de calibre, Versin 2.82.0

Los complementos InputFormatPlugin son los responsables de convertir un documento a


HTML+OPF+CSS+etc. Los resultados de la conversin deben estar codificados en UTF-8. La accin princi-
pal ocurre en convert() (pgina 220).
file_types = set([])
Conjunto de tipos de archivo para los que este complemento debe ejecutarse. Por ejemplo: set(['asw',
'mobi', 'prc'])
is_image_collection = False
Si es True, este complemento de entrada genera una coleccin de imgenes, una por archivo HTML. Esto
puede ser establecido dinmicamente en el mtodo convert() si los archivos de entrada pueden ser o
no colecciones de imgenes. Si lo establece en True, debe implementar el mtodo get_images() que
devuelve una lista de imgenes.
core_usage = 1
Nmero de ncleos de CPU utilizados por este complemento. Un valor de -1 significa que utiliza todos los
ncleos disponibles
for_viewer = False
Si es True, el complemento de entrada realizar un procesado especial para que la salida sea adecuada para
visualizacin
output_encoding = utf-8
La codificacin de los archivos que crea el complemento de entrada. Un valor de None significa que la
codificacin no est definida y debe detectarse individualmente
common_options = set([<calibre.customize.conversion.OptionRecommendation object>])
Opciones compartidas por todos los complementos de formato de entrada. No reemplazar en
subclases. Usar options (pgina 220) en su lugar. Toda opcin debe ser un ejemplar de
OptionRecommendation.
options = set([])
Opciones para personalizar el comportamiento de este complemento. Toda opcin debe ser un ejemplar de
OptionRecommendation.
recommendations = set([])
Un conjunto de 3-tuplas del tipo (nombre_opcin, valor_recomendado, nivel_de_recomendacin)
get_images()
Devuelve una lista de rutas absolutas a las imgenes, si este complemento representa una coleccin de
imgenes. La lista de imgenes est en el mismo orden que el lomo y el ndice.
convert(stream, options, file_ext, log, accelerators)
Este mtodo debe ser implementado en subclases. Debe volver la ruta al archivo OPF creado o un ejemplar
OEBBook. Toda la salida debe estar contenida en el directorio actual. Si este complemento crea archivos
fuera del directorio actual, deben ser eliminados o marcados para su eliminacin antes de que termine este
mtodo.
Parmetros
stream Un objeto de tipo archivo que contiene el archivo de entrada.
options Opciones para personalizar el proceso de conversin. Debe tener atributos
correspondientes a todas las opciones declaradas por este complemento. Adems, debe
haber un atributo verbose que toma valores enteros a partir de cero. Valores mayores
significan ms detalles. Otro atributo til es input_profile, que es un ejemplar de
calibre.customize.profiles.InputProfile.
file_ext La extensin (sin el .) del archivo de entrada. Debe ser uno de los
file_types admitidos por este complemento.

220 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

log Un objeto calibre.utils.logging.Log. Toda salida debera usar este ob-


jeto.
accelarators Un diccionario con diversa informacin que el complemento de en-
trada puede obtener fcilmente y que acelerar las etapas posteriores de la conversin.
postprocess_book(oeb, opts, log)
Se ejecuta para permitir que el complemento de entrada lleve a cabo el posprocesado del libro despus del
procesado principal.
specialize(oeb, opts, log, output_fmt)
Se ejecuta para permitir que el complemento de entrada especialice el libro analizado para un formato
de salida particular. Se ejecuta despus de postprocess_book() y antes de que se realice cualquier
transformacin sobre el libro analizado.
gui_configuration_widget(parent, get_option_by_name, get_option_help, db, book_id=None)
Ejecutado para crear el widget que se usa para configurar este complemento en la interfaz de calibre. El
widget debe ser un objeto de la clase PluginWidget. Puede ver ejemplos en los complementos de entrada
incorporados.
class calibre.customize.conversion.OutputFormatPlugin(*args)
Bases: calibre.customize.Plugin (pgina 212)
Los complementos OutputFormatPlugin son los responsables de convertir un documento OEB (OPF+HTML)
en un libro de salida.
El documento OEB puede suponerse codificado en UTF-8. La accin principal ocurre en convert() (pgi-
na 221).
file_type = None
El tipo de archivo (extensin sin punto inicial) que produce este complemento
common_options = set([<calibre.customize.conversion.OptionRecommendation object>])
Opciones compartidas por todos los complementos de formato de entrada. No reemplazar en
subclases. Usar options (pgina 221) en su lugar. Toda opcin debe ser un ejemplar de
OptionRecommendation.
options = set([])
Opciones para personalizar el comportamiento de este complemento. Toda opcin debe ser un ejemplar de
OptionRecommendation.
recommendations = set([])
Un conjunto de 3-tuplas del tipo (nombre_opcin, valor_recomendado, nivel_de_recomendacin)
convert(oeb_book, output, input_plugin, opts, log)
Mostrar el contenido de oeb_book (que es un espcimen de calibre.ebooks.oeb.OEBBook) en el
archivo especificado por salida.
Parmetros
output Un objeto de tipo archivo o un texto. Si es un texto es la ruta a un directorio que
puede existir o no. El complemento de salida debe escribir su resultado en este directorio.
Si es un objeto de tipo archivo, el complemento de salida debe escribir su resultado en el
archivo.
input_plugin El archivo de entrada que se us al inicio del proceso de conversin.
opts Opciones de conversin. Es seguro que tiene atributos correspondientes a los
valores de OptionRecommendations de este complemento.
log El registrador. Escribir mensajes de depuracin, informacin, etc. usando este ob-
jeto.

1.10. Personalizar calibre 221


Manual de usuario de calibre, Versin 2.82.0

specialize_css_for_output(log, opts, item, stylizer)


Puede usarse para hacer cambios al css durante el proceso de aplanamiento del CSS.
Parmetros
item El elemento (archivo HTML) que se est procesando.
stylizer Un objeto de tipo Stylizer que contiene los estilos aplanados para item.
Puede obtener el estilo para cualquier elemento con stylizer.style(elemento).
gui_configuration_widget(parent, get_option_by_name, get_option_help, db, book_id=None)
Ejecutado para crear el widget que se usa para configurar este complemento en la interfaz de calibre. El
widget debe ser un objeto de la clase PluginWidget. Puede ver ejemplos en los complementos de salida
incorporados.

Controladores de dispositivo

La clase base para todos los controladores de dispositivo es DevicePlugin (pgina 222). Sin embargo, si el dis-
positivo se muestra como una unidad USBMS ante el sistema operativo, debe usar la clase USBMS en su lugar, pues
implementa toda la lgica necesaria para este tipo de dispositivos.
class calibre.devices.interface.DevicePlugin(plugin_path)
Bases: calibre.customize.Plugin (pgina 212)
Define la interfaz que deben implementar los motores que comunican con un lector de libros electrnicos.
FORMATS = [lrf, rtf, pdf, txt]
Lista ordenada de formatos soportados
VENDOR_ID = 0
VENDOR_ID puede ser un entero, una lista de enteros o un diccionario. Si es un diccionario, debe ser un
diccionario de diccionarios de la forma:

{
integer_vendor_id : { product_id : [list of BCDs], ... },
...
}

PRODUCT_ID = 0
Un entero o una lista de enteros
BCD = None
BCD puede ser bien None para no distinguir entre dispositivos segn BCD, o bien una lista de los nmeros
BCD de todos los dispositivos soportados por este controlador.
THUMBNAIL_HEIGHT = 68
Altura de las miniaturas en el dispositivo
THUMBNAIL_COMPRESSION_QUALITY = 75
Calidad de compresin para las miniaturas. Cuanto ms cercano a 100, mejor ser la calidad de las minia-
turas y menores los defectos de compresin. Por supuesto, tambin ocuparn ms espacio las miniaturas.
WANTS_UPDATED_THUMBNAILS = False
Establzcalo en True si el dispositivo admite actualizar miniaturas de portada durante meth:sync_booklists.
Si es True, se pedir a device.py que vuelva a cargar las miniaturas al comparar libros
CAN_SET_METADATA = [title, authors, collections]
Especifica si los metadatos de los libros pueden establecerse a travs de la interfaz grfica.
CAN_DO_DEVICE_DB_PLUGBOARD = False
Especifica si el dispositivo puede gestionar paneles de conexiones de metadatos device_db

222 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

path_sep = /
Separador de ruta para rutas de acceso a los libros en el dispositivo
icon = /home/kovid/work/calibre/resources/images/reader.png
Icono para este dispositivo
UserAnnotation
alias de Annotation
OPEN_FEEDBACK_MESSAGE = None
La interfaz grfica muestra esto como un mensaje si no es None. til si la apertura puede llevar mucho
tiempo
VIRTUAL_BOOK_EXTENSIONS = frozenset([])
Conjunto de extensiones que son libros virtuales en el dispositivo y por lo tanto no pueden visualizarse,
guardarse o aadirse a la biblioteca. Por ejemplo: frozenset(['kobo'])
VIRTUAL_BOOK_EXTENSION_MESSAGE = None
Mensaje que se mostrar al usuario para las extensiones de libro virtuales.
NUKE_COMMENTS = None
Indica si se eliminan los comentarios de la copia del libro que se enva al dispositivo. Si no es None,
debera ser un texto corto por el que se sustituirn los comentarios.
MANAGES_DEVICE_PRESENCE = False
If True indicates that this driver completely manages device detection, ejecting and so forth. If you set this
to True, you must implement the detect_managed_devices and debug_managed_device_detection met-
hods. A driver with this set to true is responsible for detection of devices, managing a blacklist of devices,
a list of ejected devices and so forth. calibre will periodically call the detect_managed_devices() method
and if it returns a detected device, calibre will call open(). open() will be called every time a device is
returned even if previous calls to open() failed, therefore the driver must maintain its own blacklist of
failed devices. Similarly, when ejecting, calibre will call eject() and then assuming the next call to de-
tect_managed_devices() returns None, it will call post_yank_cleanup().
SLOW_DRIVEINFO = False
Si se establece en True, calibre ejecutar el mtodo get_driveinfo() (pgina 225) una vezs cargadas
las listas de libros para obtener la informacin de la unidad.
ASK_TO_ALLOW_CONNECT = False
Si se establece en True, calibre preguntar al usuario si quiere administrar el dispositivo con calibre la
primera vez que se detecta. Si lo establece en True debe implementar get_device_uid() (pgi-
na 228), ignore_connected_device() (pgina 228), get_user_blacklisted_devices()
(pgina 228) y set_user_blacklisted_devices() (pgina 228)
user_feedback_after_callback = None
Establezca esto a un diccionario de la forma {title:ttulo, msg:mensaje, det_msg:mensaje_detallado}
para que calibre muestre una ventana con un mensaje para el usuario tras ejecutar varias acciones (actual-
mente slo upload_books()). Procure no mostrar demasiados mensajes al usuario. Esta variable se
comprueba despus de cada accin, as que establzcala slo cuando sea realmente necesaria.
is_usb_connected(devices_on_system, debug=False, only_presence=False)
Devuelve True, device_info si algn dispositivo gestionado por este complemento est actualmente conec-
tado.
Parmetros devices_on_system Lista de dispositivos conectados actualmente
detect_managed_devices(devices_on_system, force_refresh=False)
Slo se llama si MANAGES_DEVICE_PRESENCE es True.
Buscar dispositivos que pueda gestionar este controlador. Debe devolver un objeto de dispositivo si se
encuentra algn dispositivo. Este objeto se pasar al mtodo open() como connected_device. Si no se

1.10. Personalizar calibre 223


Manual de usuario de calibre, Versin 2.82.0

encuentra ningn dispositivo, devuelve None. El objeto devuelto puede ser cualquier cosa, calibre no lo
usa, slo lo pasa a open().
Este mtodo se ejecuta peridicamente por la interfaz grfica, as que asegrese de que no requiere dema-
siados recursos. Use un cach para evitar buscar en el sistema una y otra vez.
Parmetros
devices_on_system Conjunto de dispositivos USB encontrados en el sistema.
force_refresh Si es True y el controlador usa un cach para evitar bsquedas repe-
titivas, el cach debe vaciarse.
debug_managed_device_detection(devices_on_system, output)
Slo se llama si MANAGES_DEVICE_PRESENCE es True.
Debe escribir en output informacin sobre los dispositivos detectados en el sistema, que es un objeto de
tipo archivo.
Debe devolver True si se detecta un dispositivo y se abre con xito, en caso contrario debe devolver False.
reset(key=-1, log_packets=False, report_progress=None, detected_device=None)
Parmetros
key La clave para desbloquear el dispositivo
log_packets Si es True, el flujo de paquetes de o al dispositivo se registra
report_progress Funcin que se ejecuta con un argumento de progreso en porcen-
taje (nmero entre 0 y 100) para diversas tareas. Si el argumento es -1 significa que la tarea
no tiene informacin de progreso.
detected_device Informacin de dispositivo desde el examinador de dispositivos
can_handle_windows(usbdevice, debug=False)
Mtodo opcional para comprobar si este controlador puede manejar un dispositivo mediante ms pruebas.
Si no puede, debe devolver False. Este mtodo slo se ejecuta una vez que los identificadores del fabricante
y del producto, as como el BCD se han reconocido, por lo que puede realizar pruebas que requieran un
tiempo relativamente prolongado. La implementacin predeterminada devuelve True. Este mtodo slo se
ejecuta en Windows. Vase tambin can_handle() (pgina 224).
Tenga en cuenta que para dispositivos basados en USBMS este mtodo de manera predeterminada delega
en can_handle() (pgina 224). As que slo necesita sustituir can_handle() (pgina 224) en la
subclase de USBMS.
Parmetros usbdevice Un dispositivo usb devuelto por calibre.devices.winusb.
scan_usb_devices()
can_handle(device_info, debug=False)
Versin unix de can_handle_windows() (pgina 224).
Parmetros device_info Es una tupla de (id_fab, id_prod, bcd, fabricante, producto, n-
mero de serie)
open(connected_device, library_uuid)
Realiza cualquier inicio especfico del dispositivo. Se ejecuta una vez que se ha detectado el dispositi-
vo, pero antes de cualquier otra funcin que comunique con l. Por ejemplo, para dispositivos que se
muestran como dispositivos de almacenamiento masivo USB, este mtodo ser el responsable de montar
el dispositivo o, si se ha montado automticamente, averiguar dnde. El mtodo calibre.devices.
usbms.device.Device.open() tiene una implementacin de esta funcin que puede ser un buen
ejemplo para dispositivos de almacenamiento masivo USB.
Este mtodo puede generar una excepcin de tipo OpenFeedback para mostrar un mensaje al usuario final.

224 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

Parmetros
connected_device El dispositivo que se intenta abrir. Es una tupla de (identificador
de fabricante, identificador de producto, bcd, nombre de fabricante, nombre de producto,
nmero de serie del dispositivo). Sin embargo, algunos dispositivos no tienen nmero de
serie y en Windows slo aparecen los tres primeros campos, el resto son None.
library_uuid El UUID de la biblioteca de calibre actual. Puede ser None si no existe
una biblioteca (por ejemplo cuando se usa desde la lnea de rdenes).
eject()
Desmontar o expulsar el dispositivo del sistema operativo. Esto no comprueba si hay tareas de interfaz
grfica pendientes que tengan que comunicar con el dispositivo.
NOTA: Este mtodo no puede ejecutarse en el mismo subproceso que el resto de los mtodos de dispositi-
vo.
post_yank_cleanup()
Se ejecuta si el usuario desconecta el dispositivo sin expulsarlo primero.
set_progress_reporter(report_progress)
Establece una funcin para mostrar informacin de progreso.
Parmetros report_progress Funcin que se ejecuta con un argumento de progreso en
porcentaje (nmero entre 0 y 100) para diversas tareas. Si el argumento es -1 significa que la
tarea no tiene informacin de progreso.
get_device_information(end_session=True)
Pregunta al dispositivo por su informacin interna. Ver L{DeviceInfoQuery}.
Devuelve (nombre del dispositivo, versin del dispositivo, versin del software en el dispositivo,
tipo mime) La tupla puede tener un quinto elemento opcional, que es un diccionario de
informacin de unidad. Puede verse un ejemplo en usbms.driver.
get_driveinfo()
Devuelve el diccionario de informacin de dispositivo. Normalmente se ejecuta desde
get_device_information(), pero si la carga de la informacin del dispositivo es lenta para
este controlador, debera establecer SLOW_DRIVEINFO. En este caso, calibre ejecutar este mtodo
despus de cargar la lista de libros. Tenga en cuenta que no se ejecuta en el hilo del dispositivo, por lo que
el controlador debera almacenar en cach la informacin del dispositivo en el mtodo books() y esta
funcin debera devolver los datos almacenados.
card_prefix(end_session=True)
Devuelve una lista de dos elementos con los prefijos para las rutas de acceso en las tarjetas. Si no hay
tarjeta, el prefijo correspondiente ser None. Por ejemplo: (/lugar, /lugar2) (None, lugar2) (lugar,
None) (None, None)
total_space(end_session=True)
Obtiene el espacio total disponible en los puntos de montaje:
1. Memoria principal
2. Tarjeta de almacenamiento A
3. Tarjeta de almacenamiento B

Devuelve Una lista de tres elementos con el espacio total en bytes de (1, 2, 3). Si un dispositivo
concreto no tiene alguna de estas ubicaciones, debe devolver 0.

free_space(end_session=True)

1.10. Personalizar calibre 225


Manual de usuario de calibre, Versin 2.82.0

Obtiene el espacio libre disponible en los puntos de montaje:


1. Memoria principal
2. Tarjeta A
3. Tarjeta B

Devuelve Una lista de tres elementos con el espacio libre en bytes de (1, 2, 3). Si un dispositivo
concreto no tiene alguna de estas ubicaciones, debe devolver -1.

books(oncard=None, end_session=True)
Devuelve una lista de los libros electrnicos en el dispositivo.
Parmetros oncard Si es carda o cardb, devuelve una lista de los libros en la tarjeta de
almacenamiento especificada, en caso contrario devuelve una lista de los libros en la memoria
principal del dispositivo. Si se especifica una tarjeta y no hay libros en ella, devuelva una lista
vaca.
Devuelve Un objeto BookList.
upload_books(files, names, on_card=None, end_session=True, metadata=None)
Copia una lista de libros al dispositivo. Si un archivo ya existe en el dispositivio, deber ser sustituido. Este
mtodo debera generar un error FreeSpaceError si no hay suficiente espacio libre en el dispositivo.
El texto del error FreeSpaceError debe contener la palabra card si on_card no es None, si no,
debe contener la palabra memory.
Parmetros
files Una lista de rutas
names Una lista de nombres de archivo que los libros debern tener una vez copiados
al dispositivo. len(names) == len(files)
metadata Si no es None, es una lista de objetos Metadata. La idea es utilizar los me-
tadatos para determinar dnde poner el libro en el dispositivo. len(metadata) == len(files).
Aparte de la portada normal (ruta a la portada), tambin puede haber un atributo de minia-
tura (thumbnail), que debera tener prioridad. El atributo thumbnail es de la forma
(anchura, altura, datos_de_portada como jpeg).
Devuelve Una lista de tuplas de 3 elementos. La lista se enva a
add_books_to_metadata() (pgina 226).
classmethod add_books_to_metadata(locations, metadata, booklists)
Aade ubicaciones a las listas de libros. Esta funcin no debe comunicarse con el dispositivo.
Parmetros
locations Resultado de una llamada a L{upload_books}
metadata Lista de objetos Metadata, igual que para upload_books() (pgi-
na 226).
booklists Una tupla que contiene el resultado de las llama-
das a (books(oncard=None)(), books(oncard='carda')(),
:methbooks(oncard=cardb)).
delete_books(paths, end_session=True)
Borrar libros en ubicaciones del dispositivo.
classmethod remove_books_from_metadata(paths, booklists)
Elimina libros de la lista de metadatos. Esta funcin no debe comunicarse con el dispositivo.

226 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

Parmetros
paths rutas a los libros en el dispositivo.
booklists Una tupla que contiene el resultado de las llama-
das a (books(oncard=None)(), books(oncard='carda')(),
:methbooks(oncard=cardb)).
sync_booklists(booklists, end_session=True)
Actualizar metadatos del dispositivo.
Parmetros booklists Una tupla que contiene el resultado de las lla-
madas a (books(oncard=None)(), books(oncard='carda')(),
:methbooks(oncard=cardb)).
get_file(path, outfile, end_session=True)
Lee el archivo en path en el dispositivo y lo escribe en outfile.
Parmetros outfile objeto de archivo como sys.stdout o el resultado de ejecutar
open() (pgina 224).
classmethod config_widget()
Debe devolver un QWidget. El QWidget contiene las configuraciones de la interfaz de dispositivo.
classmethod save_settings(settings_widget)
Debe guardar las configuraciones en el disco. Toma el widget creado en config_widget() (pgi-
na 227) y guarda todas las configuraciones en el disco.
classmethod settings()
Debe devolver un objeto opts. El objeto opts debera tener al menos un atributo format_map que es una
lista ordenada de formatos para el dispositivo.
set_plugboards(plugboards, pb_func)
Proporciona al controlador el conjunto actual de paneles de conexiones y una funcin para seleccio-
nar un panel de conexin especfico. Este mtodo se ejecuta inmediatamente antes de add_books y
sync_booklists.
pb_func es un metodo ejecutable con la siguiente firma: def pb_func(device_name, format, plug-
boards)
Le da el nombre del dispositivo actual (ya sea el nombre de la clase o DEVICE_PLUGBOARD_NAME),
el formato en que est interesado (un formato real o device_db), y los paneles de conexiones (sumi-
nistrados por set_plugboards, en el mismo lugar de donde se obtuvo este mtodo).
Devuelve None o un nico panel de conexiones.
set_driveinfo_name(location_code, name)
Establece el nombre de dispositivo en el archivo driveinfo como name. Este ajuste persistir hasta que el
archivo se vuelva a crear o se cambie el nombre de nuevo.
Los dispositivos que no son de disco deberan implementar este mtodo segn los cdigos de ubicacin
devueltos por el mtodo get_device_information().
prepare_addable_books(paths)
Dada una lista de rutas de acceso, devuelve otra lista de rutas de acceso. Estas rutas apuntan a versiones de
los libros que pueden aadirse.
Si ocurre un error al preparar un libro, en lugar de una ruta de acceso, la posicin en la lista devuelta para
ese libro debera de ser una tupla de tres elementos: (ruta_original, la excepcin, rastro)
startup()
Called when calibre is starting the device. Do any initialization required. Note that multiple instances of

1.10. Personalizar calibre 227


Manual de usuario de calibre, Versin 2.82.0

the class can be instantiated, and thus __init__ can be called multiple times, but only one instance will
have this method called. This method is called on the device thread, not the GUI thread.
shutdown()
Se ejecuta cuando calibre se est apagando, ya sea definitivamente o como preparacin para reiniciarse.
Lleva a cabo cualquier limpieza requerida. Este mtodo se ejecuta en el hilo del dispositivo, no en el de la
interfaz grfica.
get_device_uid()
Debe devolver un identificador nico para el dispositivo conectado actualmente (se ejecuta inme-
diatamente despus de ejecutarse open() con xito). Debe implementar este mtodo si establece
ASK_TO_ALLOW_CONNECT = True.
ignore_connected_device(uid)
El dispositivo identificado por uid (el resultado de ejecutar get_device_uid()) debe ignorarse en
el futuro. Debe implementar este mtodo si establece ASK_TO_ALLOW_CONNECT = True. Tenga en
cuenta que esta funcin se ejecuta inmediatamente despus de open(), as que si open() almacena
algn estado en cach el controlador debera restablecer el estado.
get_user_blacklisted_devices()
Devuelve un diccionario de identificadores y nombres de dispositivo para todos los dispositivos que el
usuario ha pedido ignorar.
set_user_blacklisted_devices(devices)
Establecer la lista de uids de dispositivo que deben ser ignorados por este controlador.
specialize_global_preferences(device_prefs)
Implemente este mtodo si el dispositivo quiere sustituir una preferencia particular. Debe asegu-
rarse de que todos los lugares de ejecucin que emplean una preferencia que pueda ser susti-
tuida usen device_prefs['algo'] en lugar de prefs['algo']. El metodo debe ejecutar
device_prefs.set_overrides(pref=val, pref=val, ...). Actualmente se usa para:
gestin de metadatos (prefs['manage_device_metadata']).
set_library_info(library_name, library_uuid, field_metadata)
Implemente este mtodo si quiere informacin sobre la biblioteca de calibre actual. Este mtodo se ejecuta
al inicio y cuando la biblioteca de calibre cambia mientras est conectado.
is_dynamically_controllable()
Ejecutado por el administrador de dispositivos al iniciar complementos. Si este mtodo devuelve un texto,
entonces a) soporta la interfaz de control dinmica del administrador de dispositivos y b) debe usarse ese
nombre para comunicarse con el complemento.
Este mtodo puede ejecutarse en el hilo de la interfaz grfica. Un controlador que implemente este mtodo
debe ser seguro para subprocesos.
start_plugin()
Este mtodo se ejecuta para iniciar el complemento. El complemento debe empezar a aceptar conexiones
de dispositivos de la manera que lo haga. Si el complemento ya acepta conexiones, no debe hacer nada.
Este mtodo puede ejecutarse en el hilo de la interfaz grfica. Un controlador que implemente este mtodo
debe ser seguro para subprocesos.
stop_plugin()
Este mtodo se ejecuta para detener el complemento. El complemento debe dejar de aceptar conexiones
y debe hacer hacer limpieza tras de s. Probablemente este mtodo debera ejecutar shutdown(). Si el
complemento ya no acepta conexiones, no debe hacer nada.
Este mtodo puede ejecutarse en el hilo de la interfaz grfica. Un controlador que implemente este mtodo
debe ser seguro para subprocesos.

228 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

get_option(opt_string, default=None)
Devuelve el valor de la opcin indicada por opt_string. Este mtodo puede ejecutarse cuando el com-
plemento no se ha iniciado. Devuelve None si la opcin no existe.
Este mtodo puede ejecutarse en el hilo de la interfaz grfica. Un controlador que implemente este mtodo
debe ser seguro para subprocesos.
set_option(opt_string, opt_value)
Establece el valor de la opcin indicada por opt_string. Este mtodo puede ejecutarse cuando el com-
plemento no se ha iniciado.
Este mtodo puede ejecutarse en el hilo de la interfaz grfica. Un controlador que implemente este mtodo
debe ser seguro para subprocesos.
is_running()
Devuelve True si el complemento est iniciado, de lo contrario False.
Este mtodo puede ejecutarse en el hilo de la interfaz grfica. Un controlador que implemente este mtodo
debe ser seguro para subprocesos.
synchronize_with_db(db, book_id, book_metadata, first_call)
Se ejecuta durante el emparejamiento de libros, cuando cada libro del dispositivo se empareja con un libro
en la base de datos de calibre. El mtodo tiene por cometido sincronizar los datos del dispositivo con la
base de datos de calibre (si es necesario).
Este mtodo debe devolver una tupla de dos valores. El primer valor es un conjunto de identificadores de
libro de calibre modificados si se modific la base de datos de calibre, o None si la base de datos no se
modific. Si el primer valor es un conjunto vaco, los metadatos del libro en el dispositivo se actualizan con
los metadatos de calibre y se vuelven a mandar al dispositivo, pero no se actualiza la interfaz grfica para
ese libro. Esto es til cuando los metadatos de calibre son correctos, pero deben enviarse al dispositivo.
El segundo valor es una tupla de dos dos valores. El primer valor de la tupla especifica si debe enviarse
un formato de libro al dispositivo. El propsito es permitir comprobar que el libro en el dispositivo es el
mismo que en calibre. Este valor debe ser None si no debe enviarse ningn libro, en caso contrario debe
devolver el nombre de archivo base en el dispositivo (un texto como foobar.epub). Asegrese de incluir
la extensin en el nombre. El subsistema del dispositivo generar una tarea send_books para todos los
libros cuyo valor devuelto no sea None. Nota: aparte de para extraer la extensin, el nombre de archivo
no tiene efecto en los casos en que el dispositivo usa una plantilla para generar el nombre de archivo, lo
que ocurre para la mayora. El segundo valor en la tupla devuelta indica si el formato est fechado en el
futuro. Devuelve True si lo est, en caso contrario devuelve False. calibre mostrar un cuadro de dilogo
con todos los libros fechados en el futuro.
Extremadamente importante: este mtodo se ejecuta en el subproceso de la interfaz grfica. Debe ser seguro
con respecto al subproceso del administrador de dispositivos.
book_id: el identificador de calibre para el libro en la base de datos. book_metadata: el objeto de
tipo Metadata para el libro que viene del dispositivo. first_call: True si sta es la primera ejecucin
durante la sincronizacin, False en caso contrario.
class calibre.devices.interface.BookList(oncard, prefix, settings)
Bases: list
Una lista de libros. Cada objeto Book debe tener los campos
1.title (ttulo)
2.authors (autores)
3.size (tamao del archivo del libro)
4.datetime (tupla de tiempo UTC)

1.10. Personalizar calibre 229


Manual de usuario de calibre, Versin 2.82.0

5.path (ruta de acceso del libro en el dispositivo)


6.thumbnail (puede ser None) thumbnail (miniatura) es bien un objeto str o bytes con los datos de la ima-
gen, o debera tener un atributo image_path que almacena una ruta de acceso completa (en el formato
de la plataforma) a la imagen
7.tags (una lista de textos, puede estar vaca).
supports_collections()
Devuelve True si el dispositivo es compatible con colecciones para esta lista de libros.
add_book(book, replace_metadata)
Aadir el libro a la lista de libros. El propsito es mantener todos los metadatos internos del dispositivo,
devuelve True si la las listas de libros deben sincronizarse
remove_book(book)
Elimina un libro de una lista de libros. Simultneamente, corrige cualquier metadato de dispositivo.
get_collections(collection_attributes)
Devuelve un diccionario de colecciones creadas a partirde collection_attributes. Cada entrada
del diccionario es de la forma nombre de la coleccin:[lista de libros]
El listado de los libros se ordena por ttulo, excepto en colecciones creadas a partir de series, donde se usa
series_index.
Parmetros collection_attributes Una lista de atributos del objeto Book.

Dispositivos basados en almacenamiento masivo USB

La clase base para tales dispositivos es calibre.devices.usbms.driver.USBMS (pgina 231). Esta clase
hereda algunas de sus funcionalidades de sus bases, documentadas a continuacin. Un controlador tpico basado en
USBMS es as:

from calibre.devices.usbms.driver import USBMS

class PDNOVEL(USBMS):
name = 'Pandigital Novel device interface'
gui_name = 'PD Novel'
description = _('Communicate with the Pandigital Novel')
author = 'Kovid Goyal'
supported_platforms = ['windows', 'linux', 'osx']
FORMATS = ['epub', 'pdf']

VENDOR_ID = [0x18d1]
PRODUCT_ID = [0xb004]
BCD = [0x224]

THUMBNAIL_HEIGHT = 144

EBOOK_DIR_MAIN = 'eBooks'
SUPPORTS_SUB_DIRS = False

def upload_cover(self, path, filename, metadata):


coverdata = getattr(metadata, 'thumbnail', None)
if coverdata and coverdata[2]:
with open('%s.jpg' % os.path.join(path, filename), 'wb') as coverfile:
coverfile.write(coverdata[2])

230 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

class calibre.devices.usbms.device.Device(plugin_path)
Bases: calibre.devices.usbms.deviceconfig.DeviceConfig, calibre.devices.
interface.DevicePlugin (pgina 222)
Esta clase proporciona una lgina comn a todos los controladores para dispositivos que se manifiestan como
dispositivos USB de almacenamiento masivo. Proporciona implementaciones para montar o extraer dispositivo
USBMS en todas las plataformas.
WINDOWS_MAIN_MEM = None
Texto que identifica la memoria principal del dispositivo en los textos de identificacin PnP de Windows.
Puede ser None, un texto, una lista de textos o una expresin regular compilada
WINDOWS_CARD_A_MEM = None
Texto que identifica la primera tarjeta del dispositivo en los textos de identificacin PnP de Windows.
Puede ser None, un texto, una lista de textos o una expresin regular compilada
WINDOWS_CARD_B_MEM = None
Texto que identifica la segunda tarjeta del dispositivo en los textos de identificacin PnP de Windows.
Puede ser None, un texto, una lista de textos o una expresin regular compilada
OSX_MAIN_MEM_VOL_PAT = None
Usado por la nueva deteccin de controladores para distinguir la memoria principal de las tarjetas de
almacenamiento. Debera ser una expresin regular que corresponda al punto de montaje de la memoria
principal asignado por OS X
MAX_PATH_LEN = 250
La longitud mxima para las rutas de acceso en el dispositivo
NEWS_IN_FOLDER = True
Poner noticias en una carpeta propia
windows_sort_drives(drives)
Ejecutado para distinguir la memoria principal y la tarjeta de almacenamiento para dispositivos en los que
WINDOWS_CARD_*_NAME no funciona. Por ejemplo, el EB600
sanitize_callback(path)
Mtodo para permitir a los controladores de dispositivo individuales reemplazar la limpieza de rutas de
acceso empleada por create_upload_path().
filename_callback(default, mi)
Devuelve la llamada para permitir a los conductores cambiar el nombre de archivo por defecto introducido
por create_upload_path()
sanitize_path_components(components)
Realiza cualquier limpieza especfica del dispositivo en los componentes de la ruta de acceso para los
archivos que se copiarn al dispositivo
get_annotations(path_map)
Resuelve path_map a annotation_map para archivos en el dispositivo
add_annotation_to_library(db, db_id, annotation)
Aadir una anotacin a la biblioteca de calibre
class calibre.devices.usbms.cli.CLI
class calibre.devices.usbms.driver.USBMS(plugin_path)
Bases: calibre.devices.usbms.cli.CLI (pgina 231), calibre.devices.usbms.device.
Device (pgina 230)
La clase base para todos los dispositivos USBMS. Implementa la lgica para enviar, recibir, actualizar metadatos,
retener metadatos, etc.

1.10. Personalizar calibre 231


Manual de usuario de calibre, Versin 2.82.0

upload_cover(path, filename, metadata, filepath)


Enva una portada de libro al dispositivo. La implementacin predeterminada no hace nada.
Parmetros
path La ruta completa del directorio donde se encuentra el libro asociado.
filename El nombre del archivo del libro electrnico sin la extensin.
metadata metadatos perteneciente al libro. Use metadata.thumbnail para la
portada
filepath La ruta completa al archivo del libro electrnico
classmethod normalize_path(path)
Devuelve path con los separadores de ruta propios de la plataforma

Acciones de interfaz de usuario

Si aade un complemento propio en un archivo zip, debera crear subclases de InterfaceActionBase e InterfaceAction.
El mtodo load_actual_plugin() de la nueva subclase de InterfaceActionBase debe devolver un espcimen de
la subclase de InterfaceBase.
class calibre.gui2.actions.InterfaceAction(parent, site_customization)
Bases: PyQt5.QtCore.QObject
Un complemento que representa una accin que puede ejecutarse en la interfaz grfica. Todos los elementos
de la barra de herramientas y de los mens contextuales estn implementados mediante estos complementos.
Tenga en cuenta que esta clase es la clase base para estos complementos, pero para integrar el complemento con
el sistema de complementos de calibre debe crear una clase envoltorio que haga referencia al complemento real.
Ver ejemplos en el mdulo calibre.customize.builtins.
Si dos objetos InterfaceAction tienen el mismo nombre, tiene preferencia el que tenga mayor prioridad.
Las subclases deben implementar los mtodos genesis(), library_changed(),
location_selected(), shutting_down() y initialization_complete().
Una vez inicializado, este complemento tiene acceso a la interfaz grfica principal de calibre va gui. Puede
acceder a otros complementos por su nombre, por ejemplo:

self.gui.iactions['Save To Disk']

Para acceder al complemento real, use el atributo interface_action_base_plugin; este atributo slo
est disponible una vez que el complemento se ha iniciado. Es til si quiere usasr mtodos de la clase del
complemento como do_user_config().
La QAction especificada por action_spec se crea automticamente y est disponible como self.
qaction.
name = Implement me
El nombre del complemento. Si dos complementos con el mismo nombre estn presentes, el que tenga
mayor prioridad tiene preferencia.
priority = 1
La prioridad del complemento. Si dos complementos con el mismo nombre estn presentes, el que tenga
mayor prioridad tiene preferencia.
popup_type = 1
El tipo de men emergente para cuando se aade este complemento a una barra de herramientas

232 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

auto_repeat = False
Especifica si esta accin debe repetirse automticamente cuando el atajo de teclado se mantiene presiona-
do.
action_spec = (text, icon, None, None)
De la forma: (texto, ruta_icono, ayuda, atajo_teclado). ruta_icono, ayuda y atajo_teclado pueden ser None.
atajo_teclado puede ser un texto, None o una tupla de atajos. Si es None, no se registra ningn atajo de
teclado correspondiente a la accin. Si se pasa una tupla vaca, se registra un atajo sin ninguna tecla
predefinida.
action_add_menu = False
Si es True, se crea automticamente un men y se aade a self.qaction
action_menu_clone_qaction = False
Si es True, se aade un clon de self.qaction al men de self.qaction. Si quiere que el texto de
esta accin sea distinto del de self.qaction, establezca esta variable como el nuevo texto.
dont_add_to = frozenset([])
Conjunto de ubicaciones a las que no debe aadirse esta accin. Ver all_locations para una lista de
posibles ubicaciones
dont_remove_from = frozenset([])
Conjunto de ubicaciones de las que no se debe eliminar esta accin. Ver: all_locations para obtener
una lista de posibles ubicaciones
action_type = global
Tipo de accin. current significa que acta sobre la vista actual, global indica una accin que no acta
sobre la vista actual, sino sobre calibre en general
accepts_drops = False
Si es True, este InterfaceAction tendr la oportunidad de interactuar con acciones de arrastrar y sol-
tar. Ver los mtodos accept_enter_event(), :meth:accept_drag_move_event, drop_event()
para ms detalles.
accept_enter_event(event, mime_data)
Este mtodo debe devolver True si y slo si esta accin de interfaz puede gestionar la accin de arrastrar.
No ejecute accept o ignore en la accin, la interfaz de calibre se encargar de ello.
accept_drag_move_event(event, mime_data)
Este mtodo debe devolver True si y slo si esta accin de interfaz puede gestionar la accin de arrastrar.
No ejecute accept o ignore en la accin, la interfaz de calibre se encargar de ello.
drop_event(event, mime_data)
Este mtodo debe realizar algunas acciones tiles y devolver True si y slo si esta accin de interfaz puede
manejar el suceso drop. No ejecute accept o ignore sobre el suceso, la interfaz de calibre se encargar de
eso. No debe realizar operaciones largas o que causen bloqueo en esta funcin. En su lugar lugar emita
una seal o use QTimer.singleShot y finalice rpidamente. Vea las acciones predefinidas como ejemplos.
create_menu_action(menu, unique_name, text, icon=None, shortcut=None, description=None,
triggered=None, shortcut_name=None)
Convenience method to easily add actions to a QMenu. Returns the created QAction. This action has one
extra attribute calibre_shortcut_unique_name which if not None refers to the unique name under which
this action is registered with the keyboard manager.
Parmetros
menu El QMenu al que se aadir la nueva accin creada
unique_name Un nombre nico para esta accin. Debe ser un nombre globalmente
nico, as que hgalo tan descriptivo como sea posible. Si duda, adale un identificador
uuid.

1.10. Personalizar calibre 233


Manual de usuario de calibre, Versin 2.82.0

text El texto de la accin.


icon Un QIcon o un nombre de archivo. El nombre de archivo se pasa al I() predefi-
nido, as que no necesita pasar la ruta completa al directorio de imgenes.
shortcut Un texto, una lista de textos, None o False. Si es False, no se registra ningn
atajo de teclado para esta accin. Si es None, se registra un atajo de teclado sin ninguna
tecla predeterminada. Con un texto o lista de textos se registra un atajo con las teclas
asociadas predeterminadas que se especifiquen.
description Una descripcin para esta accin. Usado para establecer ayudas de
herramienta.
triggered Un objeto ejecutable conectado con la seal desencadenada de la accin
creada.
shortcut_name The text displayed to the user when customizing the keyboard short-
cuts for this action. By default it is set to the value of text.
load_resources(names)
Si este complemento viene en un archivo en formato ZIP (complemento aadido por el usuario), este
mtodo le permitir cargar recursos desde el archivo ZIP.
Por ejemplo, para cargar una imagen:

pixmap = QPixmap()
pixmap.loadFromData(self.load_resources(['images/icon.png']).itervalues().
next())

icon = QIcon(pixmap)

Parmetros names Lista de rutas a los recursos en el archivo zip utilizando / como separador
Devuelve Un diccionario de la forma {nombre: contenido_de_archivo}. Los nom-
bres que no se encuentren en el archivo zip no estarn presentes en el diccionario.

genesis()
Configurar este complemento. Slo se ejecuta una vez durante la inicializacin. self.gui est disponible.
La accin especificada por action_spec est disponible como self.qaction.
location_selected(loc)
Ejecutado siempre que cambia la lista que se muestra en calibre. Actualmente los valores para loc son:
library, main, card y cardb.
Este mtodo debe habilitar o deshabilitar esta accin y sus subacciones, segn sea adecuado para la ubica-
cin.
library_changed(db)
Ejecutado cada vez que se cambia la biblioteca actual.
Parmetros db La LibraryDatabase correspondiente a la biblioteca actual.
gui_layout_complete()
Ejecutado una vez por accin cuando se completa la disposicin de la interfaz grfica principal. Si la accin
necesita hacer cambios en la disposicin, deben ocurrir aqu y no en initialization_complete().
initialization_complete()
Se ejecuta una vez por accin cuando se completa la inicializacin de la interfaz grfica principal.
shutting_down()
Ejecutado una vez por complemento cuando la interfaz grfica se est apagando. Libere los recursos en
uso, pero procure no bloquear el apagado durante un tiempo prolongado.

234 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

Devuelve False para detener el apagado. Es su responsabilidad decirle al usuario por qu se


detuvo el apagado.
class calibre.customize.InterfaceActionBase(*args, **kwargs)
Bases: calibre.customize.Plugin (pgina 212)
load_actual_plugin(gui)
Este mtodo debe devolver el objeto real de accin de interfaz.

Complementos de preferencias

class calibre.customize.PreferencesPlugin(plugin_path)
Bases: calibre.customize.Plugin (pgina 212)
Un complemento que representa un widget mostrado en el cuadro de dilogo Preferencias.
Este complemento posee un solo mtodo importante: create_widget(). Los diversos campos de este com-
plemento controlan cmo se categoriza en la interfaz de usuario.
config_widget = None
Ruta de importacin al mdule que contiene una clase llamada ConfigWidget que implementa
ConfigWidgetInterface. Usado por create_widget().
category_order = 100
Donde debe estar la :attr: category de este complemento en la lista de categoras.
name_order = 100
Dnde debe estar el :attr: gui_name de este complemento en la lista de nombres.
category = None
La categora en la que debe estar este complemento
gui_category = None
El nombre de categora mostrado al usuario para este complemento
gui_name = None
El nombre que se muestra al usuario para este complemento
icon = None
El icono para este complemento, debe ser una ruta de acceso absoluta
description = None
La descripcin usada para ayudas de herramientas y similares
create_widget(parent=None)
Crea y devuelve el widget Qt real usado para establecer este grupo de preferencias. El widget debe imple-
mentar calibre.gui2.preferences.ConfigWidgetInterface (pgina 235).
La implementacin predeterminada usa config_widget para crear el widget.
class calibre.gui2.preferences.ConfigWidgetInterface
Esta clase define la interfaz que deben implementar todos los widgets mostrados en el cuadro de dilogo Prefe-
rencias. Ver ConfigWidgetBase para una clase base que implementa esta interfaz y tambin define varios
mtodos prcticos.
changed_signal = None
Esta seal debe emitirse cuando el usuario cambia un valor en este widget
supports_restoring_to_defaults = True
Es True si y slo si el mtodo restore_to_defaults() est implementado.

1.10. Personalizar calibre 235


Manual de usuario de calibre, Versin 2.82.0

restore_defaults_desc = uRestablecer las configuraciones a sus valores predeterminados. Debe pulsar \xabAplicar
La ayuda de herramienta para el botn de restauracin de los valores predeterminados
restart_critical = False
Si es True el cuadro de dilogo de preferencias no permitir al usuario establecer ms preferencias. Slo
tiene efecto si commit() devuelve True.
genesis(gui)
Se ejecuta una vez antes de mostrar el widget, debe realizar cualquier configuracin necesaria.
Parmetros gui La interfaz grfica principal de calibre
initialize()
Debe establecer todos los valores de configuracin a sus valores iniciales (los valores almacenados en los
archivos de configuracin).
restore_defaults()
Debe establecer todos los valores de configuracin a sus valores predeterminados.
commit()
Guarda cualquier configuracin modificada. Devuelve True si los cambios requieren un reinicio, False si
no es as. Genera una excepcin AbortCommit para indicar que ocurri un error. Es su responsabilidad
informar al usuario del error y cmo corregirlo.
refresh_gui(gui)
Se ejecuta una vez despus de crear este widget. Es responsable de hacer que la interfaz grfica vuelva a
leer cualquier configuracin modificada. Tenga en cuenta que la interfaz grfica predeterminada reinicia
varios elementos de todas formas, as que la mayora de los widgets no necesitarn usar este mtodo.
class calibre.gui2.preferences.ConfigWidgetBase(parent=None)
Clase base que contiene cdigo para aadir widgets de configuracin corrientes, como casillas de verificacin,
cuadros combinados, campos de texto, etc. Ver el mtodo register().
Esta clase gestiona automticamente, para las configuraciones registradas, notificaciones de cambio, reinicio a
valores predeterminados, correspondencia entre objetos de interfaz grfica y de configuracin, etc.
Si el widget de configuracin hereda esta clase pero incluye configuraciones que no estn registradas, debe reem-
plazar los mtodos de ConfigWidgetInterface y llamar a los mtodos de la clase base en los reemplazos.

register(name, config_obj, gui_name=None, choices=None, restart_required=False, em-


pty_string_is_None=True, setting=<class calibre.gui2.preferences.Setting>)
Registrar una configuracin.
Parmetros
name El nombre de la configuracin
config El objeto de configuracin que lee y escribe la configuracin
gui_name El nombre del objeto de interfaz grfica que ofrece una interfaz para modi-
ficar la configuracin. De manera predeterminada se supone que es 'opt_' + name.
choices Si esta configuracin es de eleccin mltiple (un cuadro combinado), la lista
de posibilidades. La lista es una lista de tuplas de dos elementos de la forma: [(nombre
de interfaz, valor), ...].
setting La clase responsable de la gestin de esta configuracin. La clase predeter-
minada contempla casi todos los casos, por lo que este parmetro es raramente usado.

236 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

Complementos de visor

class calibre.customize.ViewerPlugin(plugin_path)
Bases: calibre.customize.Plugin (pgina 212)
type = uVisor
Estos complementos se usan para aadir funcionalidad al visor de calibre.
load_fonts()
Este mtodo se ejecuta al iniciar el visor. El mtodo debe cargar cualquier tipo de letra que quiera hacer
disponible. Por ejemplo:

def load_fonts():
from PyQt5.Qt import QFontDatabase
font_data = get_resources(['myfont1.ttf', 'myfont2.ttf'])
for raw in font_data.itervalues():
QFontDatabase.addApplicationFontFromData(raw)

load_javascript(evaljs)
Este mtodo se ejecuta cada vez que se carga un nuevo documento HTML en el visor. selo para cargar
bibliotecas de javascript en el visor. Por ejemplo:

def load_javascript(self, evaljs):


js = get_resources('myjavascript.js')
evaljs(js)

run_javascript(evaljs)
Este mtodo se ejecuta cada vez que termina de cargarse un documento. selo de la misma manera que
load_javascript().
customize_ui(ui)
Este mtodo se ejecuta una vez al crear el visor. selo para hacer cualquier personalizacin que desee en
la interfaz de usuario del visor. Por ejemplo, puede modificar las barras de herramientas mediante ui.
tool_bar y ui.tool_bar2.
customize_context_menu(menu, event, hit_test_result)
Este mtodo se ejecuta cada vez que se muestra el men de contexto (botn derecho). Puede usarlo pa-
ra personalizar el men de contexto. event es la accin del men de contextoy hit_test_resultes el
QWebHitTestResult para esta accin en el documento cargado actualmente.

1.10.2 Variables de entorno

CALIBRE_CONFIG_DIRECTORY - establece el directorio donde se guardan y de donde se leen los archivos


de configuracin
CALIBRE_TEMP_DIR - establece el directorio temporal utilizado por calibre
CALIBRE_CACHE_DIRECTORY - establece el directorio que calibre usa para almacenar datos temporales
persistentes entre sesiones.
CALIBRE_OVERRIDE_DATABASE_PATH - permite especificar la ruta completa a metadata.db. Usando esta
variable metadata.db puede tener metadata.db en una ubicacin distinta de la carpeta de la biblioteca. Esto es
til si la carpeta de la biblioteca est en una unidad de red que no admite el bloqueo de archivos.
CALIBRE_DEVELOP_FROM - Se utiliza para ejecutar desde un entorno de desarrollo de calibre. Vea Configu-
rar un entorno de desarrollo de calibre (pgina 281).
CALIBRE_OVERRIDE_LANG - Se utiliza para forzar el idioma de la interfaz (cdigo de idioma ISO 639)

1.10. Personalizar calibre 237


Manual de usuario de calibre, Versin 2.82.0

CALIBRE_TEST_TRANSLATION - Se utiliza para probar un archivo .po de traduccin (debe ser la ruta al
archivo .po)
CALIBRE_NO_NATIVE_FILEDIALOGS - Hace que calibre no utilice los cuadros de dilogo nativos para la
seleccin de archivos y directorios.
CALIBRE_NO_NATIVE_MENUBAR - Hace que calibre no cree un men nativo (global) en Ubuntu Unity y
otros entornos de escritorio de linux. El men se crea dentro de la ventana, que es ms tradicional.
CALIBRE_IGNORE_SYSTEM_THEME - Hace que calibre no tenga en cuenta los complementos de estilo de
Qt del sistema y use el estilo incorporado. Es til para evitar fallos causados por una incompatibilidad entre el
complemento de Qt del sistema y la versin de Qt incluida en calibre.
CALIBRE_SHOW_DEPRECATION_WARNINGS - hace que calibre enve advertencias de elementos anticuados
a stdout. til para desarrolladores de calibre.
CALIBRE_NO_DEFAULT_PROGRAMS - Evita que calibre registre automticamente los tipos de archivo que
reconoce en Windows.
SYSFS_PATH - sela si sysfs est montado en una ubicacin distinta de /sys
http_proxy - Utilizado en linux para especificar un proxy HTTP
Vase How to set environment variables in windows95 (en ingls) o How to set environment variables in OS X96 (en
ingls).

1.10.3 Ajustes

Los ajustes son pequeos cambios que puede especificar para controlar varios aspectos del comportamiento de calibre.
Puede cambiarlos en Preferencias > Avanzado > Ajustes. Los valores predeterminados para los ajustes se muestran a
continuacin

#!/usr/bin/env python2
# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai
__license__ = 'GPL v3'
__copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>'
__docformat__ = 'restructuredtext en'

'''
Contains various tweaks that affect calibre behavior. Only edit this file if
you know what you are doing. If you delete this file, it will be recreated from
defaults.
'''

#: Auto increment series index


# The algorithm used to assign a book added to an existing series a series number.
# New series numbers assigned using this tweak are always integer values, except
# if a constant non-integer is specified.
# Possible values are:
# next - First available integer larger than the largest existing number
# first_free - First available integer larger than 0
# next_free - First available integer larger than the smallest existing number
# last_free - First available integer smaller than the largest existing number
# Return largest existing + 1 if no free number is found
# const - Assign the number 1 always
# no_change - Do not change the series index
# a number - Assign that number always. The number is not in quotes. Note that

95 http://www.computerhope.com/issues/ch000549.htm
96 http://www.dowdandassociates.com/blog/content/howto-set-an-environment-variable-in-mac-os-x-launchd-plist/

238 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

# 0.0 can be used here.


# Examples:
# series_index_auto_increment = 'next'
# series_index_auto_increment = 'next_free'
# series_index_auto_increment = 16.5
#
# Set the use_series_auto_increment_tweak_when_importing tweak to True to
# use the above values when importing/adding books. If this tweak is set to
# False (the default) then the series number will be set to 1 if it is not
# explicitly set during the import. If set to True, then the
# series index will be set according to the series_index_auto_increment setting.
# Note that the use_series_auto_increment_tweak_when_importing tweak is used
# only when a value is not provided during import. If the importing regular
# expression produces a value for series_index, or if you are reading metadata
# from books and the import plugin produces a value, than that value will
# be used irrespective of the setting of the tweak.
series_index_auto_increment = 'next'
use_series_auto_increment_tweak_when_importing = False

#: Add separator after completing an author name


# Should the completion separator be append
# to the end of the completed text to
# automatically begin a new completion operation
# for authors.
# Can be either True or False
authors_completer_append_separator = False

#: Author sort name algorithm


# The algorithm used to copy author to author_sort
# Possible values are:
# invert: use "fn ln" -> "ln, fn"
# copy : copy author to author_sort without modification
# comma : use 'copy' if there is a ',' in the name, otherwise use 'invert'
# nocomma : "fn ln" -> "ln fn" (without the comma)
# When this tweak is changed, the author_sort values stored with each author
# must be recomputed by right-clicking on an author in the left-hand tags pane,
# selecting 'manage authors', and pressing 'Recalculate all author sort values'.
# The author name suffixes are words that are ignored when they occur at the
# end of an author name. The case of the suffix is ignored and trailing
# periods are automatically handled. The same is true for prefixes.
# The author name copy words are a set of words which if they occur in an
# author name cause the automatically generated author sort string to be
# identical to the author name. This means that the sort for a string like Acme
# Inc. will be Acme Inc. instead of Inc., Acme
author_sort_copy_method = 'comma'
author_name_suffixes = ('Jr', 'Sr', 'Inc', 'Ph.D', 'Phd',
'MD', 'M.D', 'I', 'II', 'III', 'IV',
'Junior', 'Senior')
author_name_prefixes = ('Mr', 'Mrs', 'Ms', 'Dr', 'Prof')
author_name_copywords = ('Corporation', 'Company', 'Co.', 'Agency', 'Council',
'Committee', 'Inc.', 'Institute', 'Society', 'Club', 'Team')

#: Splitting multiple author names


# By default, calibre splits a string containing multiple author names on
# ampersands and the words "and" and "with". You can customize the splitting
# by changing the regular expression below. Strings are split on whatever the
# specified regular expression matches, in addition to ampersands.
# Default: r'(?i),?\s+(and|with)\s+'

1.10. Personalizar calibre 239


Manual de usuario de calibre, Versin 2.82.0

authors_split_regex = r'(?i),?\s+(and|with)\s+'

#: Use author sort in Tag Browser


# Set which author field to display in the tags pane (the list of authors,
# series, publishers etc on the left hand side). The choices are author and
# author_sort. This tweak affects only what is displayed under the authors
# category in the tags pane and content server. Please note that if you set this
# to author_sort, it is very possible to see duplicate names in the list because
# although it is guaranteed that author names are unique, there is no such
# guarantee for author_sort values. Showing duplicates won't break anything, but
# it could lead to some confusion. When using 'author_sort', the tooltip will
# show the author's name.
# Examples:
# categories_use_field_for_author_name = 'author'
# categories_use_field_for_author_name = 'author_sort'
categories_use_field_for_author_name = 'author'

#: Control partitioning of Tag Browser


# When partitioning the tags browser, the format of the subcategory label is
# controlled by a template: categories_collapsed_name_template if sorting by
# name, categories_collapsed_rating_template if sorting by average rating, and
# categories_collapsed_popularity_template if sorting by popularity. There are
# two variables available to the template: first and last. The variable 'first'
# is the initial item in the subcategory, and the variable 'last' is the final
# item in the subcategory. Both variables are 'objects'; they each have multiple
# values that are obtained by using a suffix. For example, first.name for an
# author category will be the name of the author. The sub-values available are:
# name: the printable name of the item
# count: the number of books that references this item
# avg_rating: the average rating of all the books referencing this item
# sort: the sort value. For authors, this is the author_sort for that author
# category: the category (e.g., authors, series) that the item is in.
# Note that the "r'" in front of the { is necessary if there are backslashes
# (\ characters) in the template. It doesn't hurt anything to leave it there
# even if there aren't any backslashes.
categories_collapsed_name_template = r'{first.sort:shorten(4,,0)} - {last.
sort:shorten(4,,0)}'

categories_collapsed_rating_template = r'{first.avg_rating:4.2f:ifempty(0)} - {last.


avg_rating:4.2f:ifempty(0)}'

categories_collapsed_popularity_template = r'{first.count:d} - {last.count:d}'

#: Control order of categories in the tag browser


# Change the following dict to change the order that categories are displayed in
# the tag browser. Items are named using their lookup name, and will be sorted
# using the number supplied. The lookup name '*' stands for all names that
# otherwise do not appear. Two names with the same value will be sorted
# using the default order; the one used when the dict is empty.
# Example: tag_browser_category_order = {'series':1, 'tags':2, '*':3}
# resulting in the order series, tags, then everything else in default order.
tag_browser_category_order = {'*':1}

#: Specify columns to sort the booklist by on startup


# Provide a set of columns to be sorted on when calibre starts
# The argument is None if saved sort history is to be used
# otherwise it is a list of column,order pairs. Column is the
# lookup/search name, found using the tooltip for the column
# Order is 0 for ascending, 1 for descending

240 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

# For example, set it to [('authors',0),('title',0)] to sort by


# title within authors.
sort_columns_at_startup = None

#: Control how dates are displayed


# Format to be used for publication date and the timestamp (date).
# A string controlling how the publication date is displayed in the GUI
# d the day as number without a leading zero (1 to 31)
# dd the day as number with a leading zero (01 to 31)
# ddd the abbreviated localized day name (e.g. 'Mon' to 'Sun').
# dddd the long localized day name (e.g. 'Monday' to 'Sunday').
# M the month as number without a leading zero (1-12)
# MM the month as number with a leading zero (01-12)
# MMM the abbreviated localized month name (e.g. 'Jan' to 'Dec').
# MMMM the long localized month name (e.g. 'January' to 'December').
# yy the year as two digit number (00-99)
# yyyy the year as four digit number
# h the hours without a leading 0 (0 to 11 or 0 to 23, depending on am/pm) '
# hh the hours with a leading 0 (00 to 11 or 00 to 23, depending on am/pm) '
# m the minutes without a leading 0 (0 to 59) '
# mm the minutes with a leading 0 (00 to 59) '
# s the seconds without a leading 0 (0 to 59) '
# ss the seconds with a leading 0 (00 to 59) '
# ap use a 12-hour clock instead of a 24-hour clock, with "ap"
# replaced by the localized string for am or pm '
# AP use a 12-hour clock instead of a 24-hour clock, with "AP"
# replaced by the localized string for AM or PM '
# iso the date with time and timezone. Must be the only format present
# For example, given the date of 9 Jan 2010, the following formats show
# MMM yyyy ==> Jan 2010 yyyy ==> 2010 dd MMM yyyy ==> 09 Jan 2010
# MM/yyyy ==> 01/2010 d/M/yy ==> 9/1/10 yy ==> 10
# publication default if not set: MMM yyyy
# timestamp default if not set: dd MMM yyyy
# last_modified_display_format if not set: dd MMM yyyy
gui_pubdate_display_format = 'MMM yyyy'
gui_timestamp_display_format = 'dd MMM yyyy'
gui_last_modified_display_format = 'dd MMM yyyy'

#: Control sorting of titles and series in the library display


# Control title and series sorting in the library view. If set to
# 'library_order', the title sort field will be used instead of the title.
# Unless you have manually edited the title sort field, leading articles such as
# The and A will be ignored. If set to 'strictly_alphabetic', the titles will be
# sorted as-is (sort by title instead of title sort). For example, with
# library_order, The Client will sort under 'C'. With strictly_alphabetic, the
# book will sort under 'T'.
# This flag affects Calibre's library display. It has no effect on devices. In
# addition, titles for books added before changing the flag will retain their
# order until the title is edited. Double-clicking on a title and hitting return
# without changing anything is sufficient to change the sort.
title_series_sorting = 'library_order'

#: Control formatting of title and series when used in templates


# Control how title and series names are formatted when saving to disk/sending
# to device. The behavior depends on the field being processed. If processing
# title, then if this tweak is set to 'library_order', the title will be
# replaced with title_sort. If it is set to 'strictly_alphabetic', then the
# title will not be changed. If processing series, then if set to

1.10. Personalizar calibre 241


Manual de usuario de calibre, Versin 2.82.0

# 'library_order', articles such as 'The' and 'An' will be moved to the end. If
# set to 'strictly_alphabetic', the series will be sent without change.
# For example, if the tweak is set to library_order, "The Lord of the Rings"
# will become "Lord of the Rings, The". If the tweak is set to
# strictly_alphabetic, it would remain "The Lord of the Rings". Note that the
# formatter function raw_field will return the base value for title and
# series regardless of the setting of this tweak.
save_template_title_series_sorting = 'library_order'

#: Set the list of words considered to be "articles" for sort strings


# Set the list of words that are to be considered 'articles' when computing the
# title sort strings. The articles differ by language. By default, calibre uses
# a combination of articles from English and whatever language the calibre user
# interface is set to. In addition, in some contexts where the book language is
# available, the language of the book is used. You can change the list of
# articles for a given language or add a new language by editing
# per_language_title_sort_articles. To tell calibre to use a language other
# than the user interface language, set, default_language_for_title_sort. For
# example, to use German, set it to 'deu'. A value of None means the user
# interface language is used. The setting title_sort_articles is ignored
# (present only for legacy reasons).
per_language_title_sort_articles = {
# English
'eng' : (r'A\s+', r'The\s+', r'An\s+'),

# Esperanto
'epo': (r'La\s+', r"L'", 'L\xb4'),

# Spanish
'spa' : (r'El\s+', r'La\s+', r'Lo\s+', r'Los\s+', r'Las\s+', r'Un\s+',
r'Una\s+', r'Unos\s+', r'Unas\s+'),
# French
'fra' : (r'Le\s+', r'La\s+', r"L'", u'L', u'L', r'Les\s+', r'Un\s+', r
'Une\s+',

r'Des\s+', r'De\s+La\s+', r'De\s+', r"D'", u'D', u'L'),

# Italian
'ita': ('Lo\\s+', 'Il\\s+', "L'", 'L\xb4', 'La\\s+', 'Gli\\s+',
'I\\s+', 'Le\\s+', 'Uno\\s+', 'Un\\s+', 'Una\\s+', "Un'",
'Un\xb4', 'Dei\\s+', 'Degli\\s+', 'Delle\\s+', 'Del\\s+',
'Della\\s+', 'Dello\\s+', "Dell'", 'Dell\xb4'),

# Portuguese
'por' : (r'A\s+', r'O\s+', r'Os\s+', r'As\s+', r'Um\s+', r'Uns\s+',
r'Uma\s+', r'Umas\s+', ),
# Romanian
'ron' : (r'Un\s+', r'O\s+', r'Niste\s+', ),
# German
'deu' : (r'Der\s+', r'Die\s+', r'Das\s+', r'Den\s+', r'Ein\s+',
r'Eine\s+', r'Einen\s+', r'Dem\s+', r'Des\s+', r'Einem\s+',
r'Eines\s+'),
# Dutch
'nld' : (r'De\s+', r'Het\s+', r'Een\s+', r"'n\s+", r"'s\s+", r'Ene\s+',
r'Ener\s+', r'Enes\s+', r'Den\s+', r'Der\s+', r'Des\s+',
r"'t\s+"),
# Swedish
'swe' : (r'En\s+', r'Ett\s+', r'Det\s+', r'Den\s+', r'De\s+', ),
# Turkish

242 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

'tur' : (r'Bir\s+', ),
# Afrikaans
'afr' : (r"'n\s+", r'Die\s+', ),
# Greek
'ell' : (r'O\s+', r'I\s+', r'To\s+', r'Ta\s+', r'Tus\s+', r'Tis\s+',
r"'Enas\s+", r"'Mia\s+", r"'Ena\s+", r"'Enan\s+", ),
# Hungarian
'hun' : (r'A\s+', 'Az\s+', 'Egy\s+',),
}
default_language_for_title_sort = None
title_sort_articles=r'^(A|The|An)\s+'

#: Specify a folder calibre should connect to at startup


# Specify a folder that calibre should connect to at startup using
# connect_to_folder. This must be a full path to the folder. If the folder does
# not exist when calibre starts, it is ignored. If there are '\' characters in
# the path (such as in Windows paths), you must double them.
# Examples:
# auto_connect_to_folder = 'C:\\Users\\someone\\Desktop\\testlib'
# auto_connect_to_folder = '/home/dropbox/My Dropbox/someone/library'
auto_connect_to_folder = ''

#: Specify renaming rules for SONY collections


# Specify renaming rules for sony collections. This tweak is only applicable if
# metadata management is set to automatic. Collections on Sonys are named
# depending upon whether the field is standard or custom. A collection derived
# from a standard field is named for the value in that field. For example, if
# the standard 'series' column contains the value 'Darkover', then the
# collection name is 'Darkover'. A collection derived from a custom field will
# have the name of the field added to the value. For example, if a custom series
# column named 'My Series' contains the name 'Darkover', then the collection
# will by default be named 'Darkover (My Series)'. For purposes of this
# documentation, 'Darkover' is called the value and 'My Series' is called the
# category. If two books have fields that generate the same collection name,
# then both books will be in that collection.
# This set of tweaks lets you specify for a standard or custom field how
# the collections are to be named. You can use it to add a description to a
# standard field, for example 'Foo (Tag)' instead of the 'Foo'. You can also use
# it to force multiple fields to end up in the same collection. For example, you
# could force the values in 'series', '#my_series_1', and '#my_series_2' to
# appear in collections named 'some_value (Series)', thereby merging all of the
# fields into one set of collections.
# There are two related tweaks. The first determines the category name to use
# for a metadata field. The second is a template, used to determines how the
# value and category are combined to create the collection name.
# The syntax of the first tweak, sony_collection_renaming_rules, is:
# {'field_lookup_name':'category_name_to_use', 'lookup_name':'name', ...}
# The second tweak, sony_collection_name_template, is a template. It uses the
# same template language as plugboards and save templates. This tweak controls
# how the value and category are combined together to make the collection name.
# The only two fields available are {category} and {value}. The {value} field is
# never empty. The {category} field can be empty. The default is to put the
# value first, then the category enclosed in parentheses, it isn't empty:
# '{value} {category:|(|)}'
# Examples: The first three examples assume that the second tweak
# has not been changed.
# 1: I want three series columns to be merged into one set of collections. The
# column lookup names are 'series', '#series_1' and '#series_2'. I want nothing

1.10. Personalizar calibre 243


Manual de usuario de calibre, Versin 2.82.0

# in the parenthesis. The value to use in the tweak value would be:
# sony_collection_renaming_rules={'series':'', '#series_1':'', '#series_2':''}
# 2: I want the word '(Series)' to appear on collections made from series, and
# the word '(Tag)' to appear on collections made from tags. Use:
# sony_collection_renaming_rules={'series':'Series', 'tags':'Tag'}
# 3: I want 'series' and '#myseries' to be merged, and for the collection name
# to have '(Series)' appended. The renaming rule is:
# sony_collection_renaming_rules={'series':'Series', '#myseries':'Series'}
# 4: Same as example 2, but instead of having the category name in parentheses
# and appended to the value, I want it prepended and separated by a colon, such
# as in Series: Darkover. I must change the template used to format the category name
# The resulting two tweaks are:
# sony_collection_renaming_rules={'series':'Series', 'tags':'Tag'}
# sony_collection_name_template='{category:||: }{value}'
sony_collection_renaming_rules={}
sony_collection_name_template='{value}{category:| (|)}'

#: Specify how SONY collections are sorted


# Specify how sony collections are sorted. This tweak is only applicable if
# metadata management is set to automatic. You can indicate which metadata is to
# be used to sort on a collection-by-collection basis. The format of the tweak
# is a list of metadata fields from which collections are made, followed by the
# name of the metadata field containing the sort value.
# Example: The following indicates that collections built from pubdate and tags
# are to be sorted by the value in the custom column '#mydate', that collections
# built from 'series' are to be sorted by 'series_index', and that all other
# collections are to be sorted by title. If a collection metadata field is not
# named, then if it is a series- based collection it is sorted by series order,
# otherwise it is sorted by title order.
# [(['pubdate', 'tags'],'#mydate'), (['series'],'series_index'), (['*'], 'title')]
# Note that the bracketing and parentheses are required. The syntax is
# [ ( [list of fields], sort field ) , ( [ list of fields ] , sort field ) ]
# Default: empty (no rules), so no collection attributes are named.
sony_collection_sorting_rules = []

#: Control how tags are applied when copying books to another library
# Set this to True to ensure that tags in 'Tags to add when adding
# a book' are added when copying books to another library
add_new_book_tags_when_importing_books = False

#: Set the maximum number of tags to show per book in the content server
max_content_server_tags_shown=5

#: Set custom metadata fields that the content server will or will not display.
# content_server_will_display is a list of custom fields to be displayed.
# content_server_wont_display is a list of custom fields not to be displayed.
# wont_display has priority over will_display.
# The special value '*' means all custom fields. The value [] means no entries.
# Defaults:
# content_server_will_display = ['*']
# content_server_wont_display = []
# Examples:
# To display only the custom fields #mytags and #genre:
# content_server_will_display = ['#mytags', '#genre']
# content_server_wont_display = []
# To display all fields except #mycomments:
# content_server_will_display = ['*']
# content_server_wont_display['#mycomments']

244 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

content_server_will_display = ['*']
content_server_wont_display = []

#: Set the maximum number of sort 'levels'


# Set the maximum number of sort 'levels' that calibre will use to resort the
# library after certain operations such as searches or device insertion. Each
# sort level adds a performance penalty. If the database is large (thousands of
# books) the penalty might be noticeable. If you are not concerned about multi-
# level sorts, and if you are seeing a slowdown, reduce the value of this tweak.
maximum_resort_levels = 5

#: Choose whether dates are sorted using visible fields


# Date values contain both a date and a time. When sorted, all the fields are
# used, regardless of what is displayed. Set this tweak to True to use only
# the fields that are being displayed.
sort_dates_using_visible_fields = False

#: Fuzz value for trimming covers


# The value used for the fuzz distance when trimming a cover.
# Colors within this distance are considered equal.
# The distance is in absolute intensity units.
cover_trim_fuzz_value = 10

#: Control behavior of the book list


# You can control the behavior of doubleclicks on the books list.
# Choices: open_viewer, do_nothing,
# edit_cell, edit_metadata. Selecting anything other than open_viewer has the
# side effect of disabling editing a field using a single click.
# Default: open_viewer.
# Example: doubleclick_on_library_view = 'do_nothing'
# You can also control whether the book list scrolls horizontal per column or
# per pixel. Default is per column.
doubleclick_on_library_view = 'open_viewer'
horizontal_scrolling_per_column = True

#: Language to use when sorting


# Setting this tweak will force sorting to use the
# collating order for the specified language. This might be useful if you run
# calibre in English but want sorting to work in the language where you live.
# Set the tweak to the desired ISO 639-1 language code, in lower case.
# You can find the list of supported locales at
# https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
# Default: locale_for_sorting = '' -- use the language calibre displays in
# Example: locale_for_sorting = 'fr' -- sort using French rules.
# Example: locale_for_sorting = 'nb' -- sort using Norwegian rules.
locale_for_sorting = ''

#: Number of columns for custom metadata in the edit metadata dialog


# Set whether to use one or two columns for custom metadata when editing
# metadata one book at a time. If True, then the fields are laid out using two
# columns. If False, one column is used.
metadata_single_use_2_cols_for_custom_fields = True

#: Order of custom column(s) in edit metadata


# Controls the order that custom columns are listed in edit metadata single
# and bulk. The columns listed in the tweak are displayed first and in the
# order provided. Any columns not listed are dislayed after the listed ones,
# in alphabetical order. Do note that this tweak does not change the size of

1.10. Personalizar calibre 245


Manual de usuario de calibre, Versin 2.82.0

# the edit widgets. Putting comments widgets in this list may result in some
# odd widget spacing when using two-column mode.
# Enter a comma-separated list of custom field lookup names, as in
# metadata_edit_custom_column_order = ['#genre', '#mytags', '#etc']
metadata_edit_custom_column_order = []

#: The number of seconds to wait before sending emails


# The number of seconds to wait before sending emails when using a
# public email server like gmx/hotmail/gmail. Default is: 5 minutes
# Setting it to lower may cause the server's SPAM controls to kick in,
# making email sending fail. Changes will take effect only after a restart of
# calibre. You can also change the list of hosts that calibre considers
# to be public relays here. Any relay host ending with one of the suffixes
# in the list below will be considered a public email server.
public_smtp_relay_delay = 301
public_smtp_relay_host_suffixes = ['gmail.com', 'live.com', 'gmx.com']

#: The maximum width and height for covers saved in the calibre library
# All covers in the calibre library will be resized, preserving aspect ratio,
# to fit within this size. This is to prevent slowdowns caused by extremely
# large covers
maximum_cover_size = (1650, 2200)

#: Where to send downloaded news


# When automatically sending downloaded news to a connected device, calibre
# will by default send it to the main memory. By changing this tweak, you can
# control where it is sent. Valid values are "main", "carda", "cardb". Note
# that if there isn't enough free space available on the location you choose,
# the files will be sent to the location with the most free space.
send_news_to_device_location = "main"

#: What interfaces should the content server listen on


# By default, the calibre content server listens on '0.0.0.0' which means that it
# accepts IPv4 connections on all interfaces. You can change this to, for
# example, '127.0.0.1' to only listen for connections from the local machine, or
# to '::' to listen to all incoming IPv6 and IPv4 connections (this may not
# work on all operating systems)
server_listen_on = '0.0.0.0'

#: Unified toolbar on OS X
# If you enable this option and restart calibre, the toolbar will be 'unified'
# with the titlebar as is normal for OS X applications. However, doing this has
# various bugs, for instance the minimum width of the toolbar becomes twice
# what it should be and it causes other random bugs on some systems, so turn it
# on at your own risk!
unified_title_toolbar_on_osx = False

#: Save original file when converting/polishing from same format to same format
# When calibre does a conversion from the same format to the same format, for
# example, from EPUB to EPUB, the original file is saved, so that in case the
# conversion is poor, you can tweak the settings and run it again. By setting
# this to False you can prevent calibre from saving the original file.
# Similarly, by setting save_original_format_when_polishing to False you can
# prevent calibre from saving the original file when polishing.
save_original_format = True
save_original_format_when_polishing = True

#: Number of recently viewed books to show

246 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

# Right-clicking the View button shows a list of recently viewed books. Control
# how many should be shown, here.
gui_view_history_size = 15

#: Change the font size of book details in the interface


# Change the font size at which book details are rendered in the side panel and
# comments are rendered in the metadata edit dialog. Set it to a positive or
# negative number to increase or decrease the font size.
change_book_details_font_size_by = 0

#: Compile General Program Mode templates to Python


# Compiled general program mode templates are significantly faster than
# interpreted templates. Setting this tweak to True causes calibre to compile
# (in most cases) general program mode templates. Setting it to False causes
# calibre to use the old behavior -- interpreting the templates. Set the tweak
# to False if some compiled templates produce incorrect values.
# Default: compile_gpm_templates = True
# No compile: compile_gpm_templates = False
compile_gpm_templates = True

#: What format to default to when using the Tweak feature


# The Tweak feature of calibre allows direct editing of a book format.
# If multiple formats are available, calibre will offer you a choice
# of formats, defaulting to your preferred output format if it is available.
# Set this tweak to a specific value of 'EPUB' or 'AZW3' to always default
# to that format rather than your output format preference.
# Set to a value of 'remember' to use whichever format you chose last time you
# used the Tweak feature.
# Examples:
# default_tweak_format = None (Use output format)
# default_tweak_format = 'EPUB'
# default_tweak_format = 'remember'
default_tweak_format = None

#: Do not preselect a completion when editing authors/tags/series/etc.


# This means that you can make changes and press Enter and your changes will
# not be overwritten by a matching completion. However, if you wish to use the
# completions you will now have to press Tab to select one before pressing
# Enter. Which technique you prefer will depend on the state of metadata in
# your library and your personal editing style.
preselect_first_completion = False

#: Completion mode when editing authors/tags/series/etc.


# By default, when completing items, calibre will show you all the candidates
# that start with the text you have already typed. You can instead have it show
# all candidates that contain the text you have already typed. To do this, set
# completion_mode to 'contains'. For example, if you type asi it will match both
# Asimov and Quasimodo, whereas the default behavior would match only Asimov.
completion_mode = 'prefix'

#: Recognize numbers inside text when sorting


# This means that when sorting on text fields like title the text "Book 2"
# will sort before the text "Book 100". If you want this behavior, set
# numeric_collation = True note that doing so will cause problems with text
# that starts with numbers and is a little slower.
numeric_collation = False

#: Sort the list of libraries alphabetically

1.10. Personalizar calibre 247


Manual de usuario de calibre, Versin 2.82.0

# The list of libraries in the Copy to Library and Quick Switch menus are
# normally sorted by most used. However, if there are more than a certain
# number of such libraries, the sorting becomes alphabetic. You can set that
# number here. The default is ten libraries.
many_libraries = 10

#: Highlight the virtual library name when using a Virtual Library


# The virtual library name next to the Virtual Library button is highlighted in
# yellow when using a Virtual Library. You can choose the color used for the
# highlight with this tweak. Set it to 'transparent' to disable highlighting.
highlight_virtual_library = 'yellow'

#: Choose available output formats for conversion


# Restrict the list of available output formats in the conversion dialogs.
# For example, if you only want to convert to EPUB and AZW3, change this to
# restrict_output_formats = ['EPUB', 'AZW3']. The default value of None causes
# all available output formats to be present.
restrict_output_formats = None

#: Set the thumbnail image quality used by the content server


# The quality of a thumbnail is largely controlled by the compression quality
# used when creating it. Set this to a larger number to improve the quality.
# Note that the thumbnails get much larger with larger compression quality
# numbers.
# The value can be between 50 and 99
content_server_thumbnail_compression_quality = 75

#: Image file types to treat as ebooks when dropping onto the Book Details panel
# Normally, if you drop any image file in a format known to calibre onto the
# Book Details panel, it will be used to set the cover. If you want to store
# some image types as ebooks instead, you can set this tweak.
# Examples:
# cover_drop_exclude = {'tiff', 'webp'}
cover_drop_exclude = ()

1.10.4 Reemplazar iconos, plantillas, etctera

Nota: calibre admite directamente temas de iconos, hay varios temas de iconos disponibles para calibre, que puede
usar en Preferencias > Apariencia > Cambiar tema de iconos. Los temas de iconos usan el mismo mecanismo que se
describe a continuacin para cambiar recursos estticos.

calibre le permite reemplazar los recursos estticos, como iconos, javascript y plantillas para la sobre-
cubierta de metadatos, catlogos, etc., con versiones personalizadas. Todos los recursos estticos se al-
macenan en la subcarpeta resources. En Windows, se encuentra por lo general en C:\Archivos
de programa\Calibre2\resources. En OS X, /Aplicaciones/calibre.app/Contents/
Resources/resources/. En Linux, si est usando el instalador binario del sitio web de calibre, ser
/opt/calibre/resources. Estas rutas de acceso pueden cambiar dependiendo de dnde decida instalar calibre.
No debe modificar los archivos de esta carpeta de recursos, ya que los cambios sern reemplazados la prxima vez
que actualice calibre. En lugar de ello, vaya a Preferencias > Avanzado > Miscelnea y pulse Abrir el directorio
de configuracin calibre. En este directorio de configuracin, cree una subcarpeta llamada resources y coloque
los archivos que quiere reemplazar. Coloque los archivos en las subcarpetas apropiadas, por ejemplo coloque las
imgenes en resources/images, etc. calibre usar automaticamente los archivos personalizados la prxima vez
que se inicie.

248 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

Por ejemplo, si quisiera cambiar el icono para la accin Eliminar libros, primero debera examinar la carpeta de
recursos de calibre y ver que el archivo relevante es resources/images/trash.png. Asumiendo que cuen-
ta con un icono alternativo en formato PNG llamado mytrash.png, lo guardara en la carpeta de configuracin
como resources/images/trash.png. Todos los iconos usados por la interfaz de usuario de calibre estn en
resources/images y sus subcarpetas.

1.10.5 Crear un tema de iconos propio para calibre

Si ha creado un bonito juego de iconos y desea compartirlos con otros usuarios de calibre por medio del sistema
incorporado de temas de iconos, es sencillo empaquetar los iconos en un tema. Para ello, vaya a Preferencias >
Miscelnea > Crear un tema de iconos de calibre, seleccione la carpeta donde tiene los iconos (generalmente la carpeta
resources/images en el directorio de configuracin de calibre, como se ha descrito anteriormente). Rellene los
metadatos del tema y pulse Aceptar. Esto crear un archivo zip con los iconos del tema. Puede enviarlo al foro de
calibre en Mobileread97 y entonces yo har que el tema est disponible por medio del sistema incorporado de temas
de iconos.

1.10.6 Personalizar calibre con complementos

calibre tiene un diseo muy modular. Casi todas las funciones en calibre viene en forma de complementos. Los com-
plementos se utilizan para la conversin, para la descarga de noticias (aunque stos se llaman frmulas), para diversos
componentes de la interfaz de usuario, para conectarse a diferentes dispositivos, para procesar archivos cuando se
aaden a calibre, etctera. Puede obtener una lista completa de todos los complementos integrados en calibre en Pre-
ferencias > Complementos.
Puede escribir sus propios complementos para personalizar y extender el comportamiento de calibre. La arquitectu-
ra de complementos en calibre es muy simple, vea el cursillo Escribir sus propios complementos para extender la
funcionalidad de calibre (pgina 187).

1.11 Interfaz de lnea de rdenes

Nota: En OS X, las herramientas de lnea de rdenes estn dentro del paquete calibre, por ejemplo, si ha instalado ca-
libre en &#x2F;Aplicaciones las herramientas de lnea de rdenes estn en &#x2F;Aplicaciones&#x2F;
calibre.app&#x2F;Contents&#x2F;console.app&#x2F;Contents&#x2F;MacOS&#x2F;.

1.11.1 rdenes con documentacin

calibre

calibre [opciones] [ruta_a_libro]

Inicia la interfaz grfica principal de calibre y, opcionalmente, aade el libro en ruta_a_libro a la base de datos.
Cuando quiera pasar argumentos con espacios a calibre, ponga el argumento entre comillas. Por ejemplo: C:una
ruta con espacios
97 https://www.mobileread.com/forums/forumdisplay.php?f=166

1.11. Interfaz de lnea de rdenes 249


Manual de usuario de calibre, Versin 2.82.0

[opciones]

--detach
Desacoplar de la terminal en control, si existe (slo linux)
--help, -h
mostrar este mensaje de ayuda y terminar
--ignore-plugins
Ignorar los complementos personalizados. Esto es til si ha instalado algn complemento que impide que calibre
arranque normalmente.
--no-update-check
No comprobar actualizaciones
--shutdown-running-calibre, -s
Cierra una sesin de calibre que pueda estar abierta. Tenga cuidado, porque si hay tareas en ejecucin sern
abortadas, selo con precaucin.
--start-in-tray
Iniciar el programa minimizado en la bandeja del sistema
--verbose, -v
Sin efecto, no utilizar. Presente nicamente por motivos histricos.
--version
mostrar el nmero de versin del programa y terminar
--with-library
Usar la biblioteca situada en la ruta especificada.

calibre-customize

Opciones de calibre-customize

Personalizar calibre cargando complementos externos.


Cuando quiera pasar argumentos con espacios a calibre-customize, ponga el argumento entre comillas. Por
ejemplo: C:una ruta con espacios

[opciones]

--add-plugin, -a
Aadir un complemento especificando la ruta del archivo ZIP que lo contiene.
--build-plugin, -b
Para programadores de complementos: Ruta al directorio donde est desarrollando el complemento. Esta orden
empaquetar automticamente el complemento y lo actualizar en calibre.
--customize-plugin
Personalizar complemento. Detalle el nombre del complemento y el texto de personalizacin, separados por una
coma.
--disable-plugin
Desactivar el complemento nombrado
--enable-plugin
Activar el complemento nombrado

250 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

--help, -h
mostrar este mensaje de ayuda y terminar
--list-plugins, -l
Listar todos los complementos instalados
--remove-plugin, -r
Eliminar un complemento personalizado por nombre. No tiene efecto en los complementos incorporados.
--version
mostrar el nmero de versin del programa y terminar

calibre-debug

calibre-debug [opciones]

Diversas interfaces de lnea de rdenes tiles para depurar calibre. Sin opciones, esta orden inicia un intrprete de
python incrustado. Tambin se pueden iniciar la interfaz grfica principal de calibre, el visor de calibre y el editor de
calibre en modo de depuracin.
Tambin contiene interfaces para distintos aspectos de calibre que no tienen herramientas de lnea de rdenes espec-
ficas, como la reduccin de caracteres de tipos de letra, la herramienta de comparacin de libros, etc.
Se puede usar tambin calibre-debug para ejecutar scripts independientes. Para ello se usa de esta manera:
calibre-debug myscript.py -- option1 option2 file1 file2 ...
Todo lo que se ponga despus de -- se pasar al script.
Cuando quiera pasar argumentos con espacios a calibre-debug, ponga el argumento entre comillas. Por ejemplo:
C:una ruta con espacios

[opciones]

--add-simple-plugin
Aadir un complemento sencillo (un complemento que conste de un nico archivo .py) especificando la ruta al
archivo .py que contiene el cdigo del complemento.
--command, -c
Ejecutar cdigo python.
--debug-device-driver, -d
Depurar deteccin de dispositivos
--default-programs
(Des)registrar calibre como programa predeterminado de Windows --default-programs (pgina 251) =
(register|unregister)
--diff
Ejecutar la herramienta de comparacin de calibre. Por ejemplo: calibre-debug --diff (pgina 251) archivo1
archivo2
--edit-book, -t
Ejecutar la herramienta para modificar libros de calibr en modo de depuracin.
--exec-file, -e
Ejecutar el cdigo python en el archivo.

1.11. Interfaz de lnea de rdenes 251


Manual de usuario de calibre, Versin 2.82.0

--explode-book, -x
Expandir el libro (el libro se exporta como una coleccin de archivos HTML y metadatos, que pueden modifi-
carse con las herramientas habituales para HTML, y luego vuelve a generar el archivo a partir de los archivos
HTML modificados. No se hacen cambios adicionales al cdigo HTML, al contrario que con una conversin
completa de calibre).
--export-all-calibre-data
Exportar todos los datos de calibre (libros, configuraciones, complementos)
--gui, -g
Ejecutar la interfaz grfica en modo de depuracin. La salida de depuracin se imprime en los flujos de salida y
error estndar
--gui-debug
Ejecutar la interfaz grfica con consola de depuracin, con registro en la ruta especificada. Para uso interno, use
la opcin -g para ejecutar la interfaz grfica en modo de depuracin.
--help, -h
mostrar este mensaje de ayuda y terminar
--import-calibre-data
Importar datos de calibre previamente exportados
--inspect-mobi, -m
Inspeccionar los archivos MOBI en las rutas especificadas
--new-server
Run the new calibre content server. Any options specified after a -- will be passed to the server.
--paths
Mostrar las rutas necesarias para configurar el entorno de calibre
--reinitialize-db
Volver a crear la base de datos de calibre en la ubicacin especificada. til para recuperar una base de datos
corrupta.
--run-plugin, -r
Ejecutar un complemento que proporciona una interfaz de lnea de rdenes. Por ejemplo: calibre-debug -r "Add
Books" -- archivo1 option1 Todo lo que aparezca despus de -- se pasar al complemento como argumentos.
--shutdown-running-calibre, -s
Cierra una sesin de calibre que pueda estar abierta. Tenga cuidado, porque si hay tareas en ejecucin sern
abortadas, selo con precaucin.
--subset-font, -f
Reducir el tipo de letra especificado. Use -- despus de esta opcin para pasar opciones al programa de reduc-
cin de tipos de letra.
--test-build
Probar mdulos binarios incluidos
--version
mostrar el nmero de versin del programa y terminar
--viewer, -w
Ejecutar el visor de libros en modo de depuracin

252 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

calibre-server

calibre-server [opciones]

Iniciar el servidor de contenidos de calibre. El servidor de contenidos de calibre expone la biblioteca de calibre por
Internet. La interfaz predeterminada le permite navegar por la biblioteca por categoras. Tambin puede acceder a una
interfaz optimizada para navegadores mviles en /mobile y una interfaz basada en OPDS para usarla con aplicaciones
de lectura en /opds.
La interfaz OPDS se visualiza a travs de BonJour automticamente.
Cuando quiera pasar argumentos con espacios a calibre-server, ponga el argumento entre comillas. Por ejemplo:
C:una ruta con espacios

[opciones]

--auto-reload
Reiniciar el servidor automticamente cuando cambia el cdigo fuente. Puede no funcionar en todos los entor-
nos.
--daemonize
Ejecutar proceso en segundo plano como un demonio. Sin efecto en windows.
--develop
Modo de desarrollo. El servidor manda el registro a la salida estndar, con ms detalles y tiempos de espera
mucho ms cortos.
--help, -h
mostrar este mensaje de ayuda y terminar
--max-cover
Tamao mximo para las portadas. Valor predeterminado: '600x800'.
--max-opds-items
El nmero mximo de coincidencias devueltas por cada consulta OPDS. Esto afecta a la integracin con Stanza,
WordPlayer, etc.
--max-opds-ungrouped-items
Agrupar elementos en categoras tales como autores o etiquetas por la primera letra cuando hay ms de este
nmero de elementos. Predeterminado: 100. Establezca un nmero alto para desactivar el agrupamiento.
--password
Establecer una contrasea para restringir el acceso. De manera predeterminada el acceso no est restringido.
--pidfile
Escribir en PID del proceso en el archivo especificado
--port, -p
El puerto en el que esperar conexiones. Valor predeterminado: 8080
--restriction
Especifica una biblioteca virtual para usar en esta ocasin. Esta opcin tiene prioridad sobre cualquier configu-
racin de biblioteca en la GUI. Por motivos de compatibilidad, si el valor no es una biblioteca virtual sino una
bsqueda guardada, se usar dicha bsqueda. Si no especifica una restriccin, se usar el valor de la GUI, si
existe.
--thread-pool
El mximo nmero de procesos que se usarn. Valor predeterminado: 30

1.11. Interfaz de lnea de rdenes 253


Manual de usuario de calibre, Versin 2.82.0

--timeout, -t
Tiempo de espera del servidor en segundos. Valor predeterminado: 120
--url-prefix
Prefijo para anteponer a todos los URL. til para para hacer proxy inverso a este servidor desde Apache, nginx,
etc.
--username
Nombre de usuario para acceder. Valor predeterminado: 'calibre'
--version
mostrar el nmero de versin del programa y terminar
--with-library
Ruta a la carpeta de biblioteca que se utilizar con el servidor de contenidos

calibre-smtp

calibre-smtp [opciones] [de a texto]

Enviar un correo usando el protocolo SMTP. calibre-smtp tiene dos modos de funcionamiento. En el modo de
creacin se especifica de, a y texto y con ellos se crea y enva un mensaje de correo. En el modo de filtro,
calibre-smtp lee un mensaje de correo completo del flujo de entrada estndar y lo enva.
texto es el cuerpo del mensaje de correo. Si no se especifica texto, se lee un mensaje de correo completo del
flujo de entrada estndar. de es la direccin de correo del remitente y a es la direccin de correo del destinatario.
Cuando se lee un mensaje completo del flujo de entrada estndar, de y a slo se usan en la conexin SMTP, las
cabeceras del mensaje no se modifican.
Cuando quiera pasar argumentos con espacios a calibre-smtp, ponga el argumento entre comillas. Por ejemplo:
C:una ruta con espacios

[opciones]

--fork, -f
Bifurcar el proceso y enviar el mensaje en segundo plano. Si se usa esta opcin, debera usarse tambin
--outbox (pgina 254) para gestionar los fallos de envo.
--help, -h
mostrar este mensaje de ayuda y terminar
--localhost, -l
Nombre del equipo local. Usado para conectar con el servidor SMTP.
--outbox, -o
Ruta a la carpeta maildir donde almacenar mensajes fallidos.
--timeout, -t
Tiempo mximo de espera para la conexin
--verbose, -v
Dar ms detalles
--version
mostrar el nmero de versin del programa y terminar

254 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

COMPOSE MAIL

Opciones para crear un correo. Sin efecto si no se especifica un texto


--attachment, -a
Archivo para adjuntar al correo
--subject, -s
Asunto del correo

SMTP RELAY

Opciones para usar un servidor SMTP intermedio para enviar correos. calibre intentar enviar los correos directamente
a no ser que se especifique relay.
--encryption-method, -e
Mtodo de codificacin para usar con el servidor intermedio. Las opciones son TLS, SSL y NONE. El valor
predeterminado es TLS. ADVERTENCIA: Usar NONE es muy poco seguro
--password, -p
Contrasea para el servidor intermedio
--port
Puerto para conectarcon el servidor intermedio. De manera predeterminada se usa 465 si el mtodo de codifica-
cin es SSL y 25 en caso contrario.
--relay, -r
Un servidor SMTP intermedio para enviar correos.
--username, -u
Nombre de usuario para el servidor intermedio

calibredb

calibredb orden [opciones] [argumentos]

calibredb is the command line interface to the calibre database. It has several sub-commands, documented below:

OPCIONES GLOBALES (pgina 256)


list (pgina 256)
add (pgina 257)
AADIR DE DIRECTORIOS (pgina 258)
remove (pgina 258)
add_format (pgina 258)
remove_format (pgina 259)
show_metadata (pgina 259)
set_metadata (pgina 259)
export (pgina 259)

1.11. Interfaz de lnea de rdenes 255


Manual de usuario de calibre, Versin 2.82.0

catalog (pgina 260)


saved_searches (pgina 261)
add_custom_column (pgina 261)
custom_columns (pgina 262)
remove_custom_column (pgina 262)
set_custom (pgina 262)
restore_database (pgina 263)
check_library (pgina 263)
list_categories (pgina 263)
backup_metadata (pgina 264)
clone (pgina 264)
embed_metadata (pgina 264)
search (pgina 265)

OPCIONES GLOBALES

--dont-notify-gui
No notificar a la interfaz grfica de calibre en ejecucin (si hay alguna) de que la base de datos ha sido modifi-
cada. Usar con precaucin, puede originar corrupcin en la base de datos!
--help, -h
mostrar este mensaje de ayuda y terminar
--library-path
Ruta de la biblioteca de calibre. De manera predeterminada se usa la ruta almacenada en las preferencias.
--version
mostrar el nmero de versin del programa y terminar

list

calibredb list [opciones]

Lista de los libros disponibles en la base de datos de calibre.


Cuando quiera pasar argumentos con espacios a calibredb, ponga el argumento entre comillas. Por ejemplo: C:una
ruta con espacios
--ascending
Ordenar los resultados en orden ascendente
--fields, -f
Los campos que se mostrarn cuando se listen los libros en la base de datos. Debe ser una lista de campos
separada por comas. Campos disponibles: author_sort, authors, comments, cover, formats, id, identifiers, isbn,
languages, last_modified, pubdate, publisher, rating, series, series_index, size, tags, timestamp, title, uuid Valor
predeterminado: title,authors. El campo especial all puede usarse para seleccionar todos los campos.

256 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

--for-machine
Generar salida en formato JSON, que es ms apropiado para procesado automtico. Se ignorar las opciones de
longitud de lnea y separador.
--limit
El nmero mximo de resultados que se mostrar. Valor predeterminado: todos
--line-width, -w
La longitud mxima de las lneas en el archivo de salida. De manera predeterminada se toma la anchura de la
pantalla.
--prefix
El prefijo para todas las rutas de archivo. El valor predeterminado es la ruta absoluta de la carpeta de la biblioteca.
--search, -s
Filtrar los resultados segn la consulta de bsqueda. Para el formato de la consulta de bsqueda acuda a la
documentacin relacionada con la bsqueda en el Manual de usuario. De manera predeterminada no se realiza
el filtrado.
--separator
El texto usado para separar campos. El valor predeterminado es un espacio.
--sort-by
El campo por el que se ordenan los resultados. Campos disponibles: author_sort, authors, comments, cover,
formats, identifiers, isbn, languages, last_modified, pubdate, publisher, rating, series, series_index, size, tags,
timestamp, title, uuid Valor predeterminado: id

add

calibredb add [opciones] archivo1 archivo2 archivo3 ...

Aadir los archivos especificados a la base de datos. Tambin pueden especificarse directorios, ver las opciones rela-
tivas a directorios ms abajo.
Cuando quiera pasar argumentos con espacios a calibredb, ponga el argumento entre comillas. Por ejemplo: C:una
ruta con espacios
--authors, -a
Establece el autor de los libros aadidos
--cover, -c
Ruta de la portada para usar para el libro aadido
--duplicates, -d
Aadir los libros a la base de datos aunque ya existan. La comparacin se realiza sobre el ttulo de los libros.
--empty, -e
Aadir libro en blanco (sin formato)
--identifier, -I
Establecer los identificadores para este libro, por ejemplo -I asin:XXX -I isbn:YYY
--isbn, -i
Establece el ISBN de los libros aadidos
--languages, -l
Una lista de idiomas separados por comas (es mejor usar cdigos de idioma ISO639, aunque tambin se reco-
nocen algunos nombres de idioma)

1.11. Interfaz de lnea de rdenes 257


Manual de usuario de calibre, Versin 2.82.0

--series, -s
Establece la serie de los libros aadidos
--series-index, -S
Establece el nmero de la serie de los libros aadidos
--tags, -T
Establece las etiquetas de los libros aadidos
--title, -t
Establece el ttulo de los libros aadidos

AADIR DE DIRECTORIOS

Opciones para controlar la adicin de libros de directorios. De manera predeterminada slo se aaden los archivos con
extensiones de tipos de libro electrnico conocidos.
--add
Un patrn de nombre de archivo (glob), los archivos que coincidan con este patrn se aadirn al buscar archivos
en los directorios, incluso si no son de un tipo de libro electrnico conocido. Se puede especificar varias veces
con distintos patrones.
--ignore
Un patrn de nombre de archivo (glob), los archivos que coincidan con este patrn se ignorarn al buscar
archivos en los directorios. Se puede especificar varias veces con distintos patrones. Por ejemplo: *.pdf ignorar
todos los archivos pdf
--one-book-per-directory, -1
Asumir que cada directorio tiene un solo libro y que todos los archivos del directorio son diferentes formatos
del mismo libro
--recurse, -r
Procesar directorios recursivamente

remove

calibredb remove ID

Eliminar los libros identificados por ID de la base de datos. ID debe ser una lista separada por comas de nmeros de
identificacin (se pueden obtener nmeros de identificacin usando la orden search). Por ejemplo, 23,34,57-85 (al
especificar un intervalo, el ltimo nmero del intervalo no est incluido).
Cuando quiera pasar argumentos con espacios a calibredb, ponga el argumento entre comillas. Por ejemplo: C:una
ruta con espacios

add_format

calibredb add_format [opciones] ID archivo_libro

Aadir el libro electrnico archivo_libro a los formatos disponibles para el libro identificado por ID. Se puede obtener
el ID usando la orden search. Si el formato ya existe, ser sustituido por el nuevo, a no ser que se use la opcin de
no sustituir.
Cuando quiera pasar argumentos con espacios a calibredb, ponga el argumento entre comillas. Por ejemplo: C:una
ruta con espacios

258 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

--dont-replace
No sustituir el formato si ya existe

remove_format

calibredb remove_format [options] ID fmt

Eliminar el formato fmt del libro identificado por ID. Se puede obtener el ID usando la orden search. fmt debe ser
una extensin de archivo como LRF, TXT o EPUB. Si el libro no tiene el formato fmt disponible, no hace nada.
Cuando quiera pasar argumentos con espacios a calibredb, ponga el argumento entre comillas. Por ejemplo: C:una
ruta con espacios

show_metadata

calibredb show_metadata [opciones] ID

Muestra los metadatos almacenados en la base de datos de calibre para el libro identificado por ID. ID es un identifi-
cador de la orden search.
Cuando quiera pasar argumentos con espacios a calibredb, ponga el argumento entre comillas. Por ejemplo: C:una
ruta con espacios
--as-opf
Imprimir los metadatos en formato OPF (XML)

set_metadata

calibredb set_metadata [opciones] ID [/ruta/a/metadatos.opf]

Asignar los metadatos del libro identificado por ID a partir del archivo OPF metadatos.opf. El ID es un identifica-
dor dado por la orden search. Puede ver en qu consiste el formato OPF usando la opcin as-opf en la orden
show_metadata. Tambin puede asignar metadatos a campos individuales con la opcin field.
Cuando quiera pasar argumentos con espacios a calibredb, ponga el argumento entre comillas. Por ejemplo: C:una
ruta con espacios
--field, -f
El campo a modificar. El formato es nombre_de_campo:valor, por ejemplo: --field (pgina 259)
tags:etiqueta1,etiqueta2. Use --list-fields (pgina 259) para obtener una lista de todos los nombres de
campos. Puede especificar esta opcin varias veces para asignar varios campos. Nota: para los idiomas debe
usar los cdigos de idioma ISO639 (p. ej. es para espaol, fr para francs, etc.). Para los identificadores, la
sintaxis es --field (pgina 259) identifiers:isbn:XXXX,doi:YYYYY. Para campos booleanos s/no, use los
valores true y false o yes y no.
--list-fields, -l
Lista los nombres de campo de metadatos que pueden usarse con la opcin --field (pgina 259)

export

calibredb export [opciones] ID

1.11. Interfaz de lnea de rdenes 259


Manual de usuario de calibre, Versin 2.82.0

Exportar los libros especificados por los ID (una lista de identificadores separados por comas) al sistema de archivos.
La operacin de exportacin guarda todos los formatos del libro, su portada y metadatos (en un archivo OPF). Se
pueden obtener los nmeros ID con la orden search.
Cuando quiera pasar argumentos con espacios a calibredb, ponga el argumento entre comillas. Por ejemplo: C:una
ruta con espacios
--all
Exportar todos los libros de la base de datos, ignorando el listado de ID.
--dont-asciiize
Normalmente, calibre convertir todos los caracteres no ASCII de los nombres de archivo en sus equivalentes
ASCII. ADVERTENCIA: Si se desactiva esta opcin, pueden ocasionarse errores al guardar, dependiendo del
soporte para Unicode del sistema de archivos donde se guarden los libros. Si se especifica esta opcin, se
desactiva este comportamiento.
--dont-save-cover
Normalmente, calibre guardar la portada en un archivo separado, junto con los archivos de libro electrnico. Si
se especifica esta opcin, se desactiva este comportamiento.
--dont-update-metadata
Normalmente, calibre actualizar los metadatos en los archivos guardados segn los datos presentes en la bi-
blioteca de calibre. Esto hace que el guardado en disco sea ms lento. Si se especifica esta opcin, se desactiva
este comportamiento.
--dont-write-opf
Normalmente, calibre escribir los metadatos en un archivo OPF separado, junto con los archivos de libro
electrnico. Si se especifica esta opcin, se desactiva este comportamiento.
--formats
Lista de formatos, separados por comas, para guardar cada libro. De manera predeterminada se guardan todos
los formatos disponibles.
--replace-whitespace
Sustituir espacios en blanco con guiones bajos.
--single-dir
Exportar todos los libros en un solo directorio
--template
La plantilla para controlar el nombre y la estructura de directorios de los archivos guardados. El valor predeter-
minado es {author_sort}/{title}/{title} - {authors}, lo que guardar los libros en un subdirectorio por autor
con nombres de archivo que contienen el ttulo y el autor. Las variables de control disponibles son: {author_sort,
authors, id, isbn, languages, last_modified, pubdate, publisher, rating, series, series_index, tags, timestamp, title}
--timefmt
El formato para mostrar las fechas. %d: da, %b: mes, %m: nmero del mes, %Y: ao. El valor predeterminado
es: %b, %Y
--to-dir
Exportar los libros al directorio especificado. El valor predeterminado es .
--to-lowercase
Convertir las rutas a minsculas.

catalog

calibredb catalog /ruta/a/destino.(CSV|EPUB|MOBI|XML ...) [opciones]

260 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

Exportar un catlogo en el formato especificado por la extensin de /ruta/a/destino. Las opciones controlan cmo se
muestran las entradas en la salida del catlogo generado.
Cuando quiera pasar argumentos con espacios a calibredb, ponga el argumento entre comillas. Por ejemplo: C:una
ruta con espacios
--fields
Los campos que se incluirn al crear un catlogo de los libros de la base de datos. Debe ser una lista de campos,
separados por comas. Campos disponibles: all, title, title_sort, author_sort, authors, comments, cover, formats,
id, isbn, library_name, ondevice, pubdate, publisher, rating, series_index, series, size, tags, timestamp, uuid, lan-
guages, identifiers, y cualquier campo personalizado creado por el usuario. Ejemplo: --fields (pgina 261)
= title,authors,tags Valor predeterminado: all Se aplica a: formatos de salida CSV, XML
--ids, -i
Lista de ID de la base de dato, separados por comas, para incluir en el catlogo. Si se declara, no se usar
--search (pgina 261). Valor predeterminado: todos
--search, -s
Filtrar los resultados segn la bsqueda. Para el formato de la bsqueda, vase la documentacin relativa a
bsquedas en el Manual de usuario. Valor predeterminado: sin filtrado
--sort-by
Campo de salida por el que ordenar. Campos disponibles: author_sort, id, rating, size, timestamp, title_sort Valor
predeterminado: id Aplicable a: formatos de salida CSV, XML
--verbose, -v
Mostrar informacin de salida detallada. til para la depuracin

saved_searches

calibredb saved_searches [opciones] (list|add|remove)

Administrar las bsquedas guardadas en la base de datos. Si intenta aadir una bsqueda con un nombre que ya existe,
ser reemplazada.
Sintaxis para aadir:
calibredb saved_searches add nombre_de_bsqueda expresin de bsqueda
Sintaxis para eliminar:
calibredb saved_searches remove nombre_de_bsqueda
Cuando quiera pasar argumentos con espacios a calibredb, ponga el argumento entre comillas. Por ejemplo: C:una
ruta con espacios

add_custom_column

calibredb add_custom_column [opciones] etiqueta nombre tipo_de_dato

Crea una columna personalizada. etiqueta es un nombre interno para la columna. No debe contener espacios ni
dos puntos. nombre es el nombre visible de la columna. tipo_de_dato es uno de: bool, comments, composite,
datetime, enumeration, float, int, rating, series, text
Cuando quiera pasar argumentos con espacios a calibredb, ponga el argumento entre comillas. Por ejemplo: C:una
ruta con espacios

1.11. Interfaz de lnea de rdenes 261


Manual de usuario de calibre, Versin 2.82.0

--display
Un diccionario de opciones para personalizar cmo se interpretan los datos en esta columna. Es un texto en
formato JSON. Para columnas de enumeracin use --display (pgina 261)"{\ "enum_values\ ":[\ "val1\
", \ "val2\ "]}" Hay muchas opciones que pueden figurar en la variable display. Las opciones por tipo de
columna son: composite: composite_template, composite_sort, make_category,contains_html, use_decorations
datetime: date_format enumeration: enum_values, enum_colors, use_decorations int, float: number_format text:
is_names, use_decoration La mejor manera de obtener combinaciones vlidas es crear una columna personali-
zada del tipo apropiado en la interfaz grfica y luego examinar el archivo OPF creado como copia de seguridad
para un libro (asegrese de que se ha creado un nuevo archivo OPF despus de aadir la columna). Ver el texto
en formato JSON para la variable display de la nueva columna en el archivo OPF.
--is-multiple
Esta columna almacena datos de etiquetas (valores separados por comas). Slo se aplica si el tipo de dato es
texto.

custom_columns

calibredb custom_columns [opciones]

Da una lista de las columnas personalizadas disponibles. Muestra las etiquetas de columna e ID.
Cuando quiera pasar argumentos con espacios a calibredb, ponga el argumento entre comillas. Por ejemplo: C:una
ruta con espacios
--details, -d
Mostrar detalles de cada columna.

remove_custom_column

calibredb remove_custom_column [opciones] etiqueta

Elimina la columna personalizada identificada por etiqueta. Puede ver las columnas disponibles con la orden cus-
tom_columns.
Cuando quiera pasar argumentos con espacios a calibredb, ponga el argumento entre comillas. Por ejemplo: C:una
ruta con espacios
--force, -f
No pedir confirmacin

set_custom

calibredb set_custom [opciones] columna ID valor

Establecer el valor de una columna personalizada para el libro identificado por ID. Puede obtener una lista de ID con la
orden search. Puede obtener una lista de nombres de columnas personalizadas usando la orden custom_columns.
Cuando quiera pasar argumentos con espacios a calibredb, ponga el argumento entre comillas. Por ejemplo: C:una
ruta con espacios
--append, -a
Si la columna almacena valores mltiples, agrega los valores especificados a los existentes en lugar de reempla-
zarlos.

262 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

restore_database

calibredb restore_database [options]

Recupera la base de datos a partir de los metadatos almacenados en los archivos OPF en cada directorio de la biblioteca
de calibre. Esto resulta til si su archivo metadata.db se ha daado.
ADVERTENCIA: Esta orden regenera completamente la base de datos. Se perdern todas las bsquedas guardadas,
categoras de usuario, controles, configuracin de conversin guardada por libro y frmulas personalizadas. Los me-
tadatos recuperados sern tan precisos como lo sean los archivos OPF.
Cuando quiera pasar argumentos con espacios a calibredb, ponga el argumento entre comillas. Por ejemplo: C:una
ruta con espacios
--really-do-it, -r
Llevar a cabo la recuperacin. La orden no se ejecutar a menos que se especifique esta opcin.

check_library

calibredb check_library [opciones]

Realiza algunas comprobaciones en el sistema de archivos que contiene la biblioteca. El resultado es invalid_titles,
extra_titles, invalid_authors, extra_authors, missing_formats, extra_formats, extra_files, missing_covers, extra_covers,
failed_folders
Cuando quiera pasar argumentos con espacios a calibredb, ponga el argumento entre comillas. Por ejemplo: C:una
ruta con espacios
--csv, -c
Salida a formato CSV
--ignore_extensions, -e
Lista de extensiones que se ignorarn separadas por comas. Valor predeterminado: all
--ignore_names, -n
Lista de nombres que se ignorarn separados por comas. Valor predeterminado: all
--report, -r
Lista de resultados separados por comas Valor predeterminado: all

list_categories

calibredb list_categories [opciones]

Genera un informe de la informacin de la categora en la base de datos. La informacin es el equivalente a lo que se


muestra en el panel de etiquetas.
Cuando quiera pasar argumentos con espacios a calibredb, ponga el argumento entre comillas. Por ejemplo: C:una
ruta con espacios
--categories, -r
Lista de los nombres de bsqueda de las categoras, separados por comas. Valor predeterminado: todas
--csv, -c
Salida a formato CSV

1.11. Interfaz de lnea de rdenes 263


Manual de usuario de calibre, Versin 2.82.0

--item_count, -i
Generar en la salida slo el nmero de elementos en una categora en lugar de las veces que aparece por elemento
en la categora
--quote, -q
El carcter que se pondr alrededor del valor de la categora en modo CSV. El valor predeterminado son las
comillas ('').
--separator, -s
El texto que se usar para separar los campos en el modo CSV. El valor predeterminado es una coma.
--width, -w
La longitud mxima de las lneas en el archivo de salida. De manera predeterminada se toma la anchura de la
pantalla.

backup_metadata

calibredb backup_metadata [opciones]

Hace una copia de respaldo de los metadatos almacenados en la base de datos en ficheros OPF individuales en cada
directorio de libro. Esto se lleva a cabo normalmente de manera automtica, pero puede ejecutar esta orden para forzar
la regeneracin de los ficheros OPF, con la opcin all.
Tenga en cuenta que normalmente no hay necesidad de hacer esto, pues los ficheros OPF se actualizan cada vez que
se modifican los metadatos.
Cuando quiera pasar argumentos con espacios a calibredb, ponga el argumento entre comillas. Por ejemplo: C:una
ruta con espacios
--all
Normalmente, esta orden slo acta sobre libros que tienen ficheros OPF desactualizados. Esta opcin hace que
acte sobre todos los libros.

clone

calibredb clone ruta/a/nueva/biblioteca

Crea un clon de la biblioteca actual. Esto crea una nueva biblioteca vaca que tiene las mismas columnas personaliza-
das, bibliotecas virtuales y otras configuraciones que la biblioteca actual.
La biblioteca clonada no contendr ningn libro. Si quiere crear un duplicado completo, incluyendo todos los libros,
use simplemente las utilidades del sistema operativo para copiar la carpeta de la biblioteca.
Cuando quiera pasar argumentos con espacios a calibredb, ponga el argumento entre comillas. Por ejemplo: C:una
ruta con espacios

embed_metadata

calibredb embed_metadata [opciones] ID

Actualizar los metadatos en los archivos de libro almacenados en la biblioteca de calibre a partir de los metadatos
en la base de datos de calibre. Normalmente, los metadatos se actualizan nicamente cuando se exportan los libros
de calibre, esta orden es til si quiere actualizar los archivos de origen. Tenga en cuenta que los distintos formatos
admiten diferentes tipos de metadatos. Puede usar el valor especial all para ID, para actualizar los metadatos de

264 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

todos los libros. Tambin puede usar varios ID separados por espacios y gamas de ID separados por guiones. Por
ejemplo: calibredb embed_metadata 1 2 10-15 23
Cuando quiera pasar argumentos con espacios a calibredb, ponga el argumento entre comillas. Por ejemplo: C:una
ruta con espacios
--only-formats, -f
Actualizar los metadatos slo en el formato especificado. Especificar varias veces para mltiples formatos. De
manera predeterminada se actualizan todos los formatos.

search

calibredb search [opciones] expresin de bsqueda

Busca la expresin de bsqueda especificada en la biblioteca y devuelve una lista separada por comas de ID de libros
que coinciden con la expresin. El formato de la salida puede usarse como entrada par otras rdenes que admiten una
lista de ID.
La expresin de bsqueda puede ser cualquiera aceptada por el potente lenguaje de bsquedas de calibre, por ejemplo:
author:asimov title:robot
Cuando quiera pasar argumentos con espacios a calibredb, ponga el argumento entre comillas. Por ejemplo: C:una
ruta con espacios
--limit, -l
El nmero mximo de resultados que se devuelven. De manera predeterminada se devuelven todos los resulta-
dos.

ebook-convert

ebook-convert archivo_entrada archivo_salida [opciones]

Convertir un libro electrnico de un formato a otro.


archivo_entrada es la entrada y archivo_salida es la salida. Deben indicarse ambos como los dos primeros argumentos
de la orden.
El formato del libro electrnico de salida se define a partir de la extensin de archivo_salida. archivo_salida puede
tambin tener el formato especial .EXT, donde EXT es la extensin del archivo de salida. En este caso, el nombre del
archivo de salida se obtiene a partir del nombre del archivo de entrada. Tenga en cuenta que los nombres de archivo
no deben comenzar con guin. Por ltimo, si archivo_salida no tiene extensin, se interpreta como un directorio y se
generar un open eBook (OEB), formado por un conjunto de archivos HTML, en ese directorio. Estos archivos son
los que normalmente se habran pasado al complemento de salida.
Tras especificar los archivos de entrada y salida, se puede personalizar la conversin indicando varias opciones. Las
opciones disponibles dependen de los tipos de archivo de entrada y salida. Para obtener ayuda sobre estas opciones,
especifique los nombres de archivo de entrada y salida y despus use la opcin -h.
Para una documentacin completa del sistema de conversin, vase Conversin de libros (pgina 59)
Cuando quiera pasar argumentos con espacios a ebook-convert, ponga el argumento entre comillas. Por ejemplo:
C:una ruta con espacios
Las opciones y sus valores predeterminados cambian segn los formatos de entrada y salida, por lo que siempre se
debe probar con:
ebook-convert myfile.input_format myfile.output_format -h

1.11. Interfaz de lnea de rdenes 265


Manual de usuario de calibre, Versin 2.82.0

A continuacin se muestran las opciones comunes a todas las conversiones, seguidas de las opciones especficas para
cada formato de entrada y salida.

OPCIONES DE ENTRADA (pgina 266)


OPCIONES DE SALIDA (pgina 267)
APARIENCIA (pgina 267)
PROCESADO HEURSTICO (pgina 270)
BUSCAR Y SUSTITUIR (pgina 270)
DETECCIN DE ESTRUCTURA (pgina 271)
NDICE (pgina 272)
METADATOS (pgina 272)
DEPURACIN (pgina 273)

--help, -h
mostrar este mensaje de ayuda y terminar
--input-profile
Especificar el perfil de entrada. El perfil de entrada provee informacin al sistema de conversin sobre cmo
interpretar los distintos datos del documento de entrada. Por ejemplo, las longitudes dependientes de la reso-
lucin (en pxeles). Las opciones son:cybookg3, cybook_opus, default, hanlinv3, hanlinv5, illiad, irexdr1000,
irexdr800, kindle, msreader, mobipocket, nook, sony, sony300, sony900
--list-recipes
Mostrar una lista de frmulas predefinidas. Puede crear un libro electrnico a partir de una frmula predefinida
de esta manera: ebook-convert Nombre de frmula.recipe salida.epub
--output-profile
Especificar el perfil de salida. El perfil de salida le dice al sistema de conversin cmo optimizar el docu-
mento creado para un dispositivo determinado (por ejemplo, redimensionando las imgenes segn el tamao
de pantalla del dispositivo). En algunos casos, es necesario un perfil de salida para generar documentos que
funcionen en ciertos dispositivos, pero no suele ser necesario. Las opciones son:cybookg3, cybook_opus, de-
fault, generic_eink, generic_eink_hd, generic_eink_large, hanlinv3, hanlinv5, illiad, ipad, ipad3, irexdr1000,
irexdr800, jetbook5, kindle, kindle_dx, kindle_fire, kindle_pw, kindle_pw3, kindle_voyage, kobo, msreader,
mobipocket, nook, nook_color, nook_hd_plus, pocketbook_900, pocketbook_pro_912, galaxy, sony, sony300,
sony900, sony-landscape, sonyt3, tablet
--version
mostrar el nmero de versin del programa y terminar

OPCIONES DE ENTRADA

Opciones para controlar el procesado del archivo de entrada mobi.


--input-encoding
Especificar la codificacin del documento de entrada. Esta opcin tiene preferencia sobre la codificacin que
pueda declarar el propio documento. Es particularmente til para documentos que no declaran ninguna codifi-
cacin, o que lo hacen incorrectamente.

266 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

OPCIONES DE SALIDA

Opciones para controlar el procesado de la salida epub


--dont-split-on-page-breaks
Desactivar la divisin en los saltos de pgina. Normalmente los archivos de entrada se dividen automticamente
en dos archivos en cada salto de pgina. Esto genera un libro electrnico que se procesa ms rpidamente y con
menos recursos. Sin embargo, la divisin es un proceso lento y, si el archivo de entrada contiene muchos saltos
de pgina, es mejor desactivar la divisin.
--epub-flatten
Esta opcin es necesaria slo si pretende usar el EPUB con FBReaderJ. Con esta opcin se simplificar el
sistema de archivos dentro del EPUB, poniendo todos los archivos en el nivel superior.
--epub-inline-toc
Insertar un ndice que aparecer como parte del contenido principal del libro.
--epub-toc-at-end
Colocar el ndice insertado al final del libro en lugar de al principio
--extract-to
Extraer los contenidos del archivo generado EPUB al directorio especificado. Los contenidos del directorio
primero son eliminados, as que tenga cuidado.
--flow-size
Dividir todos los archivos HTML mayores de este tamao (en kB). Esto es necesario porque algunos lectores
ePub no pueden manejar archivos muy grandes. El valor predeterminado de 260KB es el tamao requerido por
Adobe Digital Editions. Establecer en 0 para desactivar la divisin por tamao.
--no-default-epub-cover
Normalmente, si el archivo de entrada no tiene portada y no especifica una, se generar una portada con el ttulo,
autores, etc. Esta opcin desactiva la generacin de esta portada.
--no-svg-cover
No usar SVG para la portada del libro. Use esta opcin si el EPUB va a usarse en un dispositivo que no soporta
SVG, como el iPhone o el JetBook Lite. Sin esta opcin, dichos dispositivos mostrarn la portada como una
pgina en blanco.
--preserve-cover-aspect-ratio
Cuando se utilice una portada con un archivo en formato SVG esta opcin hace que la portada se escale para
cubrir el rea disponible de pantalla, pero conserva su relacin de aspecto (la relacin entre la anchura y la
altura). Esto supone que puede haber mrgenes blancos a los lados o arriba y abajo de la imagen, pero la imagen
no se distorsionar. Sin esta opcin la imagen puede distorsionarse ligeramente pero no tendr margenes en
blanco.
--pretty-print
Si se indica, el complemento de salida intentar crear una salida que sea lo ms humanamente legible posible.
Puede no tener ningn efecto sobre algunos complementos de salida.
--toc-title
Ttulo para cualquier ndice generado en el texto.

APARIENCIA

Opciones para controlar el aspecto de la salida


--asciiize
Transliterar caracteres unicode a la representacin ASCII. Tenga cuidado al usar esta opcin, ya que reemplaza-
r los caracteres unicode con ASCII. Por ejemplo, sustituir por Mikhail Gorbachiov.

1.11. Interfaz de lnea de rdenes 267


Manual de usuario de calibre, Versin 2.82.0

Tenga en cuenta tambin que en los casos en los que existen mltiples representaciones para un carcter deter-
minado (por ejemplo, caracteres compartidos por la escritura china y japonesa) se usar la representacin basada
en el idioma de la interfaz de calibre.
--base-font-size
Tamao de letra base en pt. Todos los tamaos de letra en el libro generado se pondrn en relacin a este
tamao. Si elige un tamao mayor, har que todas las letras de salida sean ms grandes, o al contrario. De
manera predeterminada, el tamao de letra base se decide basndose en el perfil de salida seleccionado.
--change-justification
Cambiar la justificacin del texto. El valor left hace que el texto justificado en el origen quede alineado a la
izquierda (no justificado). El valor justify hace que el texto no justificado quede justificado. El valor original
(el predeterminado) no altera la justificacin del archivo de origen. Tenga en cuenta que no todos los formatos
de salida admiten justificacin.
--disable-font-rescaling
Desactivar el redimensionado de los tamaos de letra.
--embed-all-fonts
Incrustar todos los tipos de letra referenciados en el documento de entrada pero no incrustados todava. Esta
opcin buscar en el sistema los tipos de letra y, si se encuentran, se incrustarn. La incrustacin slo funciona
si el formato al que se convierte admite tipos de letra incrustados, como EPUB, AZW3, DOCX o PDF. Asegrese
de tener una licencia adecuada para incrustar los tipos de letras usados en el documento.
--embed-font-family
Incrustar el tipo de letra especificado en el libro. Esto establece el tipo de letra base utilizado en el libro. Si el
documento de entrada especifica sus propios tipos de letra, pueden tener prioridad sobre este tipo de letra base.
Puede usar la opcin de filtrar estilos para eliminar tipos de letra del documento de entrada. Tenga en cuenta que
la incrustacin de tipos de letra slo funciona con algunos formatos de salida, principalmente EPUB, AZW3 y
DOCX.
--expand-css
De manera predeterminada, calibre usa una forma abreviada para algunas propiedades CSS como margin,
padding, border, etc. Esta opcin hace que se use la forma expandida completa en su lugar. Tenga en
cuenta que el CSS siempre se expande cuando se generan archivos EPUB con uno de los perfiles de salida para
Nook, ya que los lectores Nook no admiten CSS abreviado.
--extra-css
La ruta a una hoja de estilo CSS o CSS en bruto. Esta hoja de estilo CSS se agregar a las reglas de estilo del
archivo de origen, por lo que puede usarse para anular dichas reglas.
--filter-css
Una lista de propiedades CSS, separadas por comas, que se eliminarn de todas las reglas de estilo CSS. Esto
es til si hay alguna informacin de estilo que hace que no se pueda cambiar en algn dispositivo. Por ejemplo:
font-family,color,margin-left,margin-right
--font-size-mapping
Correspondencia entre los tamaos de letra de CSS y tamaos en pt. Un ejemplo podra ser 12, 12, 14, 16, 18,
20, 22, 24. stas son las correspondencias para los tamaos de xx-small a xx-large, y el ltimo tamao para
letras enormes. El algoritmo para ampliar o reducir el texto emplea estos tamaos para determinar el tamao de
letra de manera inteligente. El comportamiento predeterminado es usar una correspondencia basada en el perfil
de salida seleccionado.
--insert-blank-line
Insertar una lnea en blanco entre prrafos. No funcionar si el archivo de origen no define prrafos (etiquetas
<p> o <div>).
--insert-blank-line-size
Establece la altura de las lneas en blanco que se insertan (en unidades em). La altura de las lneas entre los

268 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

prrafos ser el doble del valor que se introduzca aqu.


--keep-ligatures
Mantener las ligaduras presentes en el documento de entrada. Una ligadura es una forma especial de escribir
una secuencia de caracteres como ff, fi, ffl, etc. La mayora de los lectores no soportan ligaduras en sus tipos
de letra predeterminados, por lo que no pueden mostrarlas correctamente. De manera predeterminada, calibre
convertir una ligadura en sus caracteres separados. Por el contrario, seleccionar esta opcin las mantendr.
--line-height
Altura de lnea en pt. Controla el espacio entre lneas consecutivas de texto. Slo se aplica a elementos que no
definen su propia altura de lnea. En la mayora de los casos, la opcin de altura de lnea mnima es ms til. De
manera predeterminada no se modifica la altura de lnea.
--linearize-tables
Algunos documentos mal diseados usan tablas para controlar la disposicin del texto en la pgina. Cuando se
convierten estos documentos suelen dar lugar a texto que se sale de la pgina y otros problemas. Esta opcin
extrae el contenido de las tablas y lo presenta de manera lineal.
--margin-bottom
Establecer el margen inferior en pt. El valor predeterminado es 5.0. Un nmero negativo desactiva esta opcin
(se mantendr el margen existente en el documento original). Nota: 72 pt equivale a 1 pulgada (2,54 cm)
--margin-left
Establecer el margen izquierdo en pt. El valor predeterminado es 5.0. Un nmero negativo desactiva esta opcin
(se mantendr el margen existente en el documento original). Nota: 72 pt equivale a 1 pulgada (2,54 cm)
--margin-right
Establecer el margen derecho en pt. El valor predeterminado es 5.0. Un nmero negativo desactiva esta opcin
(se mantendr el margen existente en el documento original). Nota: 72 pt equivale a 1 pulgada (2,54 cm)
--margin-top
Establecer el margen superior en pt. El valor predeterminado es 5.0. Un nmero negativo desactiva esta opcin
(se mantendr el margen existente en el documento original). Nota: 72 pt equivale a 1 pulgada (2,54 cm)
--minimum-line-height
La altura mnima de la lnea, como porcentaje del tamao de letra calculado para el elemento. calibre se asegu-
rar de que cada elemento tenga esta altura de lnea como mnimo, a pesar de lo que indique el documento de
entrada. Asignar 0 para desactivar. El valor predeterminado es 120 %. Utilice esta opcin preferentemente a la
especificacin directa de la altura de lnea, a menos que sepa lo que est haciendo. Por ejemplo, puede conseguir
texto doble espaciado asignndole un valor de 240.
--remove-paragraph-spacing
Eliminar el espacio entre prrafos. Tambin establece sangrado en cada prrafo de 1,5em. La eliminacin del
espacio no funciona si el archivo de origen no define prrafos (etiquetas <p> o <div>).
--remove-paragraph-spacing-indent-size
Cuando calibre elimina las lneas en blanco entre prrafos, automticamente establece una sangra para que se
distingan bien los prrafos. Esta opcin controla la anchura de esta sangra (en unidades em). Si asigna un valor
negativo se usar la sangra especificada en el documento de entrada, es decir, calibre no cambia la sangra.
--smarten-punctuation
Convierte comillas rectas, rayas y puntos suspensivos en sus equivalentes tipogrficos correctos. Para ms deta-
lles, vase https://daringfireball.net/projects/smartypants
--subset-embedded-fonts
Reducir caracteres en todos los tipos de letra incrustados. Cada tipo de letra incrustado se recorta para que
contenga slo los caracteres que se usan en el documento. Esto reduce el tamao de los archivos de tipo de letra.
Resulta til si incrusta un tipo de letra particularmente extenso con muchos caracteres sin usar.

1.11. Interfaz de lnea de rdenes 269


Manual de usuario de calibre, Versin 2.82.0

--transform-css-rules
Ruta al archivo que contiene las reglas para transformar los estilos CSS de este libro. La manera ms fcil de
crear dicho archivo es usar el asistente para creacin de reglas en la interfaz grfica de calibre. Se accede a l en
la seccin Apariencia > Transformar estilos del cuadro de dilogo de conversin. Una vez creadas las reglas,
se puede usar el botn Exportar para guardarlas en un archivo.
--unsmarten-punctuation
Convertir comillas, raya y puntos suspensivos tipogrficos a sus equivalentes ms simples.

PROCESADO HEURSTICO

Modificar el texto y estructura del documento usando patrones comunes. Desactivado de manera predeterminada. Use
enable-heuristics para activarlo. Las acciones individuales pueden desactivarse con las opciones disable-*.
--disable-dehyphenate
Analizar las palabras con guin en todo el documento. El propio documento se utiliza como un diccionario para
determinar si cada guin debe mantenerse o eliminarse.
--disable-delete-blank-paragraphs
Eliminar los prrafos vacos del documento cuando existen entre otros prrafos.
--disable-fix-indents
Convertir los sangrados creados a partir de varios espacios duros en sangrados en cdigo CSS.
--disable-format-scene-breaks
Los marcadores de salto de escena alineados a la izquierda se centrarn. Los saltos de escena con mltiples
lneas en blanco se sustituirn por lneas horizontales.
--disable-italicize-common-cases
Buscar palabras y patrones que denotan cursiva y ponerlos en cursiva.
--disable-markup-chapter-headings
Detectar cabeceras y subcabeceras de captulos sin formato y convertirlas en etiquetas h2 y h3. Esta configura-
cin no crear un ndice, pero se puede utilizar junto con la deteccin de estructura para crear uno.
--disable-renumber-headings
Busca secuencias de etiquetas <h1> o <h2>. Las etiquetas se renumeran para evitar la divisin en el medio de
una cabecera de captulo.
--disable-unwrap-lines
Unir lneas basndose en la puntuacin y otros indicios de formato.
--enable-heuristics
Activar el procesado heurstico. Esta opcin debe estar activada para que se pueda realizar cualquier tipo de
procesado heurstico.
--html-unwrap-factor
Escala utilizada para determinar la longitud a la cual una lnea debe unirse a otra lnea. Los valores vlidos son
nmeros decimales entre 0 y 1. El valor predeterminado es 0.4, un poco menos de la mitad de la lnea. Si slo
unas pocas lneas del documento necesitan unirse, debera reducir el valor.
--replace-scene-breaks
Sustituir saltos de escena por el texto especificado. De manera predeterminada se usa el texto existente en el
documento de entrada.

BUSCAR Y SUSTITUIR

Modificar el texto y la estructura del documento utilizando patrones definidos por el usuario.

270 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

--search-replace
Ruta a un archivo que contiene expresiones regulares de bsqueda y sustitucin. El archivo debe contener lneas
alternas de expresiones regulares seguidas por patrones de sustitucin (que pueden ser lneas en blanco). La ex-
presin regular debe ajustarse a la sintaxis de expresiones regulares de python y el archivo debe estar codificado
como UTF-8.
--sr1-replace
Texto de sustitucin para el texto encontrado con sr1-search.
--sr1-search
Patrn de bsqueda (expresin regular) que se sustituir por sr1-replace.
--sr2-replace
Texto de sustitucin para el texto encontrado con sr2-search.
--sr2-search
Patrn de bsqueda (expresin regular) que se sustituir por sr2-replace.
--sr3-replace
Texto de sustitucin para el texto encontrado con sr3-search.
--sr3-search
Patrn de bsqueda (expresin regular) que ser sustituida por sr3-replace.

DETECCIN DE ESTRUCTURA

Control de autodeteccin de estructura de documento.


--chapter
Expresin XPath para detectar ttulos de captulo. El comportamiento predeterminado es considerar como ttu-
los de captulo las etiquetas <h1> o <h2> que contengan las palabras chapter, book, section, prologue,
epilogue o part, as como cualquier etiqueta que tenga class="chapter". La expresin debe dar como resul-
tado una lista de elementos. Para desactivar la deteccin de captulos use la expresin /. Vase el Cursillo de
XPath en el Manual de usuario de calibre para obtener ms ayuda sobre el uso de esta opcin.
--chapter-mark
Especificar cmo marcar los captulos detectados. Con el valor pagebreak, se insertar un salto de pgina
antes de cada captulo; con rule se insertar una lnea antes de cada captulo; con both se marcarn los
captulos con un salto de pgina y una lnea; con none se deshabilitar el marcado de captulos.
--disable-remove-fake-margins
Algunos documentos especifican los mrgenes de pgina aadiendo mrgenes a la izquierda y derecha de cada
prrafo, calibre intentar detectar y eliminar estos mrgenes. A veces esto puede ocasionar que se eliminen
mrgenes que deberan mantenerse. En tal caso, puede desactivar la eliminacin.
--insert-metadata
Incluir los metadatos al principio del libro. til para lectores de libros electrnicos que no manejan los metadatos
directamente.
--page-breaks-before
Una expresin XPath. Se insertan saltos de pgina antes de los elementos especificados. Para desactivarlo use la
expresin: /
--prefer-metadata-cover
Usar preferentemente la portada detectada en el archivo de origen en vez de la portada especificada.
--remove-first-image
Eliminar la primera imagen del libro de entrada. Es til si el documento de entrada tiene una imagen de por-

1.11. Interfaz de lnea de rdenes 271


Manual de usuario de calibre, Versin 2.82.0

tada no identificada como tal. En tal caso, si asigna una portada en calibre, el documento de salida tendr dos
imgenes de portada si no activa esta opcin.
--start-reading-at
Una expresin XPath para detectar dnde debe comenzar la lectura del documento. Algunos programas de
lectura de libros electrnicos (entre ellos el Kindle) usan esta ubicacin como la posicin desde donde iniciar
el libro. Lea el cursillo de Xpath en el Manual de usuario de calibre para obtener mayor informacin acerca de
esta funcin.

NDICE

Controla la generacin automtica del ndice. De manera predeterminada, si el archivo de entrada tiene un ndice, se
usar ste en lugar del generado automticamente.
--duplicate-links-in-toc
Al crear un ndice a partir de enlaces en el documento de entrada, permitir entradas duplicadas, es decir, permitir
ms de una entrada con el mismo texto, siempre que apunten a diferentes partes del texto.
--level1-toc
Expresin XPath que especifica todas las etiquetas que deben aadirse en el primer nivel del ndice. Si se indica,
tiene prioridad sobre otras formas de autodeteccin. Pueden encontrarse algunos ejemplos en el Cursillo de
XPath en el Manual de usuario de calibre.
--level2-toc
Expresin XPath que especifica todas las etiquetas que deben aadirse en el segundo nivel del ndice. Cada
entrada se aade bajo la entrada previa del nivel uno. Pueden encontrarse algunos ejemplos en el Cursillo de
XPath en el Manual de usuario de calibre.
--level3-toc
Expresin XPath que especifica todas las etiquetas que deben aadirse en el tercer nivel del ndice. Cada entrada
se aade bajo la entrada previa del nivel dos. Pueden encontrarse algunos ejemplos en el Cursillo de XPath en
el Manual de usuario de calibre.
--max-toc-links
Nmero mximo de enlaces a incluir dentro del ndice. El valor 0 desactiva esta opcin. Valor predeterminado:
50. Los enlaces slo se agregan al ndice si se deteca un nmero de captulos menor que el umbral especficado.
--no-chapters-in-toc
No aadir los capitulos autodetectados al ndice.
--toc-filter
Eliminar entradas del ndice cuyos ttulos se corresponden con la expresin regular especificada. Las entradas
marcadas y todas sus ramas son eliminadas.
--toc-threshold
Si se detectan menos captulos que este nmero, entonces se aaden enlaces al ndice. Valor predeterminado: 6
--use-auto-toc
Normalmente, si el archivo de origen tiene un ndice, se usa ste en vez del autogenerado. Con esta opcin
siempre se usar el autogenerado.

METADATOS

Opciones para asignar metadatos en la salida


--author-sort
Texto que se usar para ordenar por autor.

272 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

--authors
Establecer autores. Si hay varios autores deben separarse por &.
--book-producer
Establecer el productor del libro.
--comments
Establecer la descripcin del libro.
--cover
Establecer como portada el archivo o URL especificado
--isbn
Establecer el ISBN del libro.
--language
Establecer el idioma.
--pubdate
Establecer la fecha de publicacin.
--publisher
Establecer la editorial del libro.
--rating
Establecer la valoracin. Debe ser un nmero entre 1 y 5.
--read-metadata-from-opf, -m
Leer metadatos del archivo OPF especificado. Los metadatos ledos de este archivo anularn cualquier metadato
que haya en el archivo de origen.
--series
Establecer la serie a la que pertenece el libro.
--series-index
Establecer la posicin del libro en esta serie.
--tags
Establecer etiquetas para el libro. Debe ser una lista separada por comas.
--timestamp
Establecer la fecha y hora del libro (ya no se usa)
--title
Establecer el ttulo
--title-sort
La versin del ttulo que se usar para ordenar.

DEPURACIN

Opciones para ayudar con la depuracin de la conversin


--debug-pipeline, -d
Guardar la salida de las distintas etapas del proceso de conversin en el directorio especificado. til si no est
seguro de en qu punto del proceso de conversin est ocurriendo un error.
--verbose, -v
Nivel de detalles. Emplear varias veces para obtener ms detalles. Si se emplea dos veces se mostrarn todos los
detalles, con una vez se mostrarn detalles intermedios y si no se emplea los detalles sern mnimos.

1.11. Interfaz de lnea de rdenes 273


Manual de usuario de calibre, Versin 2.82.0

ebook-edit

ebook-edit [opts] [ruta_al_libro] [nombre_de_archivo_en_el_libro ...]

Ejecutar la herramienta de modificacin de libros de calibre. Opcionalmente puede especificar nombres de archivos en
el libro que se abrirn automticamente.
Cuando quiera pasar argumentos con espacios a ebook-edit, ponga el argumento entre comillas. Por ejemplo:
C:una ruta con espacios

[opciones]

--detach
Desacoplar de la terminal en control, si existe (slo linux)
--help, -h
mostrar este mensaje de ayuda y terminar
--version
mostrar el nmero de versin del programa y terminar

ebook-meta

ebook-meta archivo_de_libro [opciones]

Leer/escribir metadatos de/en archivos de libro electrnico.


Formatos soportados para leer metadatos: azw, azw1, azw3, azw4, cbr, cbz, chm, docx, epub, fb2, html, htmlz, imp,
lit, lrf, lrx, mobi, odt, oebzip, opf, pdb, pdf, pml, pmlz, pobi, prc, rar, rb, rtf, snb, tpz, txt, txtz, updb, zip
Formatos soportados para escribir metadatos: azw, azw1, azw3, azw4, docx, epub, fb2, htmlz, lrf, mobi, pdb, pdf, prc,
rtf, tpz, txtz
Los diferentes tipos de archivo admiten diferentes tipos de metadatos. Si se intentan establecer metadatos en un tipo
de archivo que no los soporta, los metadatos se obviarn.
Cuando quiera pasar argumentos con espacios a ebook-meta, ponga el argumento entre comillas. Por ejemplo:
C:una ruta con espacios

[opciones]

--author-sort
Texto que se usar para ordenar por autor. Si no se especifica esta opcin y s el autor(es), se generar automti-
camente a partir del autor(es).
--authors, -a
Establecer los autores. Si hay varios autores deben separarse por &. Los nombres de los autores deben estar
en el formato Nombre Apellido.
--book-producer, -k
Establecer el productor del libro.
--category
Establecer la categora del libro.

274 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

--comments, -c
Establecer la descripcin del libro.
--cover
Establecer el archivo especificado como portada.
--date, -d
Establecer la fecha de publicacin.
--from-opf
Leer los metadatos del archivo OPF especificado y usarlos para establecer los metadatos del libro electrnico.
Los metadatos que se especifiquen en la lnea de rdenes tendrn prioridad sobre los ledos del archivo OPF.
--get-cover
Obtener la portada del libro electrnico y guardarla en el archivo especificado.
--help, -h
mostrar este mensaje de ayuda y terminar
--identifier
Establecer los identificadores del libro, puede usarse varias veces. Por ejemplo: --identifier (pgina 275)
uri:http://acme.com --identifier (pgina 275) isbn:12345 Para eliminar un identificador, especifique un
valor en blanco: --identifier (pgina 275) isbn: Tenga en cuenta que en archivos EPUB, un identificador
marcado como identificador del paquete no puede eliminarse.
--index, -i
Establecer la posicin del libro en esta serie.
--isbn
Establecer el ISBN del libro.
--language, -l
Establecer el idioma.
--lrf-bookid
Establecer el BookID en archivos LRF
--publisher, -p
Establecer la editorial del libro.
--rating, -r
Establecer la valoracin. Debe ser un nmero entre 1 y 5.
--series, -s
Establecer la serie a la que pertenece el libro.
--tags
Establecer etiquetas para el libro. Debe ser una lista separada por comas.
--title, -t
Establecer el ttulo
--title-sort
La versin del ttulo que se usara para ordenar. Si no se especifica esta opcin y s el ttulo, se generar autom-
ticamente a partir del ttulo.
--to-opf
Especificar el nombre de un archivo OPF. Los metadatos se escribirn en el archivo OPF.
--version
mostrar el nmero de versin del programa y terminar

1.11. Interfaz de lnea de rdenes 275


Manual de usuario de calibre, Versin 2.82.0

ebook-polish

ebook-polish [opciones] archivo_de_entrada [archivo_de_salida]

Pulir libros le permite poner un toque de perfeccin en los libros creados con esmero.
Al pulir se intenta mantener al mnimo los cambios en el cdigo interno del libro. Contrariamente a la conversin, no
aplana el cdigo CSS, ni cambia el nombre de ficheros, ni cambia tamaos de letra, ni ajusta los mrgenes, etc. Toda
accin se realiza con el menor conjunto de cambios necesario para obtener el efecto deseado.
Debera usar esta herramienta como el ltimo paso en el proceso de creacin de un libro.
Tenga en cuenta que esta accin slo funciona con archivos en los formatos AZW3 o EPUB.
Cuando quiera pasar argumentos con espacios a ebook-polish, ponga el argumento entre comillas. Por ejemplo:
C:una ruta con espacios

[opciones]

--compress-images, -i
Comprimir sin prdidas las imgenes en el libro para reducir su tamao sin afectar la calidad de imagen.
--cover, -c
Ruta a la imagen de portada. Cambia la portada especificada en el libro. Si no hay una portada presente o si no
est correctamente identificada, inserta una nueva portada.
--embed-fonts, -e
Incrustar todos los tipos de letra referenciados en el documento de entrada pero no incrustados todava. Esta
opcin buscar los tipos de letra en el sistema y, si se encuentran, se incrustarn en el documento. Asegrese de
tener una licencia adecuada para incrustar los tipos de letras usados en el documento.
--help, -h
mostrar este mensaje de ayuda y terminar
--jacket, -j
Insertar una pgina de sobrecubierta al principio del libro con todos los metadatos del libro, como ttulo,
etiquetas, autores, serie, comentarios, etc. Se sustituir cualquier sobrecubierta ya existente.
--opf, -o
Ruta a un fichero OPF. Los metadatos del libro se actualizan a partir del fichero OPF.
--remove-jacket
Eliminar una pgina de sobrecubierta insertada previamente.
--remove-unused-css, -u
Eliminar todas las reglas sin usar de las hojas de estilo y etiquetas <style>. Algunos libros creados a partir de
plantillas de produccin pueden contener un gran nmero de reglas CSS innecesarias que no afectan a ningn
contenido del libro. Estas reglas adicionales pueden ralentizar los lectores, que necesitan procesarlas todas.
--smarten-punctuation, -p
Convertir rayas, puntos suspensivos, comillas rectas, guiones mltiples, etc. en sus equivalentes tipogrficos
correctos. Tenga en cuenta que el algoritmo puede dar lugar a resultados incorrectos en algunos casos, especial-
mente cuando aparecen apstrofos iniciales en una palabra.
--subset-fonts, -f
Reducir caracteres significa que se eliminan los caracteres sin usar de un tipo de letra incrustado, de manera que
slo se mantienen los caracteres de ese tipo de letra que se usan en el libro. Esto puede reducir considerablemente
el tamao de los archivos de tipo de letra (una reduccin del 50 % es normal). Por ejemplo, si el libro usa un tipo
de letra determinado para las cabeceras, la reduccin de caracteres mantendr slo los caracteres presentes en

276 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

las cabeceras del libro. O si un libro incluye las versiones negrita y cursiva de un tipo de letra, pero los textos en
negrita o cursiva son infrecuentes o inexistentes, entonces los archivos correspondientes a las versiones negrita
y cursiva pueden reducirse a unos pocos caracteres o incluso eliminarse por completo. La nica desventaja de
reducir los caracteres de los tipos de letra es que si ms adelante decide aadir ms texto a los libros, el nuevo
texto puede no estar cubierto por el tipo de letra reducido.
--verbose
Proporciona una salida ms detallada, til para depurar.
--version
mostrar el nmero de versin del programa y terminar

ebook-viewer

ebook-viewer [opciones] archivo

Ver un libro electrnico.


Cuando quiera pasar argumentos con espacios a ebook-viewer, ponga el argumento entre comillas. Por ejemplo:
C:una ruta con espacios

[opciones]

--continue
Continuar leyendo el libro previamente abierto
--debug-javascript
Enviar las alertas de javascript y los mensajes de consola a la consola
--detach
Desacoplar de la terminal en control, si existe (slo linux)
--full-screen, -f
Si se especifica, la ventana del visor tratar de iniciarse a pantalla completa.
--help, -h
mostrar este mensaje de ayuda y terminar
--open-at
Posicin en la que abrir el libro especificado. La posicin es una ubicacin mostrada en la esquina superior
izquierda del visor. Tambin puede usar la forma toc:cualquier_cosa y se abrir en la posicin indicada por la
primera entrada del ndice que contenga el texto cualquier_cosa.
--raise-window
Si se especifica, la ventana del visor tratar de colocarse en primer plano cuando se inicie el programa.
--version
mostrar el nmero de versin del programa y terminar

fetch-ebook-metadata

fetch-ebook-metadata [opciones]

Obtener metadatos de libros de Internet. Debe especificar al menos un ttulo, autor o ISBN.
Cuando quiera pasar argumentos con espacios a fetch-ebook-metadata, ponga el argumento entre comillas.
Por ejemplo: C:una ruta con espacios

1.11. Interfaz de lnea de rdenes 277


Manual de usuario de calibre, Versin 2.82.0

[opciones]

--authors, -a
Autor(es) del libro
--cover, -c
Especificar un nombre de archivo. La portada, si se encuentra, se guardar ah. Sin esta opcin no se descarga
ninguna portada.
--help, -h
mostrar este mensaje de ayuda y terminar
--isbn, -i
ISBN del libro
--opf, -o
Generar los metadatos en formato OPF en lugar de texto legible.
--timeout, -d
Tiempo mximo de espera en segundos. El valor predeterminado es 30
--title, -t
Ttulo del libro
--verbose, -v
Imprimir el registro en la consola (flujo de error estndar)
--version
mostrar el nmero de versin del programa y terminar

lrf2lrs

lrf2lrs libro.lrf

Convierte un archivo LRF en un archivo LRS (XML codificado en UTF-8)


Cuando quiera pasar argumentos con espacios a lrf2lrs, ponga el argumento entre comillas. Por ejemplo: C:una
ruta con espacios

[opciones]

--dont-output-resources
No guardar imgenes incrustadas y archivos de tipo de letra al disco
--help, -h
mostrar este mensaje de ayuda y terminar
--output, -o
Archivo LRS de salida
--verbose
Dar ms detalles
--version
mostrar el nmero de versin del programa y terminar

278 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

lrfviewer

lrfviewer [opciones] libro.lrf

Leer el libro LRF libro.lrf


Cuando quiera pasar argumentos con espacios a lrfviewer, ponga el argumento entre comillas. Por ejemplo: C:una
ruta con espacios

[opciones]

--disable-hyphenation
Desactivar divisin de palabras. Debera mejorar significativamente la velocidad del procesado.
--help, -h
mostrar este mensaje de ayuda y terminar
--profile
Analizar el procesador de LRF
--verbose
Imprimir ms informacin sobre el proceso
--version
mostrar el nmero de versin del programa y terminar
--visual-debug
Activar ayudas visuales para depurar el procesado
--white-background
De manera predeterminada el fondo no es completamente blanco, ya que suele ser menos agresivo a la vista.
Use esta opcin para hacer el fondo totalmente blanco.

lrs2lrf

lrs2lrf [opciones] archivo.lrs

Compilar un archivo LRS en un archivo LRF.


Cuando quiera pasar argumentos con espacios a lrs2lrf, ponga el argumento entre comillas. Por ejemplo: C:una
ruta con espacios

[opciones]

--help, -h
mostrar este mensaje de ayuda y terminar
--lrs
Convierte LRS a LRS, til para depuracin.
--output, -o
Ruta del archivo de salida
--verbose
Procesado detallado

1.11. Interfaz de lnea de rdenes 279


Manual de usuario de calibre, Versin 2.82.0

--version
mostrar el nmero de versin del programa y terminar

web2disk

web2disk URL

Donde URL es por ejemplo https://google.com


Cuando quiera pasar argumentos con espacios a web2disk, ponga el argumento entre comillas. Por ejemplo: C:una
ruta con espacios

[opciones]

--base-dir, -d
Directorio base en el cual se almacena el URL. El valor predeterminado es .
--delay
Intervalo mnimo en segundos entre adquisiciones de datos consecutivas. Valor predeterminado: 0 s
--dont-download-stylesheets
No descargar estilos CSS.
--encoding
Codificacin para los sitios web que est intentando descargar. De manera predeterminada se intentar averiguar
la codificacin.
--filter-regexp
Se omitir cualquier enlace que coincida con esta expresin regular. Esta opcin puede especificarse mltiples
veces, lo que har que se omitan los enlaces que coincidan con cualquiera de las expresiones. De manera pre-
determinada no se omite ningn enlace. Si se especifica tanto un filtro como una coincidencia de expresiones
regulares, se aplicar primero el filtro.
--help, -h
mostrar este mensaje de ayuda y terminar
--match-regexp
Slo se seguirn los enlaces que cumplan la expresin regular. Esta opcin se puede usar varias veces, en tal caso,
siempre que el elace cumpla alguna de las expresiones regulares, se seguir el enlace. De manera predeterminada
se siguen todos los enlaces.
--max-files, -n
El nmero mximo de archivos a descargar. Esto se aplica solamente a archivos procedentes de etiquetas <a
href>. El valor predeterminado es 9223372036854775807
--max-recursions, -r
Mximo nmero de niveles de recursin, es decir, profundidad de los enlaces a seguir. Valor predeterminado: 1
--timeout, -t
Tiempo mximo de espera de respuesta del servidor (en segundos). Valor predeterminado: 10.0 s
--verbose
Mostrar informacin de salida detallada. til para la depuracin
--version
mostrar el nmero de versin del programa y terminar

280 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

1.11.2 rdenes sin documentacin

ebook-device
markdown-calibre
Puede ver la sintaxis de las rdenes sin documentacin ejecutndolas sin argumentos en una terminal.

1.12 Configurar un entorno de desarrollo de calibre

calibre es cdigo completamente abierto, licenciado bajo la GNU GPL v398 . Esto significa que cualquiera es libre de
descargar y modificar el programa a su gusto. En esta seccin, se mostrar cmo configurar un entorno de desarrollo
de calibre en el sistema operativo de su eleccin. calibre est escrito principalmente en Python99 , con algo de cdigo
C/C++ para mejorar la velocidad y la interfaz con el sistema. Tenga en cuenta que calibre no es compatible con Python
3 y requiere al menos Python 2.7.9.

Contents

Filosofa del diseo (pgina 282)


Estructura del cdigo (pgina 282)
Obtener el cdigo (pgina 283)
Enviar cambios para que se incluyan (pgina 283)
Entorno de desarrollo en Windows (pgina 284)
Entorno de desarrollo OS X (pgina 285)
Entorno de desarrollo Linux (pgina 285)
Mantener una instalacin normal y otra de desarrollo de calibre en el mismo equipo (pgina 286)
Consejos de depuracin (pgina 286)
Usar sentencias de impresin (pgina 287)
Usar un intrprete de python interactivo (pgina 287)
Usar el depurador de python como un depurador remoto (pgina 287)
Usar el depurador en su IDE de python favorito (pgina 288)
Ejecutar scripts arbitrarios en el entorno python de calibre (pgina 288)
Usar calibre en sus proyectos (pgina 288)
Instalacin binaria de calibre (pgina 288)
Instalacin de cdigo fuente sobre Linux (pgina 288)
Documentacin de la API de varias partes de calibre (pgina 289)

98 https://www.gnu.org/licenses/gpl.html
99 https://www.python.org

1.12. Configurar un entorno de desarrollo de calibre 281


Manual de usuario de calibre, Versin 2.82.0

1.12.1 Filosofa del diseo

calibre tiene sus races en el mundo Unix, lo que significa que su diseo es altamente modular. Los mdulos interactan
entre s a travs de interfaces bien definidas. Esto hace que la aadir nuevas caractersticasy corregir errores en calibre
sea muy fcil, lo que resulta en un ritmo frentico de desarrollo. Debido a sus races, calibre tiene una interfaz completa
de lnea de rdenes para todas sus funciones, documentadas en Interfaz de lnea de rdenes (pgina 249).
El diseo modular de calibre se manifiesta en los complementos. Hay un cursillo (pgina 211) sobre cmo escri-
bir complementos para calibre. Por ejemplo, agregar soporte para un nuevo dispositivo en calibre implica escribir
menos de 100 lneas de cdigo en la forma de un complemento de controlador de dispositivo. Puede examinar los
controladores predefinidos100 . Del mismo modo, agregar soporte para nuevos conversores de formato implica escribir
complementos de formato de entrada o salida. Otro ejemplo de la construccin modular es el :ref: sistema de frmu-
las <news> para la obtencin de noticias. Para ms ejemplos de complementos diseados para agregar funciones a
calibre, consulte el ndice de complementos101 (en ingls).

Estructura del cdigo

Todo el cdigo python de calibre est en el paquete calibre. Este paquete contiene los siguientes subpaquetes
principales
devices - Todos los controladores de dispositivos. Examite alguno de los controladores predefinidos para hacerse
una idea de cmo funcionan.
Para obtener ms informacin, consulte: devices.interface que define la interfaz soportada por los
controladores de dispositivos y devices.usbms que define un controlador genrico que se conecta a un
dispositivo USBMS. Todos los controladores de dispositivos basados en USBMS en calibre descienden de
l.
ebooks - Todo el cdigo de conversin y metadatos de libros electrnicos. Un buen punto de parti-
da es calibre.ebooks.conversion.cli que es el mdulo que realiza las funciones de la orden
ebook-convert. El proceso de conversin se controla mediante conversion.plumber. El cdigo in-
dependiente de formato est todo en ebooks.oeb y el cdigo dependiente de formato est ebooks.
format_name.
La lectura, escritura y descarga de metadatos estn en ebooks.metadata
La conversin tiene lugar en diferentes etapas, para ver la estructura de estas etapas vea conversin-
introduction. Las etapas consisten en un complemento de entrada, diversas transformaciones y un com-
plemento de salida. El cdigo que controla las etapas est en plumber.py. La sucesin de etapas trabaja
sobre una representacin del libro electrnico que es como un epub descomprimido, con manifiesto, lomo,
ndice, gua, contenidos html, etc. La clase que maneja esta representacin es OEBBook en ebooks.
oeb.base. Las diversas transformaciones que se aplican al libro durante las conversiones estn en oeb/
transforms/*.py. Los complementos de entrada y salida estn en conversion/plugins/*.py.
La modificacin de libros electrnicos se realiza mediante un objeto contenedor diferente. Est documenta-
do en Documentacin de la API para las herramientas de modificacin de libros electrnicos (pgina 295).
db - El motor de base de datos. Vea Documentacin de la API para la interfaz de la base de datos (pgina 289)
para ms informacin sobre la interfaz de la biblioteca de calibre.
servidor de contenidos: library.server es el servidor de contenidos de calibre.
gui2 - La interfaz grfica de usuario (GUI). La inicializacin de la GUI ocurre en gui2.main y gui2.
ui. El visor de libros electrnicos est en gui2.viewer. El editor de libros electrnicos est en gui2.
tweak_book.
100 https://github.com/kovidgoyal/calibre/tree/master/src/calibre/devices
101 https://www.mobileread.com/forums/showthread.php?p=1362767#post1362767

282 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

Si desea localizar los puntos de entrada de todos los ejecutables de calibre, vea la estructura entry_points en
linux.py102 .
Si necesita ayuda para entender el cdigo, escriba en el foro de desarrollo https://www.mobileread.com/forums/
forumdisplay.php?f=240 y probablemente obtendr ayuda de uno de los muchos desarrolladores de calibre.

1.12.2 Obtener el cdigo

Puede obtener el cdigo fuente de calibre de dos maneras, usando un sistema de control de versiones o descargando
directamente un tarball103 .
calibre utiliza Git104 , un sistema de control de versiones distribuido. Git est disponible en todas las plataformas que
soporta calibre. Una vez instalado Git, puede obtener el cdigo fuente de calibre con la orden:
git clone git://github.com/kovidgoyal/calibre.git

En Windows necesitar la ruta completa, que ser algo as como C:\Archivos de programa\Git\git.exe.
calibre es un gran proyecto con un extenso historial de control de cdigo fuente, asi que esto puede tomar un tiempo
(de 10 minutos a una hora, dependiendo de la velocidad de la conexin a Internet).
Si quiere obtener el cdigo ms rpidamente, el cdigo fuente de la ltima versin est siempre disponible como un
archivo105 .
Para actualizar el cdigo de una rama a su versin ms reciente, use la orden:
git pull --no-edit

Enviar cambios para que se incluyan

Si slo va a hacer algunos pequeos cambios, puede hacer los cambios y crear una directiva de fusin que luego
puede adjuntar a un informe en el registro de errores106 . Para ello, realice los cambios y despus ejecute:
git commit -am "Comment describing your changes"
git format-patch origin/master --stdout > my-changes

Esto crear un archivo my-changes en el directorio actual, simplemente adjntelo a un informe en el registro de
errores107 . Tenga en cuenta que esto incluir todos los cambios que haya realizado. Si slo desea enviar algunos
cambios, tendr que sustituir el origin/master anterior. Para enviar slo el ltimo cambio, use:
git format-patch HEAD~1 --stdout > my-changes

Para enviar los ltimos n cambios, sustituya 1 por n, por ejemplo, para los ltimos 3 cambios:
git format-patch HEAD~3 --stdout > my-changes

Tenga cuidado de no incluir uniones cuando use HEAD~n.


Si planea realizar mucho desarrollo en calibre, el mejor mtodo es crear una cuenta en GitHub108 . A continuacin se
muestra una gua bsica para la creacin de su propia derivacin de calibre, de manera que le permitir presentar una
solicitud de colaboracin para que se incluya en el repositorio principal de calibre:
102 https://github.com/kovidgoyal/calibre/blob/master/src/calibre/linux.py
103 https://calibre-ebook.com/dist/src
104 https://www.git-scm.com/
105 https://calibre-ebook.com/dist/src
106 https://bugs.launchpad.net/calibre
107 https://bugs.launchpad.net/calibre
108 https://github.com

1.12. Configurar un entorno de desarrollo de calibre 283


Manual de usuario de calibre, Versin 2.82.0

Configure git en el equipo como se describe en este artculo: Setup Git109 (en ingls)
Configure las claves SSH para la autenticacin con GitHub, como se describe aqu: Generating SSH keys110 (en
ingls)
Vaya a https://github.com/kovidgoyal/calibre y pulse en el botn Fork.
En una terminal escriba:

git clone git@github.com:<username>/calibre.git


git remote add upstream https://github.com/kovidgoyal/calibre.git

Sustituya el <username> de arriba por su nombre de usuario github. Esto har que la derivacin se actualice
localmente.
Puede hacer cambios y fijarlos siempre que lo desee. Cuando est listo para que su trabajo se una con el reposi-
torio principal, escriba:

git push

y vaya a https://github.com/<username>/calibre, pulse en el botn Pull Request para generar


una solicitud de contribucin que pueda ser incluida.
Puede actualizar la copia local con cdigo del repositorio principal en cualquier momento haciendo:

git pull upstream

Tambin debe mantener un ojo en el foro de desarrollo de calibre111 . Antes de hacer cambios importantes, disctalos
en el foro o contacte directamente con Kovid (su direccin de correo electrnico est por todo el cdigo fuente).

1.12.3 Entorno de desarrollo en Windows

Nota: Tambin debe obtener el cdigo fuente de calibre por separado como se describe anteriormente.

Instale calibre normalmente, usando el instalador de Windows. A continuacin, abra un smbolo del sistema y vaya al
directorio del cdigo de calibre previamente descargado. Por ejemplo:

cd C:\Users\kovid\work\calibre

calibre es el directorio que contiene los subdirectorios src y resources


El siguiente paso es establecer la variable de entorno CALIBRE_DEVELOP_FROM a la ruta absoluta del directorio
src. Por lo tanto, siguiendo el ejemplo anterior, sera C:\Users\Kovid\work\calibre\src. He aqu una breve
gua112 para establecer variables de entorno en Windows (en ingls).
Una vez que haya establecido la variable de entorno, abra un nuevo smbolo del sistema y compruebe que se estableci
correctamente utilizando la orden:

echo %CALIBRE_DEVELOP_FROM%

Al establecer esta variable de entorno, calibre cargar todo su cdigo Python desde la ubicacin especificada.
109 https://help.github.com/articles/set-up-git
110 https://help.github.com/articles/generating-ssh-keys
111 https://www.mobileread.com/forums/forumdisplay.php?f=240
112 https://docs.python.org/2/using/windows.html#excursus-setting-environment-variables

284 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

Eso es todo! Ya est listo para comenzar a modificar el cdigo de calibre. Por ejemplo, abra el archivo
src\calibre\__init__.py en su editor favorito y aada la lnea:

print ("Hello, world!")

cerca del inicio del archivo. Ahora ejecute la orden calibredb. La primera lnea de salida deber ser Hello,
world!.
Tambin puede configurar un entorno de desarrollo de calibre dentro de Microsoft Visual Studio, si lo desea, siguiendo
estas instrucciones113 (en ingls).

1.12.4 Entorno de desarrollo OS X

Nota: Tambin debe obtener el cdigo fuente de calibre por separado como se describe anteriormente.

Instale calibre normalmente utilizando el archivo .dmg suministrado. A continuacin, abra una sesin de terminal y
vaya al directorio del cdigo de calibre previamente descargado, por ejemplo:

cd /Users/kovid/work/calibre

calibre es el directorio que contiene los subdirectorios src y resources. Asegrese de que ha instalado las herramientas
de lnea de rdenes a travs de calibre Preferencias > Avanzado > Miscelnea en la interfaz grfica de calibre.
El siguiente paso es crear un script bash que establezca la variable de entorno CALIBRE_DEVELOP_FROM a la ruta
absoluta del directorio src cuando ejecute calibre en modo de depuracin.
Cree un archivo de texto sencillo:

#!/bin/sh
export CALIBRE_DEVELOP_FROM="/Users/kovid/work/calibre/src"
calibre-debug -g

Guarde este archivo como /usr/bin/calibre-develop, despus configure los permisos para poder ejecutarlo:

chmod +x /usr/bin/calibre-develop

Una vez hecho esto, ejecute:

calibre-develop

Debera aparecerer alguna informacin de diagnstico en la ventana de la terminal mientras calibre se inicia, y debera
ver un asterisco despus del nmero de versin en la ventana de la interfaz grfica, lo que indica que se est ejecutando
desde el cdigo fuente.

1.12.5 Entorno de desarrollo Linux

Nota: Tambin debe obtener el cdigo fuente de calibre por separado como se describe anteriormente.

calibre est desarrollado principalmente en Linux. Tiene dos opciones para configurar el entorno de desarrollo. Puede
instalar el binario de calibre de modo normal y usarlo como un entorno de ejecucin para realizar su desarrollo.
Este enfoque es similar al que se utiliza en Windows y OS X. Como alternativa, puede instalar calibre a partir del
113 https://www.mobileread.com/forums/showthread.php?t=251201

1.12. Configurar un entorno de desarrollo de calibre 285


Manual de usuario de calibre, Versin 2.82.0

cdigo fuente. Las instrucciones para configurar un entorno de desarrollo a partir del cdigo fuente estn en el archivo
INSTALL en el rbol de origen. Aqu vamos a tratar el archivo binario como un entorno de ejecucin, que es el mtodo
recomendado.
Instale calibre usando el instalador binario. A continuacin, abra una sesin de terminal y vaya al directorio del cdigo
de calibre previamente descargado, por ejemplo:

cd /home/kovid/work/calibre

calibre es el directorio que contiene los subdirectorios src y resources


El siguiente paso es establecer la variable de entorno CALIBRE_DEVELOP_FROM a la ruta absoluta del directorio
src. Siguiendo el ejemplo anterior, sera /home/kovid/work/calibre/src. La manera de establecer variables
de entorno depende de la distribucin de Linux y la shell que est utilizando.
Una vez que haya establecido la variable de entorno, abra una nueva sesin de terminal y compruebe que se ha
establecido correctamente usando esta orden:

echo $CALIBRE_DEVELOP_FROM

Al establecer esta variable de entorno, calibre cargar todo su cdigo Python desde la ubicacin especificada.
Eso es todo! Ya est listo para empezar a modificar el cdigo de calibre. Por ejemplo, abra el archivo src/calibre/
__init__.py en su editor favorito y aada la lnea:

print ("Hello, world!")

cerca del inicio del archivo. Ahora ejecute la orden calibredb. La primera lnea de salida deber ser Hello,
world!.

1.12.6 Mantener una instalacin normal y otra de desarrollo de calibre en el


mismo equipo

El rbol del cdigo fuente de calibre es muy estable y rara vez se rompe, pero si siente la necesidad de ejecutar a partir
del cdigo fuente en una biblioteca de prueba separada y ejecutar la versin oficial de calibre en la biblioteca habitual,
puede lograr esto fcilmente usando archivos .bat o scripts de shell para ejectuar calibre. El siguiente ejemplo muestra
cmo hacer esto en Windows utilizando archivos .bat (las instrucciones para otras plataformas son las mismas, slo
tiene que utilizar un script de shell en lugar de un archivo .bat)
Para ejecutar la versin oficial de calibre con la biblioteca habitual:
calibre-normal.bat::.

calibre.exe "--with-library=C:\path\to\everyday\library folder"

calibre-dev.bat::.

set CALIBRE_DEVELOP_FROM=C:\path\to\calibre\checkout\src
calibre.exe "--with-library=C:\path\to\test\library folder"

1.12.7 Consejos de depuracin

Python es un lenguaje de programacin dinmico con excelentes prestaciones para la introspeccin. Kovid escribi el
cdigo central de calibre sin siquiera utilizar un depurador. Hay varias estrategias para depurar el cdigo de calibre:

286 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

Usar sentencias de impresin

sta es la forma favorita de Kovid para depurar. Basta con insertar sentencias de impresin en los puntos de inters y
ejecutar el programa en la terminal. Por ejemplo, puede iniciar la interfaz grfica desde la terminal como:

calibre-debug -g

Del mismo modo, se puede iniciar el visor de libros electrnicos como:

calibre-debug -w /path/to/file/to/be/viewed

El editor de libros electrnicos puede iniciarse como:

calibre-debug -t /path/to/be/edited

Usar un intrprete de python interactivo

Puede insertar las siguientes dos lneas de cdigo para iniciar una sesin interactiva de python en ese punto:

from calibre import ipython


ipython(locals())

Cuando se ejecuta desde la lnea de rdenes, esto iniciar un intrprete interactivo de Python con acceso a todas las
variables definidas localmente (variables en el mbito local). El modo interactivo puede incluso completar con TAB
las propiedades de objetos y puede utilizar las diversas funciones de Python para la introspeccin, como dir(),
type(), repr(), etc.

Usar el depurador de python como un depurador remoto

Puede utilizar el depurador incorporado de python (pdb) como un depurador remoto desde la lnea de rdenes. En
primer lugar, inicie el depurador remoto en el punto del cdigo de calibre en el que est interesado, de esta forma:

from calibre.rpdb import set_trace


set_trace()

A continuacin ejecute calibre, ya sea en modo normal o usando una de las rdenes de depuracin de calibre descritas
en la seccin anterior. Una vez que se alcanza el punto del cdigo anterior, calibre se detendr, esperando a que se
conecte el depurador.
Ahora abra una terminal o un smbolo de sistema y utilice el siguiente comando para iniciar la sesin de depuracin:

calibre-debug -c "from calibre.rpdb import cli; cli()"

Puede leer acerca de cmo usar el depurador de python en la documentacin de stdlib de python para el mdule pdb114 .

Nota: De forma predeterminada, el depurador remoto intentar conectarse con el puerto 4444. Puede cambiarlo,
pasando el parmetro de puerto tanto a la funcin set_trace() como a cli(), de este modo: set_trace(port=1234)
y cli(port=1234).

114 https://docs.python.org/2/library/pdb.html#debugger-commands

1.12. Configurar un entorno de desarrollo de calibre 287


Manual de usuario de calibre, Versin 2.82.0

Nota: El depurador de python no puede manejar mltiples hilos, as que tiene que llamar set_trace una vez por hilo,
cada vez con un nmero de puerto diferente.

Usar el depurador en su IDE de python favorito

Es posible utilizar el depurador incorporado en su IDE de python favorito, si ste admite depuracin remota. El primer
paso es aadir la el src de calibre descargado a PYTHONPATH en el IDE. En otras palabras, el directorio que habilit
como CALIBRE_DEVELOP_FROM anteriormente tambin debe estar en el PYTHONPATH del IDE.
A continuacin coloque el mdulo depurador remoto del IDE en el subidrectorio src del cdigo fuente de calibre.
Aada cualquier cdigo que necesite para iniciar el depurador remoto en calibre en el punto de inters, por ejemplo,
en la funcin main. A continuacin, ejecute calibre de modo normal. El IDE ahora debera ser capaz de conectar con
el depurador remoto ejecutndose dentro de calibre.

Ejecutar scripts arbitrarios en el entorno python de calibre

La orden calibre-debug suministra un par de interruptores tiles para ejecutar su propio cdigo, con acceso a los
mdulos de calibre:

calibre-debug -c "some python code"

es ideal para probar un pequeo fragmento de cdigo en la lnea de rdenes. Funciona de la misma manera que la
opcin -c del intrprete de python:

calibre-debug myscript.py

puede utilizarse para ejecutar su propio script de Python. Funciona de la misma manera que pasar el script por el
intrprete de Python, excepto que el entorno de calibre est totalmente inicializado, as que puede utilizar todo el
cdigo de calibre en el script. Para utilizar argumentos de lnea de rdenes con los scripts utilice la forma:

calibre-debug myscript.py -- --option1 arg1

El -- hace que todos los argumentos posteriores sean pasados al script.

1.12.8 Usar calibre en sus proyectos

Es posible usar directamente las funciones y cdigo de calibre en un proyecto de Python. Existen dos maneras de hacer
esto:

Instalacin binaria de calibre

Si posee una instalacin binaria de calibre, puede utilizar el intrprete de Python incluido con calibre, de esta forma:

calibre-debug /path/to/your/python/script.py -- arguments to your script

Instalacin de cdigo fuente sobre Linux

Adems de usar la tcnica anterior, si realiza una instalacin de cdigo fuente en Linux, tambin puede importar
directamente calibre de la siguiente manera:

288 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

import init_calibre
import calibre

print calibre.__version__

Es esencial que importe el mdulo init_calibre antes que cualquier otro mdulo o paquete de calibre, pues esto confi-
gura el intrprete para ejecutar el cdigo de calibre.

1.12.9 Documentacin de la API de varias partes de calibre

Documentacin de la API para la interfaz de la base de datos

Esta API es segura para subprocesos (utiliza un esquema de bloqueo de un escritor, varios lectores). Puede acceder a
esta API as:

from calibre.library import db


db = db('Path to calibre library folder').new_api

Si se trata de un complemento de calibre que es parte de la interfaz grfica principal, se accede a ella de la siguiente
forma:

db = self.gui.current_db.new_api

class calibre.db.cache.Cache(backend)
Una copia en memoria cach del archivo metadata.db de la biblioteca de calibre. Esta clase tambin sirve como
un API multihilo para acceder a la base de datos. La copia en memoria se mantiene en forma normal para
maximizar el rendimiento.
SQLite se usa simplemente como una manera de leer y escribir eficientemente metadata.db. Toda la lgica de
lectura, clasificacin, bsqueda y almacenamiento en la memoria cach de las tablas est desarrallada de nuevo.
Esto fue necesario para obtener el mximo rendimiento y flexibilidad.
add_books(books, add_duplicates=True, apply_import_tags=True, preserve_uuid=False,
run_hooks=True, dbapi=None)
Aadir los libros especificados a la biblioteca. Los libros deben ser iterables de 2-tuplas, cada 2-tuplas de
la forma (mi, format_map) donde mi es un objeto de metadatos y format_map es un diccionario
en la forma {fmt: path_or_stream}, por ejemplo: {'EPUB':'/path/to/file.epub'}.
Devuelve un par de listas: ids, duplicados. ids contiene los identificadores de libros para todos los
libros de reciente creacin en la base de datos. duplicados contiene el :code: (mi, format_map) para
todos los libros que ya existen en la base de datos segn la sencilla deteccin heurstica de duplicados
utilizada por has_book() (pgina 293).
add_custom_book_data(name, val_map, delete_first=False)
Aadir datos para name donde val_map es un mapa de book_ids a valores. Si delete_first es
True, se eliminarn todos los datos almacenados previamente.
add_format(book_id, fmt, stream_or_path, replace=True, run_hooks=True, dbapi=None)
Agregar un formato al libro especificado. Devuelve True si el formato se aadi con xito.
Parmetros
replace Si es True, sustituye el formato existente; en caso contrario, si el formato ya
existe, devuelve False.
run_hooks Si es True, los complementos de tipo de archivo se ejecutarn sobre el
formato antes y despus de ser aadido.

1.12. Configurar un entorno de desarrollo de calibre 289


Manual de usuario de calibre, Versin 2.82.0

dbapi Solo para uso interno.


all_book_ids(type=<type frozenset>)
Conjunto fijo de todos los identificadores de libros conocidos.
all_field_for(field, book_ids, default_value=None)
Lo mismo que field_for, excepto que opera sobre mltiples libros a la vez.
all_field_ids(name)
Conjunto fijo de identificadores para todos los valores del campo name.
all_field_names(field)
Conjunto fijo de todos los nombres de campos (slo se debe utilizar para los campos de tipo varios-uno y
varios-varios)
author_data(author_ids=None)
Devuelve los datos del autor como un diccionario con claves: name, sort, link
Si no se encuentran autores con los identificadores especificados, se devuelve un diccionario vaco. Si
author_ids es None, se devuelven datos para todos los autores.
author_sort_from_authors(authors, key_func=<function lower>)
Dada una lista de autores, devolver el texto author_sort para los autores, prefiriendo el orden de autor
asociado con el autor sobre el texto calculado automticamente.
books_for_field(name, item_id)
Devuelve todos los libros relacionados con el elemento identificado por item_id, donde el elemento
pertenece al campo name.
El valor devuelto es un conjunto de identificadores de libros, o el conjunto vaco si el elemento o el campo
no existen.
copy_cover_to(book_id, dest, use_hardlink=False, report_file_size=None)
Copia la portada al objeto de tipo archivo dest. Devuelve False si no existe portada o dest es el mismo
archivo que la portada actual. dest tambin puede ser una ruta de acceso, en cuyo caso la portada se copia
en la ruta si y slo si la ruta es diferente de la actual ruta de acceso (considerando la posible distincin
entre maysculas y minsculas).
copy_format_to(book_id, fmt, dest, use_hardlink=False, report_file_size=None)
Copiar el formato fmt al objeto de tipo archivo dest. Si el formato especificado no existe, se presenta un
error NoSuchFormat. dest tambin puede ser una ruta de acceso, en cuyo caso el formato se copia en
la ruta si y slo si la ruta es diferente de la ruta de acceso actual (considerando la posible distincin entre
maysculas y minsculas).
cover(book_id, as_file=False, as_image=False, as_path=False)
Devuelve la imagen de portada o None. De manera predeterminada, devuelve la portada como una serie
de bytes.
ADVERTENCIA: Si se usa as_path, se copia la portada a un archivo temporal y se devuelve la ruta de
acceso al archivo temporal. Deber eliminar el archivo temporal cuando haya terminado con l.
Parmetros
as_file Si es True devuelve la imagen como un objeto de archivo abierto (un Spoo-
ledTemporaryFile)
as_image Si es True devuelve la imagen como un objeto QImage
as_path Si es True devuelve la imagen como una ruta de acceso a un archivo temporal
data_for_find_identical_books()
Devuelve datos que pueden usarse para implementar find_identical_books() (pgina 291) en un
proceso de trabajo sin acceso a la base de datos. Vase db.utils para una implementacin.

290 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

data_for_has_book()
Devuelve datos adecuados para has_book() (pgina 293). Puede usarse para implementar
has_book() (pgina 293) en un proceso de trabajo sin acceso a la base de datos.
delete_custom_book_data(name, book_ids=())
Borra los datos para name. De manera predeterminada se borran todos los datos, si slo desea borrar datos
de ciertos identificadores de libros, selelos como una lista de identificadores de libros.
embed_metadata(book_ids, only_fmts=None, report_error=None, report_progress=None)
Actualizar metadatos en todos los formatos de los book_ids especificados a los metadatos actuales de
la base de datos.
fast_field_for(field_obj, book_id, default_value=None)
Igual que field_for, salvo que se evita la bsqueda adicional para obtener el objeto de campo
field_for(name, book_id, default_value=None)
Devuelve el valor del campo name para el libro identificado por book_id. Si no existe tal libro o no tiene
un valor definido para el campo name o no existe dicho campo, entonces devuelve default_value.
default_value no se utiliza para title, title_sort, authors, author_sort y series_index. Esto se debe a
que stos siempre tienen valores en la base de datos. default_value se utiliza para todas las columnas
personalizadas.
El valor devuelto para los campos is_multiple es siempre una tupla, incluso cuando no se encuentran
valores (en otras palabras, default_value no tiene efecto). La excepcin son los identificadores para
los que el valor devuelto es siempre un diccionario. Las tuplas devueltas son siempre en orden de enlace,
es decir, el orden en el que fueron creadas.
field_ids_for(name, book_id)
Devuelve los identificadores (como una tupla) de los valores que el campo name tiene en el libro identifi-
cado por book_id. Si no hay valores, o tal libro o tal campo, se devuelve una tupla vaca.
find_identical_books(mi, search_restriction=u, book_ids=None)
Encuentra libros que contienen los autores en mi y tienen el mismo ttulo (la bsqueda de ttulo es
difusa). Vase tambin
format(book_id, fmt, as_file=False, as_path=False, preserve_filename=False)
Devuelve el formato de libro electrnico como una serie de bytes o None si el formato no existe, o no hay
permiso para escribir en el archivo de libro electrnico.
Parmetros
as_file Si es True el formato de libro electrnico se devuelve como un objeto de
archivo. Tenga en cuenta que el objeto es un archivo SpooledTemporaryFile, por lo que
si lo que quiere hacer es copiar el formato a otro archivo, utilice copy_format_to()
(pgina 290) en su lugar para mejorar el rendimiento.
as_path Copia el archivo de formato a un archivo temporal y devuelve la ruta de
acceso al archivo temporal.
preserve_filename Si es True y devuelve una ruta de acceso, el nombre de archivo
es el mismo que el utilizado en la biblioteca. Tenga en cuenta que, al utilizar este mtodo,
llamadas repetidas producen el mismo archivo temporal (que se vuelve a crear cada vez)
format_abspath(book_id, fmt)
Devuelve la ruta de acceso absoluta al archivo de libro electrnico de formato format. Casi nunca debe
usarlo, ya que rompe la filosofa multihilo de esta API. Use copy_format_to() (pgina 290).
Actualmente slo se usa en calibredb list, el visor, modificar libro, compare_format con formato original,
abrir con y los catlogos (va get_data_as_dict()).

1.12. Configurar un entorno de desarrollo de calibre 291


Manual de usuario de calibre, Versin 2.82.0

Aparte del visor, abrir con y el editor de libros, no creo que ningn otro realice ninguna operacin de
entrada o salida con el resultado de esta funcin.
format_hash(book_id, fmt)
Devuelve el cdigo de comprobacin para el formato y libro especificados. El tipo de cdigo de compro-
bacin es dependiente del motor, pero generalmente es SHA-256.
format_metadata(book_id, fmt, allow_cache=True, update_db=False)
Devuelve la ruta, el tamao y mtime para el formato especificado del libro especificado. No debe utilizar
la ruta a menos que sea absolutamente necesario, ya que el acceso directo rompe las garantas multihilo de
esta API. Use mtodo copy_format_to() en su lugar.
Parmetros
allow_cache Si es True se usan los valores almacenados en memoria, en caso contra-
rio se produce un acceso lento al sistema de archivos. Los valores en la memora podran
estar desfasados si se ha realizado algn acceso al sistema de archivos fuera de esta API.
update_db If True The max_size field of the database is updated for this book.
formats(book_id, verify_formats=True)
Devuelve una tupla con todos los formatos del libro especificado. Si verify_formats es True, se
verifica que los archivos existen en el disco.
get_categories(sort=uname, book_ids=None, already_fixed=None, first_letter_sort=False)
Usado internamente para implementer el exlorador de etiquetas
get_custom_book_data(name, book_ids=(), default=None)
Obtener datos para name. De manera predeterminada devuelve datos para todos los book_ids, pase una
lista de identificadores de libros si slo desea algunos dato. Devuelve un mapa de book_id a valores. Si un
valor particular no puede ser descodificado, utiliza el predeterminado.
get_id_map(field)
Devuelve un mapa de nmeros de identificacin a valores para el campo especificado. El campo debe ser
un campo de varios-uno o varios-varios, de lo contrario se presenta un ValueError.
get_ids_for_custom_book_data(name)
Devuelve el conjunto de identificadores de libros para los que name tiene datos.
get_item_id(field, item_name)
Devuelve el identificador del elemento para item_name (no distingue maysculas y minsculas)
get_item_ids(field, item_names)
Devuelve el identificador del elemento para item_name (no distingue maysculas y minsculas)
get_item_name(field, item_id)
Devuelve el nombre del elemento para el elemento especificado por item_id en el campo especificado.
Ver tambin get_id_map() (pgina 292).
get_metadata(book_id, get_cover=False, get_user_categories=True, cover_as_data=False)
Devuelve metadatos para el libro identificado por book_id como un objeto de calibre.ebooks.
metadata.book.base.Metadata (pgina 171). Tenga en cuenta que la lista de formatos no se veri-
fica. Si get_cover es True, se devuelve la portada, ya sea como una ruta de acceso a un archivo temporal
o como mi.cover, o si cover_as_data es True como mi.cover_data.
get_next_series_num_for(series, field=useries, current_indices=False)
Devuelva el siguiente ndice la serie especificada, teniendo en cuenta las distintas preferencias que contro-
lan la generacin del siguiente nmero de serie.
Parmetros

292 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

field El campo de tipo serie (de manera predeterminada la columna predefinida se-
ries)
current_indices Si es True, devuelve un mapa de book_id al valor actual de
series_index.
get_proxy_metadata(book_id)
Como get_metadata() (pgina 292) excepto que devuelve un objeto ProxyMetadata que slo lee
valores desde la base de datos bajo demanda. Es mucho ms veloz que get_metadata() (pgina 292)
cuando slo se quiere acceder a un pequeo nmero de campos desde el objeto metatados devuelto.
get_usage_count_by_id(field)
Devuelve un mapa de identificador a cuenta de uso para todos los valores del campo especificado, que
debe ser un campo de tipo varios-uno o varios-varios.
has_book(mi)
Devuelve True si y slo si la base de datos contiene una entrada con el mismo ttulo que el objeto Metadata
pasado como argumento. La comparacin no distingue maysculas y minsculas. Vase tambin
has_format(book_id, fmt)
Devuelve True si y slo si el formato existe en el disco.
has_id(book_id)
Devuelve True si y slo si el book_id especificado existe en la base de datos.
init()
Inicializar esta copia en cach con datos del motor.
multisort(fields, ids_to_sort=None, virtual_fields=None)
Devuelve una lista de identificadores de libros ordenados. Si ids_to_sort es None, devuelve todos los
identificadores de libros.
los campos deben ser una lista de 2-tuplas de la forma (field_name, ascending=True|False). El campo ms
significativo es la primera 2-tupla.
pref(name, default=None)
Devuelve el valor de la preferencia especificada o el valor especificado como default si la preferencia
no se ha establecido.
read_backup(book_id)
Devuelve la copia de seguridad de los metadatos OPF para el libro como una serie de bytes o None si no
existe dicha copia de seguridad.
remove_books(book_ids, permanent=False)
Eliminar los libros especificados por los book_ids de la base de datos y eliminar sus archivos de formato.
Si permanent es False, no se eliminan los archivos de formato.
remove_formats(formats_map, db_only=False)
Eliminar los formatos especificados de los libros especificados.
Parmetros
formats_map Un mapa de book_id a una lista de formatos para eliminar del libro.
db_only Si es True, slo se elimina el registro del formato de la base de datos, no se
borra el archivo de formato del sistema de archivos.
remove_items(field, item_ids, restrict_to_book_ids=None)
Elimina todos los elementos del campo especificado con los id especificados. Devuelve el conjunto de id
de libro afectados. restrict_to_book_ids es un conjunto de id de libros opcional. Si se especifica,
slo se eliminarn los elementos de estos libros.

1.12. Configurar un entorno de desarrollo de calibre 293


Manual de usuario de calibre, Versin 2.82.0

rename_items(field, item_id_to_new_name_map, change_index=True, restrict_to_book_ids=None)


Cambiar el nombre de elementos de un campo de tipo varios-uno o varios-varios, como etiquetas o series.
Parmetros
change_index Al cambiarel nombre de un campo del tipo serie cambiar tambin los
valores de series_index.
restrict_to_book_ids Un conjunto de id de libros opcional sobre los que se
realiza el cambio de nombre, de manera predeterminada incluye todos los libros.
restore_book(book_id, mi, last_modified, path, formats)
Restaurar la entrada del libro en la base de datos de un libro que ya existe en el sistema de archivos.
restore_original_format(book_id, original_fmt)
Restaurar el formato especificado a partir del ORIGINAL_FORMAT previamente guardado, si lo hubiera.
Devuelve True en caso de xito. El ORIGINAL_FORMAT se elimina despus de una restauracin correcta.
safe_read_lock
Un bloqueo de lectura segura es un bloqueo que no hace nada si el hilo ya tiene un bloqueo de escritura,
de lo contrario, agrega un bloqueo de lectura. Esto es necesario para evitar DowngradeLockErrors, lo
que puede suceder cuando se actualiza la cach de bsqueda en presencia de columnas compuestas. Al
actualizar la cach de bsqueda se crea un bloqueo exclusivo, pero al buscar en una columna compuesta
tiene lugar la lectura de valores de campo va ProxyMetadata, que trata de obtener un bloqueo compartido.
Puede haber otras situaciones que desencadenen esto.
Esta propiedad devuelve un nuevo objeto de bloqueo en cada acceso. Este objeto de bloqueo no es
recursivo (por rendimiento) y slo debe ser utilizado en una sentencia with como with cache.
safe_read_lock:, de lo contrario habr problemas.
save_original_format(book_id, fmt)
Guardar una copia del formato especificado como ORIGINAL_FORMAT, sustituyendo cualquier ORIGI-
NAL_FORMAT existente.
search(query, restriction=u, virtual_fields=None, book_ids=None)
Buscar en la base de datos con la consulta especificada, devolviendo un conjunto de identificadores de
libros que coincidan.
Parmetros
restriction Una restriccin que se aade como Y a la consulta especificada. Tenga
en cuenta que las restricciones se almacenan en cach, por lo tanto, la bsqueda de a Y b
ser ms lenta que a con una restriccin b.
virtual_fields Usado internamente (campos virtuales tales como on_device
para bsquedas).
book_ids Si no es None, un conjunto de identificadores de libros en los que buscar en
vez de buscar en todos los libros.
set_conversion_options(options, fmt=uPIPE)
options debe ser un mapa de la forma {book_id:opciones de conversin}
set_cover(book_id_data_map)
Establecer la portada de este libro. data puede ser un objeto de tipo QImage, QPixmap, archivo o una
serie de bytes. Tambin puede ser None, en cuyo caso se elimina cualquier portada existente.
set_field(name, book_id_to_val_map, allow_case_change=True, do_path_update=True)
Establecer los valores del campo especificado por name. Devuelve el conjunto de todos los identificadores
de libros afectados por el cambio.
Parmetros

294 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

book_id_to_val_map Mapa de book_ids a los valores que se deben aplicar.


allow_case_change Si es True, se cambiar el uso de maysculas y minsculas de
campos de tipo varios-uno o varios-varios. Por ejemplo, si un libro tiene la etiqueta eti-
queta1 y establece la etiqueta de otro libro a Etiqueta1, entonces los libros de ambos
tendr la etiqueta Etiqueta1 si allow_case_change es True, de lo contrario ambos
tendrn la etiqueta etiqueta1.
do_path_update Usado internamente, nunca debe cambiarse.
set_metadata(book_id, mi, ignore_errors=False, force_changes=False, set_title=True,
set_authors=True, allow_case_change=False)
Aplicar metadatos para el libro id a partir del objeto Metadata mi
Setting force_changes=True will force set_metadata to update fields even if mi contains empty values. In
this case, None is distinguished from empty. If mi.XXX is None, the XXX is not replaced, otherwise
it is. The tags, identifiers, and cover attributes are special cases. Tags and identifiers cannot be set to None
so they will always be replaced if force_changes is true. You must ensure that mi contains the values you
want the book to have. Covers are always changed if a new cover is provided, but are never deleted. Also
note that force_changes has no effect on setting title or authors.
set_pref(name, val)
Establecer la preferencia especificada al el valor especificado. Ver tambin pref() (pgina 293).
tags_older_than(tag, delta=None, must_have_tag=None, must_have_authors=None)
Devuelve los identificadores de todos los libros que tienen la etiqueta tag que son anteriores al momento
especificado. La comparacin de etiquetas no distingue entre maysculas y minsculas.
Parmetros
delta Un objeto de tipo timedelta o None. Si es None, se devuelven todos los identifi-
cadores con etiqueta.
must_have_tag Si no es None, la lista de coincidencias se limitar a los libros que
tengan esta etiqueta
must_have_authors Una lista de autores. Si no es None, la lista de coincidencias
se limitar a los libros que tengan estos autores (no distingue maysculas y minsculas).
user_categories_for_books(book_ids, proxy_metadata_map=None)
Devuelve las categoras de usuario de los libros especificados. proxy_metadata_map es opcional y
es til para aumentar el rendimiento en contextos donde ya existe un objeto ProxyMetadata de los libros.
Debe ser un mapa de book_ids a los objetos ProxyMetadata correspondientes.

Documentacin de la API para las herramientas de modificacin de libros electrnicos

Las herramientas de modificacin de libros electrnicos consisten en un objeto calibre.ebooks.oeb.polish.


container.Container (pgina 296) que representa un libro como coleccin de archivos HTML y de recursos, y
varias herramientas que pueden usarse para realizar diversas operaciones sobre el contenedor. Todas las herramientas
estn bajo la forma de funciones a nivel de mdulo, en los distintos mdulos calibre.ebooks.oeb.polish.*.
Se obtiene un objeto contenedor para un libro en una ruta como esta:

from calibre.ebooks.oeb.polish.container import get_container


container = get_container('Path to book file', tweak_mode=True)

Si est escribiendo un complemento para el editor de libros electrnicos, puede obtener el contenedor actual para el
libro que se est modificando de este modo:

1.12. Configurar un entorno de desarrollo de calibre 295


Manual de usuario de calibre, Versin 2.82.0

from calibre.gui2.tweak_book import current_container


container = current_container()
if container is None:
report_error # No book has been opened yet

El objeto contenedor

class calibre.ebooks.oeb.polish.container.Container(rootpath, opfpath, log, clo-


ne_data=None)
Un contenedor representa un Open EBook como un directorio con archivos ms un archivo opf. Hay varios
conceptos importantes:
El directorio raz. sta es la base del libro electrnico. Todos los archivos del libro se encuentran en este
directorio o en sus subdirectorios.
Nombres: Son rutas a los archivos del libro con respecto al directorio raz. Siempre contienen separadores
POSIX, sin comillas. Pueden considerarse como identificadores cannicos para los archivos del libro. La
mayora de los mtodos en el objeto contenedor trabajan con nombres. Los nombres estn siempre en la
forma normalizada Unicode NFC.
Clones: el objeto contenedor soporta clonacin eficiente en disco, que se utiliza para implementar hitos en
el editor de libros electrnicos. Para que esto funcione, nunca se debe acceder a los archivos del sistema
de archivos directamente. En su lugar, debe usarse raw_data() (pgina 298) o open() (pgina 298)
para leer o escribir en los archivos que integran el libro.
Al convertir entre hrefs y nombres utilice los mtodos suministrados por esta clase, stos asumen que todas las
hrefs estn entre comillas.
abspath_to_name(fullpath, root=None)
Convierte una ruta absoluta en un nombre cannico con respecto a root
Parmetros root El directorio base. De manera predeterminada se usa la raz del objeto
contenedor.
add_file(name, data, media_type=None, spine_index=None, modify_name_if_needed=False, pro-
cess_manifest_item=None)
Aade un archivo a este contenedor. Se crean automticamente las entradas para el archivo en el manifiesto
OPF y el lomo (si el archivo es un documento de texto)
add_name_to_manifest(name, process_manifest_item=None)
Aade una entrada al manifiesto para un archivo con el nombre especificado. Devuelve el id del manifiesto.
apply_unique_properties(name, *properties)
Se asegura de que las propiedades especificadas (properties) ests establecidas slo en el elemento del
manifiesto identificado por name. Pueda usarse None como name para eliminar la propiedad de todos los
elementos.
book_type = uoeb
El tipo de libro (epub para archivos EPUB o azw3 para archivos AZW3)
commit(outpath=None, keep_parsed=False)
Commit all dirtied parsed objects to the filesystem and write out the ebook file at outpath.
Parmetros
output The path to write the saved ebook file to. If None, the path of the original book
file is used.
keep_parsed If True the parsed representations of committed items are kept in the
cache.

296 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

commit_item(name, keep_parsed=False)
Almacena un objeto procesado en el disco (se serializa y escribe en el archivo subyacente). Si
keep_parsed es True la representacin procesada se mantiene en el cach. Vase tambin: parsed()
(pgina 298)
dirty(name)
Marca el objeto analizado correspondiente a nombre como sucio. Vase tambin parsed() (pgi-
na 298).
exists(name)
True si y slo si existe un archivo o directorio que corresponde con el nombre cannico name. Tenga
en cuenta que esta funcin sufre de las limitaciones del sistema operativo subyacente, en particular la
distincin o no entre maysculas y minsculas. En un sistema operative que no distingue entre maysculas
y minsculas, esta funcin devuelve True incluso si name y el archivo en el sistema de archivos difieren
en maysculas y minsculas. Vase tambin has_name() (pgina 297).
filesize(name)
Devuelve el tamao en bytes del archivo representado por el nombre cannico name. Gestiona automti-
camente objectos procesados modificados. Vase tambin parsed() (pgina 298).
generate_item(name, id_prefix=None, media_type=None, unique_href=True)
Aade un elemento al manifiesto con href derivado del name dado. Asegura la unicidad del href y del id
automticamente. Devuelve el elemento generado.
get_file_path_for_processing(name, allow_modification=True)
Parecido a open() pero devuelve una ruta de archivo en lugar de un objeto de archivo abierto.
guide_type_map
Mapa de tipo de gua a nombre cannico
has_name(name)
Devuelve True si y slo si existe un archivo con el mismo nombre cannico que el name especificado. A
diferencia de exists() (pgina 297), este mtodo siempre distingue maysculas y minsculas.
href_to_name(href, base=None)
Convierte un href (relativo a base) a un nombre. base debe ser un nombre o None, en cuyo caso se
usa self.root.
insert_into_xml(parent, item, index=None)
Inserta item en parent (o lo aade al final si index es None), arreglando la sangra. Slo funciona con
elementos con cierre incorporado.
is_dir = False
Si este contenedor representa un libro descomprimido (un directorio)
iterlinks(name, get_line_numbers=True)
Itera sobre todos los enlaces en name. Si get_line_numbers es True, los resultados producidos son
de la forma (enlace, nmero_de_lnea, desplazamiento). Donde nmero_de_lnea es nmero de lnea en
el que aparece el enlace y desplazamiente es el nmero de caracteres desde el inicio de la lnea. Tenga
en cuenta que el desplazamiento puede de hecho abarcar varias lneas si no es cero.
make_name_unique(name)
Se asegura de que name no existe ya en este libro. Si existe, devuelve una versin modificada que no
exista.
manifest_has_name(name)
Devuelve True si el manifiesto tiene una entrada correspondiente a name
manifest_id_map
Correspondencia entre id del manifiesto y nombres cannicos

1.12. Configurar un entorno de desarrollo de calibre 297


Manual de usuario de calibre, Versin 2.82.0

manifest_items_of_type(predicate)
Los nombres de todos los elementos del manifiesto cuyo media-type coincide con predicate. predicate
puede ser un conjunto, una lista, un texto o una funcin que toma un nico argumento, que se ejecutar
con el media-type.
manifest_items_with_property(property_name)
Todos los elementos del manifiesto que tienen la propiedad especificada
manifest_type_map
Correspondencia entre media-type del manifiesto y lista de nombres cannicos de cada media-type
mi
Los metadatos de este libro como un objeto Metadata. Tenga en cuenta que este objeto se construye al
vuelo cada vez que se solicita la propiedad, por lo que debe usarse con moderacin.
name_to_abspath(name)
Convierte un nombre cannico en una ruta de acceso absoluta acorde al sistema operativo
name_to_href(name, base=None)
Convierte un nombre a un href relativo a la base, que debe ser un nombre o None, en cuyo caso self.root
se toma como la base
names_that_must_not_be_changed
Conjunto de nombres que nunca deben cambiarse. Depende del formato de archivo del libro electrnico.
names_that_must_not_be_removed
Conjunto de nombres que nunca deben borrarse del contenedor. Depende del formato de archivo del libro
electrnico.
names_that_need_not_be_manifested
Conjunto de nombres que pueden estar ausentes del manifiesto. Depende del formato de archivo del libro
electrnico.
open(name, mode=urb)
Abre el archivo apuntado por name para lectura o escritura directa. Tenga en cuenta que esto almacenar
el archivo si se modifica y lo eliminar del cach de procesamiento. Debe acabar con este archivo antes de
acceder de nuevo a la versin procesada u ocurrirn cosas malas.
opf
El archivo OPF analizado
opf_get_or_create(name)
Mtodo prctico que devuelve el primer elemento XML con el nombre especificado (name) o lo crea bajo
el elemento opf:package y luego lo devuelve, si no existe previamente.
opf_version
La versin establecida en el elemento <package> del OPF
opf_version_parsed
La versin establecida en el elemento <package> del OPF, como una tupla de enteros
opf_xpath(expr)
Mtodo prctico para evaluar una expresin XPath en el archivo OPF, tiene los prefijos de espacio de
nombres opf: y dc: predefinidos.
parsed(name)
Devuelve una representacin procesada del archivo especificado por name. Para archivos HTML y XML,
devuelve un rbol lxml. Para archivos CSS devuelve una hoja de estilos cssutils. Tenga en cuenta que los
objetos procesados se mantienen en cach para mejorar el rendimiento. Si hace algn cambio en el objeto
procesado, debe ejecutar dirty() (pgina 297) para que el contenedor sepa que tiene que actualizar el
cach. Vase tambin replace() (pgina 299).

298 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

raw_data(name, decode=True, normalize_to_nfc=True)


Devuelve el contenido en bruto correspondiente al archivo especificado por su name
Parmetros
decode Si es True y el archivo tiene un tipo mime basado en texto, lo descodifica y
devuelve un objeto unicode en lugar de bytes en bruto.
normalize_to_nfc Si es True el objeto Unicode devuelto se normaliza a la norma
NFC, como requieren los formatos de archivo EPUB y AZW3.
relpath(path, base=None)
Convierte una ruta absoluta (con separadores de sistema operativo) a una ruta relativa a base (de manera
predeterminada, self.root). La ruta relativa no es un nombre. Use abspath_to_name() (pgina 296)
para obtener un nombre.
remove_from_spine(spine_items, remove_if_no_longer_in_spine=True)
Elimina los elementos especificados (por nombre cannico) del lomo. Si
remove_if_no_longer_in_spine es True, los elementos tambin se borran del libro, no
slo del lomo.
remove_from_xml(item)
Elimina item del elemento superior, arreglando la sangra (slo funciona con elementos con cierre incor-
porado)
remove_item(name, remove_from_guide=True)
Elimina el elemento identificado por name de este contenedor. Esto elimina todas las referencias al ele-
mento del manifiesto, gua y lomo del OPF, as como de cualquier cach interno.
rename(current_name, new_name)
Cambia el nombre de un archivo de current_name a new_name. Cambia automticamente la base de
todos los enlaces en el archivo si cambia el directorio en que se encuentra el archivo. Tenga en cuenta, no
obstante, que no se actualizan los enlaces en otros archivos que puedan hacer referencia a ste. Esto es as
por motivos de rendimiento, tales actualizaciones deben hacerse una sola vez en masa.
replace(name, obj)
Sustituye el objeto procesado correspondiente a name por obj, que debe ser un objeto similar, es decir,
un rbol lxml para archivos HTML o XML o una hoja de estilos cssutils para archivos CSS.
replace_links(name, replace_func)
Sustituye todos los enlaces en name usando replace_func, que debe ser un objeto ejecutable que
acepte un URL y devuelva el URL sustituido. Tambin debe tener un atributo replaced que sea True si
se ha efectuado alguna sustitucin. Pueden crearse tales objetos ejecutables de forma prctica usando las
clases LinkReplacer y LinkRebaser.
serialize_item(name)
Convierte un objeto analizado (identificado por su nombre cannico) en una cadena de bytes. Vea
parsed() (pgina 298).
set_spine(spine_items)
Establece el lomo como spine_items, donde spine_items es un objeto iterable de la forma (nom-
bre, lineal). Se producir un error si alguno de los nombres no est presente en el manifiesto.
spine_items
Un iterador que proporciona la ruta de acceso para cada elemento del lomo de los libros. Vase tambin:
spine_iter (pgina 299) y spine_items (pgina 299).
spine_iter
Un iterador que proporciona elemento, nombre, es_lineal para cada elemento del lomo de los libros.
elemento es el elemento lxml, nombre es el nombre cannico del archivo y es_lineal es True
si el elemento es lineal. Vase tambin: spine_names (pgina 299) y spine_items (pgina 299).

1.12. Configurar un entorno de desarrollo de calibre 299


Manual de usuario de calibre, Versin 2.82.0

spine_names
Un iterador que proporciona nombre y es_lineal para cada elemento del lomo de los libros. Vase tambin:
spine_iter (pgina 299) y spine_items (pgina 299).

Gestionar los archivos dentro de un contenedor

calibre.ebooks.oeb.polish.replace.replace_links(container, link_map,
frag_map=<function <lambda>>,
replace_in_opf=False)
Sustituye enlaces a archivos en el contenedor. Iterar sobre todos los archivos en el contenedor y cambiar los
enlaces especificados en ellos.
Parmetros
link_map Un mapa de nombre cannico antiguo a nombre cannico nuevo. Por ejemplo:
{'images/antiguo.png': 'images/nuevo.png'}
frag_map Un objeto ejecutable que toma dos argumentos (name, anchor) y de-
vuelve un punto de anclaje. Esto es til si tiene que cambiar los puntos de anclaje en archivos
HTML. De manera predeterminada, no hace nada.
replace_in_opf Si es False, no se sustituyen los enlaces en el archivo OPF.
calibre.ebooks.oeb.polish.replace.rename_files(container, file_map)
Cambia el nombre de archivos en el contenedor, actualizando automticamente actualizando todos los enlaces a
que apunten a ellos.
Parmetros file_map Un mapo de nombres cannicos antiguo a nombre cannico nuevo, por
ejemplo: {'text/capitulo1.html': 'capitulo1.html'}.
calibre.ebooks.oeb.polish.replace.get_recommended_folders(container, names)
Devuelve las carpetas recomendadas para los nombres de archivo dados. La recomendacin se basa en dnde se
encuentra la mayora de los archivos del mismo tipo en el contenedor. Si no hay archivos de un tipo concreto, la
carpeta recomendada es la que contiene el archivo OPF.

Presentacin mejorada y correccin automtica de errores

calibre.ebooks.oeb.polish.pretty.fix_html(container, raw)
Corrige cualquier error de procesado en el HTML representado como un texto en raw. La correccin se realiza
usando el algoritmo de procesado HTML5.
calibre.ebooks.oeb.polish.pretty.fix_all_html(container)
Corrige cualquer error de procesado en todos los archivos HTML del contenedor. La correccin ser realiza
usando el algoritmo de procesado HTML5.
calibre.ebooks.oeb.polish.pretty.pretty_html(container, name, raw)
Redistribuye el HTML representado como un texto en raw
calibre.ebooks.oeb.polish.pretty.pretty_css(container, name, raw)
Redistribuye el CSS representado como un texto en raw
calibre.ebooks.oeb.polish.pretty.pretty_xml(container, name, raw)
Redistribuye el XML representado como un texto en raw. Si name es el nombre del OPF, se realiza una
redistribucin adicional especfica para OPF.
calibre.ebooks.oeb.polish.pretty.pretty_all(container)
Redistribuye todos los archivos HTML, CSS y XML del contenedor

300 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

Gestionar las sobrecubiertas de los libros

calibre.ebooks.oeb.polish.jacket.remove_jacket(container)
Elimina una sobrecubierta existente, si la hay. Devuelve False si no se encontr una sobrecubierta.
calibre.ebooks.oeb.polish.jacket.add_or_replace_jacket(container)
Crea una nueva sobrecubierta a partir de los metadatos del libro o sustituye una sobrecubierta existente. Devuelve
True si se sustutuy una sobrecubierta existente.

Dividir y combinar archivos

calibre.ebooks.oeb.polish.split.split(container, name, loc_or_xpath, before=True, to-


tals=None)
Divide el archivo especificado por name en la ubicacin especificada por loc_or_xpath. La divisin migra
automticamente todos los enlaces y referencias a los archivos afectados.
Parmetros
loc_or_xpath Debera ser una expresin XPath como //h:div[@id=dividir_aqui].
Tambin puede ser un loc, que se usa internamente para ejecutar la divisin en el panel de
vista previa.
before Si es True, la divisin ocurre antes del elemento identificado, en caso contrario
ocurre despus.
totals Usado internamente
calibre.ebooks.oeb.polish.split.multisplit(container, name, xpath, before=True)
Split the specified file at multiple locations (all tags that match the specified XPath expression). See also:
split() (pgina 301). Splitting automatically migrates all links and references to the affected files.
Parmetros before Si es True las divisiones se producen antes del elemento identificado, en
caso contrario se producen despus.
calibre.ebooks.oeb.polish.split.merge(container, category, names, master)
Combina los archivos especificados en un nico archivo, migrando automticamente todos los enlaces y refe-
rencias a los archivos afectados. Los archivos deben ser todos HTML o todos CSS.
Parmetros
category Debe ser 'text' para archivos HTML o 'styles' para archivos CSS
names La lista de archivos para combinar.
master Cul de los archivos combinados es el archivo maestro, es decir, el archivo que
se mantendr despus del proceso.

Gestionar portadas

calibre.ebooks.oeb.polish.cover.set_cover(container, cover_path, report=None, op-


tions=None)
Establece la imagen a la que apunta cover_path como la portada del libro.
Parmetros
cover_path La ruta absoluta a un archivo de imagen o el nombre cannico de una
imagen en el libro. Si usa una imagen del libro, debe especificar tambin options, ver
ms abajo.

1.12. Configurar un entorno de desarrollo de calibre 301


Manual de usuario de calibre, Versin 2.82.0

report Un objeto ejecutable opcional que toma un solo argumento. Se ejecutar con
informacin sobre las tareas que se llevan a cabo.
options None o un diccionario que controla cmo se establece la portada. El diccionario
puede tener entradas: keep_aspect: True o False (mantiene la proporcin de las portadas en
EPUB) no_svg: True o False (Usa un envoltorio de portada SVG en la pgina de ttulo
EPUB) existing: True o False (cover_path se refiere a una imagen existente en el libro)
calibre.ebooks.oeb.polish.cover.mark_as_cover(container, name)
Marca la imagen especificada como la imagen de portada.
calibre.ebooks.oeb.polish.cover.mark_as_titlepage(container, name, mo-
ve_to_start=True)
Marca el archivo HTML especificado como la pgina de ttulo del EPUB.
Parmetros move_to_start Si es True, el archivo HTML se mueve al inicio del lomo

Trabajar con CSS

calibre.ebooks.oeb.polish.fonts.change_font(container, old_name, new_name=None)


Cambia un tipo de letra de old_name a new_name. Modifica todas las ocasiones en que aparece el tipo de
letra en hojas de estilo, etiquetas estilo y atributos de estilo. Si old_name se refiere a un tipo de letr incrustado,
se elimina. Puede establecer new_name como None para eliminar el tipo de letra en lugar de cambiarlo.
calibre.ebooks.oeb.polish.css.remove_unused_css(container, report=None, remo-
ve_unused_classes=False, mer-
ge_rules=False)
Elimina todas las reglas CSS no utilizadas en el libro. Una regla CSS sin usar es una que no coincide con ningn
contenido real.
Parmetros
report Un objeto ejecutable opcional que toma un nico argumento. Se ejecuta con
informacin sobre las operaciones que se lleva a cabo.
remove_unused_classes Si es True, tambin se eliminan los atributos de clase del
HTML que no correspondan a ninguna regla CSS.
merge_rules Si es True, se combinan las reglas con selectores idnticos.
calibre.ebooks.oeb.polish.css.filter_css(container, properties, names=())
Elimina las propiedades CSS especificadas de todas las reglas CSS del libro.
Parmetros
properties Conjunto de propiedades para eliminar. Por ejemplo:
{'font-family', 'color'}.
names Los archivos en los que se eliminan las propiedades. De manera predeterminada,
todos los archivos HTML y CSS del libro.

Trabajar con el ndice

calibre.ebooks.oeb.polish.toc.from_xpaths(container, xpaths)
Genera un ndice a partir de una lista de expresiones XPath. Cada expresin de la lista corresponde a un nivel del
ndice generado. Por ejemplo: ['//h:h1', '//h:h2', '//h:h3'] generar un ndice de tres niveles a
partir de las etiquetas <h1>, <h2> y <h3>.

302 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

calibre.ebooks.oeb.polish.toc.from_links(container)
Genera un ndice a partir de los enlaces del libro.
calibre.ebooks.oeb.polish.toc.from_files(container)
Genera un ndice a partir de los archivos del libro.
calibre.ebooks.oeb.polish.toc.create_inline_toc(container, title=None)
Crea un ndice explcito (HTML) a partir de un ndice NCX existente.
Parmetros title El ttulo de este ndice.

Herramienta para modificar libro

class calibre.gui2.tweak_book.plugin.Tool
Bases: object La clase bsica para las herramientas individuales en un complemento para modificar libros.
Algunos miembros tiles incluyen:
self.plugin: Una referencia al objeto calibre.customize.Plugin (pgina 212) al que perte-
nece esta herramienta.
self. boss (pgina 303)
self. gui (pgina 303)
Mtodos que deben reemplazarse en subclases:
create_action() (pgina 304)
register_shortcut() (pgina 303)
name = None
Especifique un nombre nico que se utilizar como clave
allowed_in_toolbar = True
Si es True, el usuario puede colocar esta herramienta en la barra de herramientas de complementos
allowed_in_menu = True
Si es True, el usuario puede colocar esta herramienta en el men de complementos
toolbar_button_popup_mode = udelayed
El modo emergente para el men (si lo hay) del botn de la barra de herramientas. Los valores posibles
son delayed, instant, button
boss
El objeto calibre.gui2.tweak_book.boss.Boss (pgina 304). Utilizado para controlar la inter-
faz de usuario.
gui
La ventana principal de la interfaz del usuario
current_container
Devuelve el objeto calibre.ebooks.oeb.polish.container.Container (pgina 296) ac-
tual que representa el libro que se est modificando.
register_shortcut(qaction, unique_name, default_keys=(), short_text=None, description=None,
**extra_data)
Registra un atajo de teclado que ejecutar la qaction especificada. Este atajo de teclado ser automti-
camente personalizable por el usuario a travs de la seccin Teclado de las preferencias del editor.
Parmetros
qaction Un objeto QAction, se ejecutar cuando el usuario pulse la combinacin de
teclas configurada.

1.12. Configurar un entorno de desarrollo de calibre 303


Manual de usuario de calibre, Versin 2.82.0

unique_name Un nombre nico para este atajo o accin. Se usar internamente, no


debe coincidir con ninguna otra accin de este complemento.
default_keys Una lista de los atajos de teclado predeterminados. Si no se especifica,
no se establecer ningn atajo predeterminado. Si los atajos especificados estn en conflic-
to on atajos predefinidos, con la configuracin del usuario o con otros complementos, no se
tendrn en cuenta. En tal caso, los usuarios tendrn que configurar los atajos manualmente
a travs de las Preferencias. Por ejemplo: default_keys=('Ctrl+J', 'F9').
short_text Una breve descripcin opcional de esta accin. Si no se especifica, se
utilizar el texto de la QAction.
description Una descripcin opcional ms extensa de esta accin, que se usar en
la entrada de las preferencias para este acceso directo.
create_action(for_toolbar=True)
Crea una QAction que se aadir a la barra de herramientas de complementos, o al men de complementos
segn el valor de for_toolbar. Por ejemplo:

def create_action(self, for_toolbar=True):


ac = QAction(get_icons('myicon.png'), 'Do something')
if for_toolbar:
# We want the toolbar button to have a popup menu
menu = QMenu()
ac.setMenu(menu)
menu.addAction('Do something else')
subaction = menu.addAction('And another')

# Register a keyboard shortcut for this toolbar action be


# careful to do this for only one of the toolbar action or
# the menu action, not both.
self.register_shortcut(ac, 'some-unique-name', default_keys=('Ctrl+K',
))
return ac

Ver tambin:
Mtodo register_shortcut() (pgina 303).

Controlar la interfaz de usuario del editor

La interfaz de usuario del editor de libros electrnicos est controlada por un nico objeto global Boss. Este objeto
posee varios mtodos tiles que pueden utilizarse en el cdigo de los complementos para realizar diversas tareas.
class calibre.gui2.tweak_book.boss.Boss(parent, notify=None)

add_savepoint(msg)
Crea un hito de restauracin con el nombre especificado como msg
apply_container_update_to_gui(mark_as_modified=True)
Actualiza todos los componentes de la interfaz para reflejar los datos ms recientes del contenedor de libro
actual.
Parmetros mark_as_modified Si es True, el libro se marcar como modificado, por lo
que al usuario se le pedir guardarlo al salir.
close_editor(name)
Cierra el editor que est modificando el archivo especificado por name

304 Captulo 1. Secciones


Manual de usuario de calibre, Versin 2.82.0

commit_all_editors_to_container()
Almacena todos los cambios que el usuario haya hecho en los archivos abiertos en el contenedor. Debe
ejecutar este mtodo antes de realizar cualquier accin sobre el contenedor actual.
currently_editing
Devuelve el nombre del archivo que est se est modificando actualmente o None si no se est modificando
ningn archivo.
edit_file(name, syntax=None, use_template=None)
Abre el archivo especificado por name en un editor
Parmetros
syntax El tipo de medio del archivo, por ejemplo: 'text/html'. Si no se especifica,
se supone uno a partir de la extensin del archivo.
use_template Una plantilla con la que inicializar el editor abierto
open_book(path=None, edit_file=None, clear_notify_data=True, open_folder=False)
Abre el libro electrnico en path para modificarlo. Mostrar un error si el libro electrnico no est en un
formato compatible o si el libro actual tiene cambios sin guardar.
Parmetros edit_file El nombre de un archivo dentro del libro abierto para iniciar la
modificacin. Tambin puede ser una lista de nombres.
rewind_savepoint()
Deshace la creacin anterior de un hito de restauracin, til si crea un hito y luego cancela la operacin sin
ningn cambio
save_book()
Guarda el libro. El guardado se lleva a cabo en segundo plano
set_modified()
Marca el libro como modificado
show_current_diff(allow_revert=True, to_container=None)
Muestra los cambios en el libro desde el estado del ltimo hito
Parmetros
allow_revert Si es True el cuadro de diferencias tendr un botn que le permitir al
usuario deshacer los cambios
to_container Un objeto de contenedor para compararlo con el contenedor actual. Si
es None, se usar el contenedor del hito anterior.
show_editor(name)
Muestra el editor que est modificando el archivo especificado por name
sync_preview_to_editor()
Sincroniza la posicin del panel de previsualizacin con la posicin actual del cursor en el editor.

1.13 Glosario

RSS RSS (Really Simple Syndication) es un formato agregador de contenido de Internet que se utiliza para publicar
contenido actualizado con frecuencia, como artculos de noticias, blogs, etc. Se trata de un formato que es
especialmente adecuado para ser ledo por una mquina y, por lo tanto, es la forma ideal de obtener contenido
de Internet en un libro electrnico. Hay muchos otros formatos de origen en uso en el Internet y calibre entiende
la mayora de ellos. En particular, tiene un buen soporte para el formato ATOM, que se utiliza comnmente en
blogs.

1.13. Glosario 305


Manual de usuario de calibre, Versin 2.82.0

frmula Una frmula es un conjunto de instrucciones que le dicen a calibre cmo convertir una fuente de noticias
en lnea, como una revista o un blog, en un libro electrnico. Una frmula es esencialmente cdigo Python115 .
Como tal, es capaz de convertir fuentes de noticias arbitrariamente complejas en libros electrnicos. En el nivel
ms simple, es slo un conjunto de variables, como el URL, que le dan a calibre suficiente informacin para
acudir a Internet y descargar la noticia.
HTML HTML (Hyper Text Mark-Up Language) es un subconjunto del Lenguaje de Marcado Generalizado Estndar
(SGML) para la publicacin electrnica, es el estndar usado para la World Wide Web.
CSS CSS (Cascading Style Sheets) es un lenguaje usado para describir cmo debe mostrarse un documento HTML
(estilo visual).
API API (Application Programming Interface) es la interfaz de cdigo fuente que proporciona una biblioteca para
recibir las peticiones que se le hagan por parte de programas informticos.
LRF LRF El formato de libro electrnico usado por los lectores de libros electrnicos SONY.
URL URL (Uniform Resource Locator) por ejemplo: http://ejemplo.com
regexp Las expresiones regulares proporcionan un medio conciso y flexible para identificar fragmentos de texto
de inters, como caracteres particulares, palabras o patrones de caracteres. Vea la sintaxis de las expresiones
regulares utilizadas en Python aqu116 (en ingls).

115 https://www.python.org
116 https://docs.python.org/2.7/library/re.html

306 Captulo 1. Secciones


ndice de Mdulos Python

c
calibre.customize, 212
calibre.customize.conversion, 219
calibre.db.cache, 289
calibre.devices.interface, 222
calibre.ebooks.metadata.book.base, 171
calibre.ebooks.metadata.sources.base,
217
calibre.ebooks.oeb.polish.container, 295
calibre.ebooks.oeb.polish.cover, 301
calibre.ebooks.oeb.polish.css, 302
calibre.ebooks.oeb.polish.jacket, 301
calibre.ebooks.oeb.polish.pretty, 300
calibre.ebooks.oeb.polish.replace, 300
calibre.ebooks.oeb.polish.split, 301
calibre.ebooks.oeb.polish.toc, 302
calibre.gui2.tweak_book.boss, 304
calibre.gui2.tweak_book.plugin.Tool, 303
calibre.utils.formatter_functions, 159
calibre.web.feeds.news, 46

307
Manual de usuario de calibre, Versin 2.82.0

308 ndice de Mdulos Python


ndice

Symbols book-producer
add ebook-convert opcin en lnea de comandos, 273
calibredb-add opcin en lnea de comandos, 258 book-producer, -k
add-plugin, -a ebook-meta opcin en lnea de comandos, 274
calibre-customize opcin en lnea de comandos, 250 build-plugin, -b
add-simple-plugin calibre-customize opcin en lnea de comandos, 250
calibre-debug opcin en lnea de comandos, 251 categories, -r
all calibredb-list_categories opcin en lnea de coman-
calibredb-backup_metadata opcin en lnea de co- dos, 263
mandos, 264 category
calibredb-export opcin en lnea de comandos, 260 ebook-meta opcin en lnea de comandos, 274
append, -a change-justification
calibredb-set_custom opcin en lnea de comandos, ebook-convert opcin en lnea de comandos, 268
262 chapter
as-opf ebook-convert opcin en lnea de comandos, 271
calibredb-show_metadata opcin en lnea de coman- chapter-mark
dos, 259 ebook-convert opcin en lnea de comandos, 271
ascending command, -c
calibredb-list opcin en lnea de comandos, 256 calibre-debug opcin en lnea de comandos, 251
asciiize comments
ebook-convert opcin en lnea de comandos, 267 ebook-convert opcin en lnea de comandos, 273
attachment, -a comments, -c
calibre-smtp opcin en lnea de comandos, 255 ebook-meta opcin en lnea de comandos, 274
author-sort compress-images, -i
ebook-convert opcin en lnea de comandos, 272 ebook-polish opcin en lnea de comandos, 276
ebook-meta opcin en lnea de comandos, 274 continue
authors ebook-viewer opcin en lnea de comandos, 277
ebook-convert opcin en lnea de comandos, 272 cover
authors, -a ebook-convert opcin en lnea de comandos, 273
calibredb-add opcin en lnea de comandos, 257 ebook-meta opcin en lnea de comandos, 275
ebook-meta opcin en lnea de comandos, 274 cover, -c
fetch-ebook-metadata opcin en lnea de comandos, calibredb-add opcin en lnea de comandos, 257
278 ebook-polish opcin en lnea de comandos, 276
auto-reload fetch-ebook-metadata opcin en lnea de comandos,
calibre-server opcin en lnea de comandos, 253 278
base-dir, -d csv, -c
web2disk opcin en lnea de comandos, 280 calibredb-check_library opcin en lnea de coman-
base-font-size dos, 263
ebook-convert opcin en lnea de comandos, 268 calibredb-list_categories opcin en lnea de coman-
dos, 263

309
Manual de usuario de calibre, Versin 2.82.0

customize-plugin dont-asciiize
calibre-customize opcin en lnea de comandos, 250 calibredb-export opcin en lnea de comandos, 260
daemonize dont-download-stylesheets
calibre-server opcin en lnea de comandos, 253 web2disk opcin en lnea de comandos, 280
date, -d dont-notify-gui
ebook-meta opcin en lnea de comandos, 275 opcin en lnea de comandos, 256
debug-device-driver, -d dont-output-resources
calibre-debug opcin en lnea de comandos, 251 lrf2lrs opcin en lnea de comandos, 278
debug-javascript dont-replace
ebook-viewer opcin en lnea de comandos, 277 calibredb-add_format opcin en lnea de comandos,
debug-pipeline, -d 258
ebook-convert opcin en lnea de comandos, 273 dont-save-cover
default-programs calibredb-export opcin en lnea de comandos, 260
calibre-debug opcin en lnea de comandos, 251 dont-split-on-page-breaks
delay ebook-convert opcin en lnea de comandos, 267
web2disk opcin en lnea de comandos, 280 dont-update-metadata
detach calibredb-export opcin en lnea de comandos, 260
calibre opcin en lnea de comandos, 250 dont-write-opf
ebook-edit opcin en lnea de comandos, 274 calibredb-export opcin en lnea de comandos, 260
ebook-viewer opcin en lnea de comandos, 277 duplicate-links-in-toc
details, -d ebook-convert opcin en lnea de comandos, 272
calibredb-custom_columns opcin en lnea de co- duplicates, -d
mandos, 262 calibredb-add opcin en lnea de comandos, 257
develop edit-book, -t
calibre-server opcin en lnea de comandos, 253 calibre-debug opcin en lnea de comandos, 251
diff embed-all-fonts
calibre-debug opcin en lnea de comandos, 251 ebook-convert opcin en lnea de comandos, 268
disable-dehyphenate embed-font-family
ebook-convert opcin en lnea de comandos, 270 ebook-convert opcin en lnea de comandos, 268
disable-delete-blank-paragraphs embed-fonts, -e
ebook-convert opcin en lnea de comandos, 270 ebook-polish opcin en lnea de comandos, 276
disable-fix-indents empty, -e
ebook-convert opcin en lnea de comandos, 270 calibredb-add opcin en lnea de comandos, 257
disable-font-rescaling enable-heuristics
ebook-convert opcin en lnea de comandos, 268 ebook-convert opcin en lnea de comandos, 270
disable-format-scene-breaks enable-plugin
ebook-convert opcin en lnea de comandos, 270 calibre-customize opcin en lnea de comandos, 250
disable-hyphenation encoding
lrfviewer opcin en lnea de comandos, 279 web2disk opcin en lnea de comandos, 280
disable-italicize-common-cases encryption-method, -e
ebook-convert opcin en lnea de comandos, 270 calibre-smtp opcin en lnea de comandos, 255
disable-markup-chapter-headings epub-flatten
ebook-convert opcin en lnea de comandos, 270 ebook-convert opcin en lnea de comandos, 267
disable-plugin epub-inline-toc
calibre-customize opcin en lnea de comandos, 250 ebook-convert opcin en lnea de comandos, 267
disable-remove-fake-margins epub-toc-at-end
ebook-convert opcin en lnea de comandos, 271 ebook-convert opcin en lnea de comandos, 267
disable-renumber-headings exec-file, -e
ebook-convert opcin en lnea de comandos, 270 calibre-debug opcin en lnea de comandos, 251
disable-unwrap-lines expand-css
ebook-convert opcin en lnea de comandos, 270 ebook-convert opcin en lnea de comandos, 268
display explode-book, -x
calibredb-add_custom_column opcin en lnea de calibre-debug opcin en lnea de comandos, 251
comandos, 261 export-all-calibre-data

310 ndice
Manual de usuario de calibre, Versin 2.82.0

calibre-debug opcin en lnea de comandos, 252 lrs2lrf opcin en lnea de comandos, 279
extra-css opcin en lnea de comandos, 256
ebook-convert opcin en lnea de comandos, 268 web2disk opcin en lnea de comandos, 280
extract-to html-unwrap-factor
ebook-convert opcin en lnea de comandos, 267 ebook-convert opcin en lnea de comandos, 270
field, -f identifier
calibredb-set_metadata opcin en lnea de coman- ebook-meta opcin en lnea de comandos, 275
dos, 259 identifier, -I
fields calibredb-add opcin en lnea de comandos, 257
calibredb-catalog opcin en lnea de comandos, 261 ids, -i
fields, -f calibredb-catalog opcin en lnea de comandos, 261
calibredb-list opcin en lnea de comandos, 256 ignore
filter-css calibredb-add opcin en lnea de comandos, 258
ebook-convert opcin en lnea de comandos, 268 ignore-plugins
filter-regexp calibre opcin en lnea de comandos, 250
web2disk opcin en lnea de comandos, 280 ignore_extensions, -e
flow-size calibredb-check_library opcin en lnea de coman-
ebook-convert opcin en lnea de comandos, 267 dos, 263
font-size-mapping ignore_names, -n
ebook-convert opcin en lnea de comandos, 268 calibredb-check_library opcin en lnea de coman-
for-machine dos, 263
calibredb-list opcin en lnea de comandos, 256 import-calibre-data
force, -f calibre-debug opcin en lnea de comandos, 252
calibredb-remove_custom_column opcin en lnea index, -i
de comandos, 262 ebook-meta opcin en lnea de comandos, 275
fork, -f input-encoding
calibre-smtp opcin en lnea de comandos, 254 ebook-convert opcin en lnea de comandos, 266
formats input-profile
calibredb-export opcin en lnea de comandos, 260 ebook-convert opcin en lnea de comandos, 266
from-opf insert-blank-line
ebook-meta opcin en lnea de comandos, 275 ebook-convert opcin en lnea de comandos, 268
full-screen, -f insert-blank-line-size
ebook-viewer opcin en lnea de comandos, 277 ebook-convert opcin en lnea de comandos, 268
get-cover insert-metadata
ebook-meta opcin en lnea de comandos, 275 ebook-convert opcin en lnea de comandos, 271
gui, -g inspect-mobi, -m
calibre-debug opcin en lnea de comandos, 252 calibre-debug opcin en lnea de comandos, 252
gui-debug is-multiple
calibre-debug opcin en lnea de comandos, 252 calibredb-add_custom_column opcin en lnea de
help, -h comandos, 262
calibre opcin en lnea de comandos, 250 isbn
calibre-customize opcin en lnea de comandos, 250 ebook-convert opcin en lnea de comandos, 273
calibre-debug opcin en lnea de comandos, 252 ebook-meta opcin en lnea de comandos, 275
calibre-server opcin en lnea de comandos, 253 isbn, -i
calibre-smtp opcin en lnea de comandos, 254 calibredb-add opcin en lnea de comandos, 257
ebook-convert opcin en lnea de comandos, 266 fetch-ebook-metadata opcin en lnea de comandos,
ebook-edit opcin en lnea de comandos, 274 278
ebook-meta opcin en lnea de comandos, 275 item_count, -i
ebook-polish opcin en lnea de comandos, 276 calibredb-list_categories opcin en lnea de coman-
ebook-viewer opcin en lnea de comandos, 277 dos, 263
fetch-ebook-metadata opcin en lnea de comandos, jacket, -j
278 ebook-polish opcin en lnea de comandos, 276
lrf2lrs opcin en lnea de comandos, 278 keep-ligatures
lrfviewer opcin en lnea de comandos, 279 ebook-convert opcin en lnea de comandos, 269

ndice 311
Manual de usuario de calibre, Versin 2.82.0

language calibre-server opcin en lnea de comandos, 253


ebook-convert opcin en lnea de comandos, 273 max-recursions, -r
language, -l web2disk opcin en lnea de comandos, 280
ebook-meta opcin en lnea de comandos, 275 max-toc-links
languages, -l ebook-convert opcin en lnea de comandos, 272
calibredb-add opcin en lnea de comandos, 257 minimum-line-height
level1-toc ebook-convert opcin en lnea de comandos, 269
ebook-convert opcin en lnea de comandos, 272 new-server
level2-toc calibre-debug opcin en lnea de comandos, 252
ebook-convert opcin en lnea de comandos, 272 no-chapters-in-toc
level3-toc ebook-convert opcin en lnea de comandos, 272
ebook-convert opcin en lnea de comandos, 272 no-default-epub-cover
library-path ebook-convert opcin en lnea de comandos, 267
opcin en lnea de comandos, 256 no-svg-cover
limit ebook-convert opcin en lnea de comandos, 267
calibredb-list opcin en lnea de comandos, 257 no-update-check
limit, -l calibre opcin en lnea de comandos, 250
calibredb-search opcin en lnea de comandos, 265 one-book-per-directory, -1
line-height calibredb-add opcin en lnea de comandos, 258
ebook-convert opcin en lnea de comandos, 269 only-formats, -f
line-width, -w calibredb-embed_metadata opcin en lnea de co-
calibredb-list opcin en lnea de comandos, 257 mandos, 265
linearize-tables open-at
ebook-convert opcin en lnea de comandos, 269 ebook-viewer opcin en lnea de comandos, 277
list-fields, -l opf, -o
calibredb-set_metadata opcin en lnea de coman- ebook-polish opcin en lnea de comandos, 276
dos, 259 fetch-ebook-metadata opcin en lnea de comandos,
list-plugins, -l 278
calibre-customize opcin en lnea de comandos, 251 outbox, -o
list-recipes calibre-smtp opcin en lnea de comandos, 254
ebook-convert opcin en lnea de comandos, 266 output, -o
localhost, -l lrf2lrs opcin en lnea de comandos, 278
calibre-smtp opcin en lnea de comandos, 254 lrs2lrf opcin en lnea de comandos, 279
lrf-bookid output-profile
ebook-meta opcin en lnea de comandos, 275 ebook-convert opcin en lnea de comandos, 266
lrs page-breaks-before
lrs2lrf opcin en lnea de comandos, 279 ebook-convert opcin en lnea de comandos, 271
margin-bottom password
ebook-convert opcin en lnea de comandos, 269 calibre-server opcin en lnea de comandos, 253
margin-left password, -p
ebook-convert opcin en lnea de comandos, 269 calibre-smtp opcin en lnea de comandos, 255
margin-right paths
ebook-convert opcin en lnea de comandos, 269 calibre-debug opcin en lnea de comandos, 252
margin-top pidfile
ebook-convert opcin en lnea de comandos, 269 calibre-server opcin en lnea de comandos, 253
match-regexp port
web2disk opcin en lnea de comandos, 280 calibre-smtp opcin en lnea de comandos, 255
max-cover port, -p
calibre-server opcin en lnea de comandos, 253 calibre-server opcin en lnea de comandos, 253
max-files, -n prefer-metadata-cover
web2disk opcin en lnea de comandos, 280 ebook-convert opcin en lnea de comandos, 271
max-opds-items prefix
calibre-server opcin en lnea de comandos, 253 calibredb-list opcin en lnea de comandos, 257
max-opds-ungrouped-items preserve-cover-aspect-ratio

312 ndice
Manual de usuario de calibre, Versin 2.82.0

ebook-convert opcin en lnea de comandos, 267 search, -s


pretty-print calibredb-catalog opcin en lnea de comandos, 261
ebook-convert opcin en lnea de comandos, 267 calibredb-list opcin en lnea de comandos, 257
profile search-replace
lrfviewer opcin en lnea de comandos, 279 ebook-convert opcin en lnea de comandos, 270
pubdate separator
ebook-convert opcin en lnea de comandos, 273 calibredb-list opcin en lnea de comandos, 257
publisher separator, -s
ebook-convert opcin en lnea de comandos, 273 calibredb-list_categories opcin en lnea de coman-
publisher, -p dos, 264
ebook-meta opcin en lnea de comandos, 275 series
quote, -q ebook-convert opcin en lnea de comandos, 273
calibredb-list_categories opcin en lnea de coman- series, -s
dos, 264 calibredb-add opcin en lnea de comandos, 257
raise-window ebook-meta opcin en lnea de comandos, 275
ebook-viewer opcin en lnea de comandos, 277 series-index
rating ebook-convert opcin en lnea de comandos, 273
ebook-convert opcin en lnea de comandos, 273 series-index, -S
rating, -r calibredb-add opcin en lnea de comandos, 258
ebook-meta opcin en lnea de comandos, 275 shutdown-running-calibre, -s
read-metadata-from-opf, -m calibre opcin en lnea de comandos, 250
ebook-convert opcin en lnea de comandos, 273 calibre-debug opcin en lnea de comandos, 252
really-do-it, -r single-dir
calibredb-restore_database opcin en lnea de co- calibredb-export opcin en lnea de comandos, 260
mandos, 263 smarten-punctuation
recurse, -r ebook-convert opcin en lnea de comandos, 269
calibredb-add opcin en lnea de comandos, 258 smarten-punctuation, -p
reinitialize-db ebook-polish opcin en lnea de comandos, 276
calibre-debug opcin en lnea de comandos, 252 sort-by
relay, -r calibredb-catalog opcin en lnea de comandos, 261
calibre-smtp opcin en lnea de comandos, 255 calibredb-list opcin en lnea de comandos, 257
remove-first-image sr1-replace
ebook-convert opcin en lnea de comandos, 271 ebook-convert opcin en lnea de comandos, 271
remove-jacket sr1-search
ebook-polish opcin en lnea de comandos, 276 ebook-convert opcin en lnea de comandos, 271
remove-paragraph-spacing sr2-replace
ebook-convert opcin en lnea de comandos, 269 ebook-convert opcin en lnea de comandos, 271
remove-paragraph-spacing-indent-size sr2-search
ebook-convert opcin en lnea de comandos, 269 ebook-convert opcin en lnea de comandos, 271
remove-plugin, -r sr3-replace
calibre-customize opcin en lnea de comandos, 251 ebook-convert opcin en lnea de comandos, 271
remove-unused-css, -u sr3-search
ebook-polish opcin en lnea de comandos, 276 ebook-convert opcin en lnea de comandos, 271
replace-scene-breaks start-in-tray
ebook-convert opcin en lnea de comandos, 270 calibre opcin en lnea de comandos, 250
replace-whitespace start-reading-at
calibredb-export opcin en lnea de comandos, 260 ebook-convert opcin en lnea de comandos, 272
report, -r subject, -s
calibredb-check_library opcin en lnea de coman- calibre-smtp opcin en lnea de comandos, 255
dos, 263 subset-embedded-fonts
restriction ebook-convert opcin en lnea de comandos, 269
calibre-server opcin en lnea de comandos, 253 subset-font, -f
run-plugin, -r calibre-debug opcin en lnea de comandos, 252
calibre-debug opcin en lnea de comandos, 252 subset-fonts, -f

ndice 313
Manual de usuario de calibre, Versin 2.82.0

ebook-polish opcin en lnea de comandos, 276 calibre-server opcin en lnea de comandos, 254
tags username, -u
ebook-convert opcin en lnea de comandos, 273 calibre-smtp opcin en lnea de comandos, 255
ebook-meta opcin en lnea de comandos, 275 verbose
tags, -T ebook-polish opcin en lnea de comandos, 277
calibredb-add opcin en lnea de comandos, 258 lrf2lrs opcin en lnea de comandos, 278
template lrfviewer opcin en lnea de comandos, 279
calibredb-export opcin en lnea de comandos, 260 lrs2lrf opcin en lnea de comandos, 279
test-build web2disk opcin en lnea de comandos, 280
calibre-debug opcin en lnea de comandos, 252 verbose, -v
thread-pool calibre opcin en lnea de comandos, 250
calibre-server opcin en lnea de comandos, 253 calibre-smtp opcin en lnea de comandos, 254
timefmt calibredb-catalog opcin en lnea de comandos, 261
calibredb-export opcin en lnea de comandos, 260 ebook-convert opcin en lnea de comandos, 273
timeout, -d fetch-ebook-metadata opcin en lnea de comandos,
fetch-ebook-metadata opcin en lnea de comandos, 278
278 version
timeout, -t calibre opcin en lnea de comandos, 250
calibre-server opcin en lnea de comandos, 253 calibre-customize opcin en lnea de comandos, 251
calibre-smtp opcin en lnea de comandos, 254 calibre-debug opcin en lnea de comandos, 252
web2disk opcin en lnea de comandos, 280 calibre-server opcin en lnea de comandos, 254
timestamp calibre-smtp opcin en lnea de comandos, 254
ebook-convert opcin en lnea de comandos, 273 ebook-convert opcin en lnea de comandos, 266
title ebook-edit opcin en lnea de comandos, 274
ebook-convert opcin en lnea de comandos, 273 ebook-meta opcin en lnea de comandos, 275
title, -t ebook-polish opcin en lnea de comandos, 277
calibredb-add opcin en lnea de comandos, 258 ebook-viewer opcin en lnea de comandos, 277
ebook-meta opcin en lnea de comandos, 275 fetch-ebook-metadata opcin en lnea de comandos,
fetch-ebook-metadata opcin en lnea de comandos, 278
278 lrf2lrs opcin en lnea de comandos, 278
title-sort lrfviewer opcin en lnea de comandos, 279
ebook-convert opcin en lnea de comandos, 273 lrs2lrf opcin en lnea de comandos, 279
ebook-meta opcin en lnea de comandos, 275 opcin en lnea de comandos, 256
to-dir web2disk opcin en lnea de comandos, 280
calibredb-export opcin en lnea de comandos, 260 viewer, -w
to-lowercase calibre-debug opcin en lnea de comandos, 252
calibredb-export opcin en lnea de comandos, 260 visual-debug
to-opf lrfviewer opcin en lnea de comandos, 279
ebook-meta opcin en lnea de comandos, 275 white-background
toc-filter lrfviewer opcin en lnea de comandos, 279
ebook-convert opcin en lnea de comandos, 272 width, -w
toc-threshold calibredb-list_categories opcin en lnea de coman-
ebook-convert opcin en lnea de comandos, 272 dos, 264
toc-title with-library
ebook-convert opcin en lnea de comandos, 267 calibre opcin en lnea de comandos, 250
transform-css-rules calibre-server opcin en lnea de comandos, 254
ebook-convert opcin en lnea de comandos, 269
unsmarten-punctuation A
ebook-convert opcin en lnea de comandos, 270 abort_article() (mtodo de cali-
url-prefix bre.web.feeds.news.BasicNewsRecipe), 46
calibre-server opcin en lnea de comandos, 254 abort_recipe_processing() (mtodo de cali-
use-auto-toc bre.web.feeds.news.BasicNewsRecipe), 46
ebook-convert opcin en lnea de comandos, 272 abspath_to_name() (mtodo de cali-
username bre.ebooks.oeb.polish.container.Container),

314 ndice
Manual de usuario de calibre, Versin 2.82.0

296 API, 306


accept_drag_move_event() (mtodo de cali- apply_container_update_to_gui() (mtodo de cali-
bre.gui2.actions.InterfaceAction), 233 bre.gui2.tweak_book.boss.Boss), 304
accept_enter_event() (mtodo de cali- apply_unique_properties() (mtodo de cali-
bre.gui2.actions.InterfaceAction), 233 bre.ebooks.oeb.polish.container.Container),
accepts_drops (atributo de cali- 296
bre.gui2.actions.InterfaceAction), 233 articles_are_obfuscated (atributo de cali-
action_add_menu (atributo de cali- bre.web.feeds.news.BasicNewsRecipe), 51
bre.gui2.actions.InterfaceAction), 233 ASK_TO_ALLOW_CONNECT (atributo de cali-
action_menu_clone_qaction (atributo de cali- bre.devices.interface.DevicePlugin), 223
bre.gui2.actions.InterfaceAction), 233 author (atributo de calibre.customize.Plugin), 212
action_spec (atributo de cali- author_data() (mtodo de calibre.db.cache.Cache), 290
bre.gui2.actions.InterfaceAction), 233 author_sort_from_authors() (mtodo de cali-
action_type (atributo de cali- bre.db.cache.Cache), 290
bre.gui2.actions.InterfaceAction), 233 auto_cleanup (atributo de cali-
add_annotation_to_library() (mtodo de cali- bre.web.feeds.news.BasicNewsRecipe), 51
bre.devices.usbms.device.Device), 231 auto_cleanup_keep (atributo de cali-
add_book() (mtodo de cali- bre.web.feeds.news.BasicNewsRecipe), 51
bre.devices.interface.BookList), 230 auto_repeat (atributo de cali-
add_books() (mtodo de calibre.db.cache.Cache), 289 bre.gui2.actions.InterfaceAction), 232
add_books_to_metadata() (mtodo de clase de cali- auto_trim_covers (atributo de cali-
bre.devices.interface.DevicePlugin), 226 bre.ebooks.metadata.sources.base.Source),
add_custom_book_data() (mtodo de cali- 217
bre.db.cache.Cache), 289
add_file() (mtodo de cali- B
bre.ebooks.oeb.polish.container.Container), BasicNewsRecipe (clase en calibre.web.feeds.news), 46
296 BCD (atributo de calibre.devices.interface.DevicePlugin),
add_format() (mtodo de calibre.db.cache.Cache), 289 222
add_name_to_manifest() (mtodo de cali- book_type (atributo de cali-
bre.ebooks.oeb.polish.container.Container), bre.ebooks.oeb.polish.container.Container),
296 296
add_or_replace_jacket() (en el mdulo cali- BookList (clase en calibre.devices.interface), 229
bre.ebooks.oeb.polish.jacket), 301 books() (mtodo de cali-
add_savepoint() (mtodo de cali- bre.devices.interface.DevicePlugin), 226
bre.gui2.tweak_book.boss.Boss), 304 books_for_field() (mtodo de calibre.db.cache.Cache),
add_toc_thumbnail() (mtodo de cali- 290
bre.web.feeds.news.BasicNewsRecipe), 47 boss (atributo de calibre.gui2.tweak_book.plugin.Tool),
adeify_images() (mtodo de clase de cali- 303
bre.web.feeds.news.BasicNewsRecipe), 47 Boss (clase en calibre.gui2.tweak_book.boss), 304
all_book_ids() (mtodo de calibre.db.cache.Cache), 290 BuiltinAdd (clase en calibre.utils.formatter_functions),
all_field_for() (mtodo de calibre.db.cache.Cache), 290 159
all_field_ids() (mtodo de calibre.db.cache.Cache), 290 BuiltinAnd (clase en calibre.utils.formatter_functions),
all_field_keys() (mtodo de cali- 160
bre.ebooks.metadata.book.base.Metadata), BuiltinApproximateFormats (clase en cali-
172 bre.utils.formatter_functions), 161
all_field_names() (mtodo de calibre.db.cache.Cache), BuiltinAssign (clase en calibre.utils.formatter_functions),
290 168
all_non_none_fields() (mtodo de cali- BuiltinAuthorLinks (clase en cali-
bre.ebooks.metadata.book.base.Metadata), bre.utils.formatter_functions), 161
172 BuiltinAuthorSorts (clase en cali-
allowed_in_menu (atributo de cali- bre.utils.formatter_functions), 162
bre.gui2.tweak_book.plugin.Tool), 303 BuiltinBooksize (clase en cali-
allowed_in_toolbar (atributo de cali- bre.utils.formatter_functions), 162
bre.gui2.tweak_book.plugin.Tool), 303

ndice 315
Manual de usuario de calibre, Versin 2.82.0

BuiltinCapitalize (clase en cali- BuiltinListIntersection (clase en cali-


bre.utils.formatter_functions), 169 bre.utils.formatter_functions), 166
BuiltinCmp (clase en calibre.utils.formatter_functions), BuiltinListitem (clase en cali-
168 bre.utils.formatter_functions), 165
BuiltinContains (clase en cali- BuiltinListRe (clase en calibre.utils.formatter_functions),
bre.utils.formatter_functions), 164 167
BuiltinCount (clase en calibre.utils.formatter_functions), BuiltinListReGroup (clase en cali-
166 bre.utils.formatter_functions), 167
BuiltinCurrentLibraryName (clase en cali- BuiltinListSort (clase en cali-
bre.utils.formatter_functions), 162 bre.utils.formatter_functions), 167
BuiltinCurrentLibraryPath (clase en cali- BuiltinListUnion (clase en cali-
bre.utils.formatter_functions), 162 bre.utils.formatter_functions), 167
BuiltinDaysBetween (clase en cali- BuiltinLookup (clase en cali-
bre.utils.formatter_functions), 160 bre.utils.formatter_functions), 165
BuiltinDivide (clase en calibre.utils.formatter_functions), BuiltinLowercase (clase en cali-
159 bre.utils.formatter_functions), 169
BuiltinEval (clase en calibre.utils.formatter_functions), BuiltinMultiply (clase en cali-
168 bre.utils.formatter_functions), 159
BuiltinField (clase en calibre.utils.formatter_functions), BuiltinNot (clase en calibre.utils.formatter_functions),
162 160
BuiltinFinishFormatting (clase en cali- BuiltinOndevice (clase en cali-
bre.utils.formatter_functions), 160 bre.utils.formatter_functions), 163
BuiltinFirstMatchingCmp (clase en cali- BuiltinOr (clase en calibre.utils.formatter_functions), 160
bre.utils.formatter_functions), 169 BuiltinPrint (clase en calibre.utils.formatter_functions),
BuiltinFirstNonEmpty (clase en cali- 168
bre.utils.formatter_functions), 165 BuiltinRawField (clase en cali-
BuiltinFormatDate (clase en cali- bre.utils.formatter_functions), 163
bre.utils.formatter_functions), 160 BuiltinRawList (clase en cali-
BuiltinFormatNumber (clase en cali- bre.utils.formatter_functions), 163
bre.utils.formatter_functions), 161 BuiltinRe (clase en calibre.utils.formatter_functions), 169
BuiltinFormatsModtimes (clase en cali- BuiltinReGroup (clase en cali-
bre.utils.formatter_functions), 162 bre.utils.formatter_functions), 170
BuiltinFormatsPaths (clase en cali- BuiltinSelect (clase en calibre.utils.formatter_functions),
bre.utils.formatter_functions), 162 166
BuiltinFormatsSizes (clase en cali- BuiltinSeriesSort (clase en cali-
bre.utils.formatter_functions), 163 bre.utils.formatter_functions), 164
BuiltinHasCover (clase en cali- BuiltinShorten (clase en cali-
bre.utils.formatter_functions), 163 bre.utils.formatter_functions), 170
BuiltinHumanReadable (clase en cali- BuiltinStrcat (clase en calibre.utils.formatter_functions),
bre.utils.formatter_functions), 161 170
BuiltinIdentifierInList (clase en cali- BuiltinStrcatMax (clase en cali-
bre.utils.formatter_functions), 165 bre.utils.formatter_functions), 170
BuiltinIfempty (clase en cali- BuiltinStrcmp (clase en calibre.utils.formatter_functions),
bre.utils.formatter_functions), 164 169
BuiltinInList (clase en calibre.utils.formatter_functions), BuiltinStrInList (clase en cali-
165 bre.utils.formatter_functions), 166
BuiltinLanguageCodes (clase en cali- BuiltinStrlen (clase en calibre.utils.formatter_functions),
bre.utils.formatter_functions), 163 170
BuiltinLanguageStrings (clase en cali- BuiltinSubitems (clase en cali-
bre.utils.formatter_functions), 163 bre.utils.formatter_functions), 167
BuiltinListDifference (clase en cali- BuiltinSublist (clase en calibre.utils.formatter_functions),
bre.utils.formatter_functions), 166 167
BuiltinListEquals (clase en cali- BuiltinSubstr (clase en calibre.utils.formatter_functions),
bre.utils.formatter_functions), 166 170

316 ndice
Manual de usuario de calibre, Versin 2.82.0

BuiltinSubtract (clase en cali- edit-book, -t, 251


bre.utils.formatter_functions), 159 exec-file, -e, 251
BuiltinSwapAroundComma (clase en cali- explode-book, -x, 251
bre.utils.formatter_functions), 171 export-all-calibre-data, 252
BuiltinSwitch (clase en calibre.utils.formatter_functions), gui, -g, 252
165 gui-debug, 252
BuiltinTemplate (clase en cali- help, -h, 252
bre.utils.formatter_functions), 168 import-calibre-data, 252
BuiltinTest (clase en calibre.utils.formatter_functions), inspect-mobi, -m, 252
164 new-server, 252
BuiltinTitlecase (clase en cali- paths, 252
bre.utils.formatter_functions), 169 reinitialize-db, 252
BuiltinToday (clase en calibre.utils.formatter_functions), run-plugin, -r, 252
160 shutdown-running-calibre, -s, 252
BuiltinTransliterate (clase en cali- subset-font, -f, 252
bre.utils.formatter_functions), 171 test-build, 252
BuiltinUppercase (clase en cali- version, 252
bre.utils.formatter_functions), 169 viewer, -w, 252
BuiltinUserCategories (clase en cali- calibre-server opcin en lnea de comandos
bre.utils.formatter_functions), 164 auto-reload, 253
BuiltinVirtualLibraries (clase en cali- daemonize, 253
bre.utils.formatter_functions), 164 develop, 253
help, -h, 253
C max-cover, 253
Cache (clase en calibre.db.cache), 289 max-opds-items, 253
cached_cover_url_is_reliable (atributo de cali- max-opds-ungrouped-items, 253
bre.ebooks.metadata.sources.base.Source), password, 253
217 pidfile, 253
calibre opcin en lnea de comandos port, -p, 253
detach, 250 restriction, 253
help, -h, 250 thread-pool, 253
ignore-plugins, 250 timeout, -t, 253
no-update-check, 250 url-prefix, 254
shutdown-running-calibre, -s, 250 username, 254
start-in-tray, 250 version, 254
verbose, -v, 250 with-library, 254
version, 250 calibre-smtp opcin en lnea de comandos
with-library, 250 attachment, -a, 255
calibre-customize opcin en lnea de comandos encryption-method, -e, 255
add-plugin, -a, 250 fork, -f, 254
build-plugin, -b, 250 help, -h, 254
customize-plugin, 250 localhost, -l, 254
disable-plugin, 250 outbox, -o, 254
enable-plugin, 250 password, -p, 255
help, -h, 250 port, 255
list-plugins, -l, 251 relay, -r, 255
remove-plugin, -r, 251 subject, -s, 255
version, 251 timeout, -t, 254
calibre-debug opcin en lnea de comandos username, -u, 255
add-simple-plugin, 251 verbose, -v, 254
command, -c, 251 version, 254
debug-device-driver, -d, 251 calibre.customize (mdulo), 212
default-programs, 251 calibre.customize.conversion (mdulo), 219
diff, 251 calibre.db.cache (mdulo), 289

ndice 317
Manual de usuario de calibre, Versin 2.82.0

calibre.devices.interface (mdulo), 222 calibredb-export opcin en lnea de comandos


calibre.ebooks.metadata.book.base (mdulo), 171 all, 260
calibre.ebooks.metadata.sources.base (mdulo), 217 dont-asciiize, 260
calibre.ebooks.oeb.polish.container (mdulo), 295 dont-save-cover, 260
calibre.ebooks.oeb.polish.cover (mdulo), 301 dont-update-metadata, 260
calibre.ebooks.oeb.polish.css (mdulo), 302 dont-write-opf, 260
calibre.ebooks.oeb.polish.jacket (mdulo), 301 formats, 260
calibre.ebooks.oeb.polish.pretty (mdulo), 300 replace-whitespace, 260
calibre.ebooks.oeb.polish.replace (mdulo), 300 single-dir, 260
calibre.ebooks.oeb.polish.split (mdulo), 301 template, 260
calibre.ebooks.oeb.polish.toc (mdulo), 302 timefmt, 260
calibre.gui2.tweak_book.boss (mdulo), 304 to-dir, 260
calibre.gui2.tweak_book.plugin.Tool (mdulo), 303 to-lowercase, 260
calibre.utils.formatter_functions (mdulo), 159 calibredb-list opcin en lnea de comandos
calibre.web.feeds.news (mdulo), 46 ascending, 256
calibredb-add opcin en lnea de comandos fields, -f, 256
add, 258 for-machine, 256
authors, -a, 257 limit, 257
cover, -c, 257 line-width, -w, 257
duplicates, -d, 257 prefix, 257
empty, -e, 257 search, -s, 257
identifier, -I, 257 separator, 257
ignore, 258 sort-by, 257
isbn, -i, 257 calibredb-list_categories opcin en lnea de comandos
languages, -l, 257 categories, -r, 263
one-book-per-directory, -1, 258 csv, -c, 263
recurse, -r, 258 item_count, -i, 263
series, -s, 257 quote, -q, 264
series-index, -S, 258 separator, -s, 264
tags, -T, 258 width, -w, 264
title, -t, 258 calibredb-remove_custom_column opcin en lnea de co-
calibredb-add_custom_column opcin en lnea de coman- mandos
dos force, -f, 262
display, 261 calibredb-restore_database opcin en lnea de comandos
is-multiple, 262 really-do-it, -r, 263
calibredb-add_format opcin en lnea de comandos calibredb-search opcin en lnea de comandos
dont-replace, 258 limit, -l, 265
calibredb-backup_metadata opcin en lnea de comandos calibredb-set_custom opcin en lnea de comandos
all, 264 append, -a, 262
calibredb-catalog opcin en lnea de comandos calibredb-set_metadata opcin en lnea de comandos
fields, 261 field, -f, 259
ids, -i, 261 list-fields, -l, 259
search, -s, 261 calibredb-show_metadata opcin en lnea de comandos
sort-by, 261 as-opf, 259
verbose, -v, 261 can_be_disabled (atributo de calibre.customize.Plugin),
calibredb-check_library opcin en lnea de comandos 213
csv, -c, 263 CAN_DO_DEVICE_DB_PLUGBOARD (atributo de ca-
ignore_extensions, -e, 263 libre.devices.interface.DevicePlugin), 222
ignore_names, -n, 263 can_get_multiple_covers (atributo de cali-
report, -r, 263 bre.ebooks.metadata.sources.base.Source),
calibredb-custom_columns opcin en lnea de comandos 217
details, -d, 262 can_handle() (mtodo de cali-
calibredb-embed_metadata opcin en lnea de comandos bre.devices.interface.DevicePlugin), 224
only-formats, -f, 265

318 ndice
Manual de usuario de calibre, Versin 2.82.0

can_handle_windows() (mtodo de cali- bre.web.feeds.news.BasicNewsRecipe), 51


bre.devices.interface.DevicePlugin), 224 compress_news_images_auto_size (atributo de cali-
CAN_SET_METADATA (atributo de cali- bre.web.feeds.news.BasicNewsRecipe), 51
bre.devices.interface.DevicePlugin), 222 compress_news_images_max_size (atributo de cali-
canonicalize_internal_url() (mtodo de cali- bre.web.feeds.news.BasicNewsRecipe), 51
bre.web.feeds.news.BasicNewsRecipe), 47 config_help_message (atributo de cali-
capabilities (atributo de cali- bre.ebooks.metadata.sources.base.Source),
bre.ebooks.metadata.sources.base.Source), 217
217 config_widget (atributo de cali-
card_prefix() (mtodo de cali- bre.customize.PreferencesPlugin), 235
bre.devices.interface.DevicePlugin), 225 config_widget() (mtodo de calibre.customize.Plugin),
CatalogPlugin (clase en calibre.customize), 216 213
category (atributo de cali- config_widget() (mtodo de clase de cali-
bre.customize.PreferencesPlugin), 235 bre.devices.interface.DevicePlugin), 227
category_order (atributo de cali- ConfigWidgetBase (clase en calibre.gui2.preferences),
bre.customize.PreferencesPlugin), 235 236
center_navbar (atributo de cali- ConfigWidgetInterface (clase en cali-
bre.web.feeds.news.BasicNewsRecipe), 51 bre.gui2.preferences), 235
change_font() (en el mdulo cali- Container (clase en calibre.ebooks.oeb.polish.container),
bre.ebooks.oeb.polish.fonts), 302 296
changed_signal (atributo de cali- contains(), 145
bre.gui2.preferences.ConfigWidgetInterface), conversion_options (atributo de cali-
235 bre.web.feeds.news.BasicNewsRecipe), 51
clean_downloaded_metadata() (mtodo de cali- convert() (mtodo de cali-
bre.ebooks.metadata.sources.base.Source), bre.customize.conversion.InputFormatPlugin),
217 220
cleanup() (mtodo de cali- convert() (mtodo de cali-
bre.web.feeds.news.BasicNewsRecipe), 47 bre.customize.conversion.OutputFormatPlugin),
CLI (clase en calibre.devices.usbms.cli), 231 221
cli_main() (mtodo de calibre.customize.Plugin), 214 copy_cover_to() (mtodo de calibre.db.cache.Cache), 290
cli_options (atributo de calibre.customize.CatalogPlugin), copy_format_to() (mtodo de calibre.db.cache.Cache),
216 290
clone_browser() (mtodo de cali- core_usage (atributo de cali-
bre.web.feeds.news.BasicNewsRecipe), 47 bre.customize.conversion.InputFormatPlugin),
close_editor() (mtodo de cali- 220
bre.gui2.tweak_book.boss.Boss), 304 cover() (mtodo de calibre.db.cache.Cache), 290
commit() (mtodo de cali- cover_margins (atributo de cali-
bre.ebooks.oeb.polish.container.Container), bre.web.feeds.news.BasicNewsRecipe), 52
296 create_action() (mtodo de cali-
commit() (mtodo de cali- bre.gui2.tweak_book.plugin.Tool), 304
bre.gui2.preferences.ConfigWidgetInterface), create_inline_toc() (en el mdulo cali-
236 bre.ebooks.oeb.polish.toc), 303
commit_all_editors_to_container() (mtodo de cali- create_menu_action() (mtodo de cali-
bre.gui2.tweak_book.boss.Boss), 304 bre.gui2.actions.InterfaceAction), 233
commit_item() (mtodo de cali- create_widget() (mtodo de cali-
bre.ebooks.oeb.polish.container.Container), bre.customize.PreferencesPlugin), 235
296 CSS, 306
common_options (atributo de cali- current_container (atributo de cali-
bre.customize.conversion.InputFormatPlugin), bre.gui2.tweak_book.plugin.Tool), 303
220 currently_editing (atributo de cali-
common_options (atributo de cali- bre.gui2.tweak_book.boss.Boss), 305
bre.customize.conversion.OutputFormatPlugin), custom_field_keys() (mtodo de cali-
221 bre.ebooks.metadata.book.base.Metadata),
compress_news_images (atributo de cali- 172

ndice 319
Manual de usuario de calibre, Versin 2.82.0

customization_help() (mtodo de cali- author-sort, 272


bre.customize.Plugin), 214 authors, 272
customize_context_menu() (mtodo de cali- base-font-size, 268
bre.customize.ViewerPlugin), 237 book-producer, 273
customize_ui() (mtodo de cali- change-justification, 268
bre.customize.ViewerPlugin), 237 chapter, 271
chapter-mark, 271
D comments, 273
data_for_find_identical_books() (mtodo de cali- cover, 273
bre.db.cache.Cache), 290 debug-pipeline, -d, 273
data_for_has_book() (mtodo de calibre.db.cache.Cache), disable-dehyphenate, 270
290 disable-delete-blank-paragraphs, 270
debug_managed_device_detection() (mtodo de cali- disable-fix-indents, 270
bre.devices.interface.DevicePlugin), 224 disable-font-rescaling, 268
deepcopy() (mtodo de cali- disable-format-scene-breaks, 270
bre.ebooks.metadata.book.base.Metadata), disable-italicize-common-cases, 270
171 disable-markup-chapter-headings, 270
default_cover() (mtodo de cali- disable-remove-fake-margins, 271
bre.web.feeds.news.BasicNewsRecipe), 47 disable-renumber-headings, 270
delay (atributo de cali- disable-unwrap-lines, 270
bre.web.feeds.news.BasicNewsRecipe), 52 dont-split-on-page-breaks, 267
delete_books() (mtodo de cali- duplicate-links-in-toc, 272
bre.devices.interface.DevicePlugin), 226 embed-all-fonts, 268
delete_custom_book_data() (mtodo de cali- embed-font-family, 268
bre.db.cache.Cache), 291 enable-heuristics, 270
description (atributo de calibre.customize.Plugin), 212 epub-flatten, 267
description (atributo de cali- epub-inline-toc, 267
bre.customize.PreferencesPlugin), 235 epub-toc-at-end, 267
description (atributo de cali- expand-css, 268
bre.web.feeds.news.BasicNewsRecipe), 52 extra-css, 268
detect_managed_devices() (mtodo de cali- extract-to, 267
bre.devices.interface.DevicePlugin), 223 filter-css, 268
Device (clase en calibre.devices.usbms.device), 230 flow-size, 267
DevicePlugin (clase en calibre.devices.interface), 222 font-size-mapping, 268
dirty() (mtodo de cali- help, -h, 266
bre.ebooks.oeb.polish.container.Container), html-unwrap-factor, 270
297 input-encoding, 266
do_user_config() (mtodo de calibre.customize.Plugin), input-profile, 266
213 insert-blank-line, 268
dont_add_to (atributo de cali- insert-blank-line-size, 268
bre.gui2.actions.InterfaceAction), 233 insert-metadata, 271
dont_remove_from (atributo de cali- isbn, 273
bre.gui2.actions.InterfaceAction), 233 keep-ligatures, 269
download() (mtodo de cali- language, 273
bre.web.feeds.news.BasicNewsRecipe), 47 level1-toc, 272
download_cover() (mtodo de cali- level2-toc, 272
bre.ebooks.metadata.sources.base.Source), level3-toc, 272
219 line-height, 269
drop_event() (mtodo de cali- linearize-tables, 269
bre.gui2.actions.InterfaceAction), 233 list-recipes, 266
margin-bottom, 269
E margin-left, 269
ebook-convert opcin en lnea de comandos margin-right, 269
asciiize, 267 margin-top, 269

320 ndice
Manual de usuario de calibre, Versin 2.82.0

max-toc-links, 272 from-opf, 275


minimum-line-height, 269 get-cover, 275
no-chapters-in-toc, 272 help, -h, 275
no-default-epub-cover, 267 identifier, 275
no-svg-cover, 267 index, -i, 275
output-profile, 266 isbn, 275
page-breaks-before, 271 language, -l, 275
prefer-metadata-cover, 271 lrf-bookid, 275
preserve-cover-aspect-ratio, 267 publisher, -p, 275
pretty-print, 267 rating, -r, 275
pubdate, 273 series, -s, 275
publisher, 273 tags, 275
rating, 273 title, -t, 275
read-metadata-from-opf, -m, 273 title-sort, 275
remove-first-image, 271 to-opf, 275
remove-paragraph-spacing, 269 version, 275
remove-paragraph-spacing-indent-size, 269 ebook-polish opcin en lnea de comandos
replace-scene-breaks, 270 compress-images, -i, 276
search-replace, 270 cover, -c, 276
series, 273 embed-fonts, -e, 276
series-index, 273 help, -h, 276
smarten-punctuation, 269 jacket, -j, 276
sr1-replace, 271 opf, -o, 276
sr1-search, 271 remove-jacket, 276
sr2-replace, 271 remove-unused-css, -u, 276
sr2-search, 271 smarten-punctuation, -p, 276
sr3-replace, 271 subset-fonts, -f, 276
sr3-search, 271 verbose, 277
start-reading-at, 272 version, 277
subset-embedded-fonts, 269 ebook-viewer opcin en lnea de comandos
tags, 273 continue, 277
timestamp, 273 debug-javascript, 277
title, 273 detach, 277
title-sort, 273 full-screen, -f, 277
toc-filter, 272 help, -h, 277
toc-threshold, 272 open-at, 277
toc-title, 267 raise-window, 277
transform-css-rules, 269 version, 277
unsmarten-punctuation, 270 edit_file() (mtodo de cali-
use-auto-toc, 272 bre.gui2.tweak_book.boss.Boss), 305
verbose, -v, 273 eject() (mtodo de cali-
version, 266 bre.devices.interface.DevicePlugin), 225
ebook-edit opcin en lnea de comandos embed_metadata() (mtodo de calibre.db.cache.Cache),
detach, 274 291
help, -h, 274 encoding (atributo de cali-
version, 274 bre.web.feeds.news.BasicNewsRecipe), 52
ebook-meta opcin en lnea de comandos exists() (mtodo de cali-
author-sort, 274 bre.ebooks.oeb.polish.container.Container),
authors, -a, 274 297
book-producer, -k, 274 extra_css (atributo de cali-
category, 274 bre.web.feeds.news.BasicNewsRecipe), 52
comments, -c, 274 extract_readable_article() (mtodo de cali-
cover, 275 bre.web.feeds.news.BasicNewsRecipe), 47
date, -d, 275

ndice 321
Manual de usuario de calibre, Versin 2.82.0

F bre.ebooks.metadata.book.base.Metadata),
frmula, 306 172
fast_field_for() (mtodo de calibre.db.cache.Cache), 291 format_hash() (mtodo de calibre.db.cache.Cache), 292
feeds (atributo de cali- format_metadata() (mtodo de calibre.db.cache.Cache),
bre.web.feeds.news.BasicNewsRecipe), 52 292
fetch-ebook-metadata opcin en lnea de comandos FORMATS (atributo de cali-
authors, -a, 278 bre.devices.interface.DevicePlugin), 222
cover, -c, 278 formats() (mtodo de calibre.db.cache.Cache), 292
help, -h, 278 free_space() (mtodo de cali-
isbn, -i, 278 bre.devices.interface.DevicePlugin), 225
opf, -o, 278 from_files() (en el mdulo calibre.ebooks.oeb.polish.toc),
timeout, -d, 278 303
title, -t, 278 from_links() (en el mdulo cali-
verbose, -v, 278 bre.ebooks.oeb.polish.toc), 302
version, 278 from_xpaths() (en el mdulo cali-
field_for() (mtodo de calibre.db.cache.Cache), 291 bre.ebooks.oeb.polish.toc), 302
field_ids_for() (mtodo de calibre.db.cache.Cache), 291
file_type (atributo de cali- G
bre.customize.conversion.OutputFormatPlugin), generate_item() (mtodo de cali-
221 bre.ebooks.oeb.polish.container.Container),
file_types (atributo de calibre.customize.CatalogPlugin), 297
216 genesis() (mtodo de cali-
file_types (atributo de cali- bre.gui2.actions.InterfaceAction), 234
bre.customize.conversion.InputFormatPlugin), genesis() (mtodo de cali-
220 bre.gui2.preferences.ConfigWidgetInterface),
file_types (atributo de calibre.customize.FileTypePlugin), 236
214 get_all_standard_metadata() (mtodo de cali-
file_types (atributo de cali- bre.ebooks.metadata.book.base.Metadata),
bre.customize.MetadataReaderPlugin), 215 172
file_types (atributo de cali- get_all_user_metadata() (mtodo de cali-
bre.customize.MetadataWriterPlugin), 216 bre.ebooks.metadata.book.base.Metadata),
filename_callback() (mtodo de cali- 172
bre.devices.usbms.device.Device), 231 get_annotations() (mtodo de cali-
filesize() (mtodo de cali- bre.devices.usbms.device.Device), 231
bre.ebooks.oeb.polish.container.Container), get_article_url() (mtodo de cali-
297 bre.web.feeds.news.BasicNewsRecipe), 47
FileTypePlugin (clase en calibre.customize), 214 get_author_tokens() (mtodo de cali-
filter_css() (en el mdulo calibre.ebooks.oeb.polish.css), bre.ebooks.metadata.sources.base.Source),
302 217
filter_regexps (atributo de cali- get_book_url() (mtodo de cali-
bre.web.feeds.news.BasicNewsRecipe), 52 bre.ebooks.metadata.sources.base.Source),
find_identical_books() (mtodo de cali- 218
bre.db.cache.Cache), 291 get_book_url_name() (mtodo de cali-
fix_all_html() (en el mdulo cali- bre.ebooks.metadata.sources.base.Source),
bre.ebooks.oeb.polish.pretty), 300 218
fix_html() (en el mdulo cali- get_book_urls() (mtodo de cali-
bre.ebooks.oeb.polish.pretty), 300 bre.ebooks.metadata.sources.base.Source),
for_viewer (atributo de cali- 218
bre.customize.conversion.InputFormatPlugin), get_browser() (mtodo de cali-
220 bre.web.feeds.news.BasicNewsRecipe), 47
format() (mtodo de calibre.db.cache.Cache), 291 get_cached_cover_url() (mtodo de cali-
format_abspath() (mtodo de calibre.db.cache.Cache), bre.ebooks.metadata.sources.base.Source),
291 218
format_field() (mtodo de cali- get_categories() (mtodo de calibre.db.cache.Cache), 292

322 ndice
Manual de usuario de calibre, Versin 2.82.0

get_collections() (mtodo de cali- get_title_tokens() (mtodo de cali-


bre.devices.interface.BookList), 230 bre.ebooks.metadata.sources.base.Source),
get_cover_url() (mtodo de cali- 217
bre.web.feeds.news.BasicNewsRecipe), 48 get_usage_count_by_id() (mtodo de cali-
get_custom_book_data() (mtodo de cali- bre.db.cache.Cache), 293
bre.db.cache.Cache), 292 get_user_blacklisted_devices() (mtodo de cali-
get_device_information() (mtodo de cali- bre.devices.interface.DevicePlugin), 228
bre.devices.interface.DevicePlugin), 225 get_user_metadata() (mtodo de cali-
get_device_uid() (mtodo de cali- bre.ebooks.metadata.book.base.Metadata),
bre.devices.interface.DevicePlugin), 228 172
get_driveinfo() (mtodo de cali- gui (atributo de calibre.gui2.tweak_book.plugin.Tool),
bre.devices.interface.DevicePlugin), 225 303
get_extra_css() (mtodo de cali- gui_category (atributo de cali-
bre.web.feeds.news.BasicNewsRecipe), 48 bre.customize.PreferencesPlugin), 235
get_feeds() (mtodo de cali- gui_configuration_widget() (mtodo de cali-
bre.web.feeds.news.BasicNewsRecipe), 48 bre.customize.conversion.InputFormatPlugin),
get_file() (mtodo de cali- 221
bre.devices.interface.DevicePlugin), 227 gui_configuration_widget() (mtodo de cali-
get_file_path_for_processing() (mtodo de cali- bre.customize.conversion.OutputFormatPlugin),
bre.ebooks.oeb.polish.container.Container), 222
297 gui_layout_complete() (mtodo de cali-
get_id_map() (mtodo de calibre.db.cache.Cache), 292 bre.gui2.actions.InterfaceAction), 234
get_identifiers() (mtodo de cali- gui_name (atributo de cali-
bre.ebooks.metadata.book.base.Metadata), bre.customize.PreferencesPlugin), 235
171 guide_type_map (atributo de cali-
get_ids_for_custom_book_data() (mtodo de cali- bre.ebooks.oeb.polish.container.Container),
bre.db.cache.Cache), 292 297
get_images() (mtodo de cali-
bre.customize.conversion.InputFormatPlugin), H
220 handle_gzip (atributo de cali-
get_item_id() (mtodo de calibre.db.cache.Cache), 292 bre.web.feeds.news.BasicNewsRecipe), 52
get_item_ids() (mtodo de calibre.db.cache.Cache), 292 has_book() (mtodo de calibre.db.cache.Cache), 293
get_item_name() (mtodo de calibre.db.cache.Cache), has_format() (mtodo de calibre.db.cache.Cache), 293
292 has_html_comments (atributo de cali-
get_masthead_title() (mtodo de cali- bre.ebooks.metadata.sources.base.Source),
bre.web.feeds.news.BasicNewsRecipe), 48 217
get_masthead_url() (mtodo de cali- has_id() (mtodo de calibre.db.cache.Cache), 293
bre.web.feeds.news.BasicNewsRecipe), 48 has_name() (mtodo de cali-
get_metadata() (mtodo de cali- bre.ebooks.oeb.polish.container.Container),
bre.customize.MetadataReaderPlugin), 215 297
get_metadata() (mtodo de calibre.db.cache.Cache), 292 href_to_name() (mtodo de cali-
get_next_series_num_for() (mtodo de cali- bre.ebooks.oeb.polish.container.Container),
bre.db.cache.Cache), 292 297
get_obfuscated_article() (mtodo de cali- HTML, 306
bre.web.feeds.news.BasicNewsRecipe), 48
get_option() (mtodo de cali- I
bre.devices.interface.DevicePlugin), 228 icon (atributo de calibre.customize.PreferencesPlugin),
get_proxy_metadata() (mtodo de cali- 235
bre.db.cache.Cache), 293 icon (atributo de calibre.devices.interface.DevicePlugin),
get_recommended_folders() (en el mdulo cali- 223
bre.ebooks.oeb.polish.replace), 300 identify() (mtodo de cali-
get_standard_metadata() (mtodo de cali- bre.ebooks.metadata.sources.base.Source),
bre.ebooks.metadata.book.base.Metadata), 218
172

ndice 323
Manual de usuario de calibre, Versin 2.82.0

identify_results_keygen() (mtodo de cali- K


bre.ebooks.metadata.sources.base.Source), keep_only_tags (atributo de cali-
218 bre.web.feeds.news.BasicNewsRecipe), 53
ignore_connected_device() (mtodo de cali-
bre.devices.interface.DevicePlugin), 228 L
ignore_duplicate_articles (atributo de cali-
language (atributo de cali-
bre.web.feeds.news.BasicNewsRecipe), 52
bre.web.feeds.news.BasicNewsRecipe), 53
image_url_processor() (mtodo de clase de cali-
library_changed() (mtodo de cali-
bre.web.feeds.news.BasicNewsRecipe), 48
bre.gui2.actions.InterfaceAction), 234
index_to_soup() (mtodo de cali-
load_actual_plugin() (mtodo de cali-
bre.web.feeds.news.BasicNewsRecipe), 48
bre.customize.InterfaceActionBase), 235
init() (mtodo de calibre.db.cache.Cache), 293
load_fonts() (mtodo de cali-
initialization_complete() (mtodo de cali-
bre.customize.ViewerPlugin), 237
bre.gui2.actions.InterfaceAction), 234
load_javascript() (mtodo de cali-
initialize() (mtodo de calibre.customize.CatalogPlugin),
bre.customize.ViewerPlugin), 237
216
load_resources() (mtodo de calibre.customize.Plugin),
initialize() (mtodo de calibre.customize.Plugin), 213
213
initialize() (mtodo de cali-
load_resources() (mtodo de cali-
bre.gui2.preferences.ConfigWidgetInterface),
bre.gui2.actions.InterfaceAction), 234
236
location_selected() (mtodo de cali-
InputFormatPlugin (clase en cali-
bre.gui2.actions.InterfaceAction), 234
bre.customize.conversion), 219
LRF, 306
insert_into_xml() (mtodo de cali-
lrf2lrs opcin en lnea de comandos
bre.ebooks.oeb.polish.container.Container),
dont-output-resources, 278
297
help, -h, 278
InterfaceAction (clase en calibre.gui2.actions), 232
output, -o, 278
InterfaceActionBase (clase en calibre.customize), 235
verbose, 278
InternalMetadataCompareKeyGen (clase en cali-
version, 278
bre.ebooks.metadata.sources.base), 219
lrfviewer opcin en lnea de comandos
is_configured() (mtodo de cali-
disable-hyphenation, 279
bre.ebooks.metadata.sources.base.Source),
help, -h, 279
217
profile, 279
is_dir (atributo de cali-
verbose, 279
bre.ebooks.oeb.polish.container.Container),
version, 279
297
visual-debug, 279
is_dynamically_controllable() (mtodo de cali-
white-background, 279
bre.devices.interface.DevicePlugin), 228
lrs2lrf opcin en lnea de comandos
is_image_collection (atributo de cali-
help, -h, 279
bre.customize.conversion.InputFormatPlugin),
lrs, 279
220
output, -o, 279
is_link_wanted() (mtodo de cali-
verbose, 279
bre.web.feeds.news.BasicNewsRecipe), 49
version, 279
is_null() (mtodo de cali-
bre.ebooks.metadata.book.base.Metadata), M
171
make_name_unique() (mtodo de cali-
is_running() (mtodo de cali-
bre.ebooks.oeb.polish.container.Container),
bre.devices.interface.DevicePlugin), 229
297
is_usb_connected() (mtodo de cali-
MANAGES_DEVICE_PRESENCE (atributo de cali-
bre.devices.interface.DevicePlugin), 223
bre.devices.interface.DevicePlugin), 223
iterlinks() (mtodo de cali-
manifest_has_name() (mtodo de cali-
bre.ebooks.oeb.polish.container.Container),
bre.ebooks.oeb.polish.container.Container),
297
297

324 ndice
Manual de usuario de calibre, Versin 2.82.0

manifest_id_map (atributo de cali- name_to_href() (mtodo de cali-


bre.ebooks.oeb.polish.container.Container), bre.ebooks.oeb.polish.container.Container),
297 298
manifest_items_of_type() (mtodo de cali- names_that_must_not_be_changed (atributo de cali-
bre.ebooks.oeb.polish.container.Container), bre.ebooks.oeb.polish.container.Container),
297 298
manifest_items_with_property() (mtodo de cali- names_that_must_not_be_removed (atributo de cali-
bre.ebooks.oeb.polish.container.Container), bre.ebooks.oeb.polish.container.Container),
298 298
manifest_type_map (atributo de cali- names_that_need_not_be_manifested (atributo de ca-
bre.ebooks.oeb.polish.container.Container), libre.ebooks.oeb.polish.container.Container),
298 298
mark_as_cover() (en el mdulo cali- needs_subscription (atributo de cali-
bre.ebooks.oeb.polish.cover), 302 bre.web.feeds.news.BasicNewsRecipe), 53
mark_as_titlepage() (en el mdulo cali- NEWS_IN_FOLDER (atributo de cali-
bre.ebooks.oeb.polish.cover), 302 bre.devices.usbms.device.Device), 231
masthead_url (atributo de cali- no_stylesheets (atributo de cali-
bre.web.feeds.news.BasicNewsRecipe), 53 bre.web.feeds.news.BasicNewsRecipe), 53
match_regexps (atributo de cali- normalize_path() (mtodo de clase de cali-
bre.web.feeds.news.BasicNewsRecipe), 53 bre.devices.usbms.driver.USBMS), 232
max_articles_per_feed (atributo de cali- NUKE_COMMENTS (atributo de cali-
bre.web.feeds.news.BasicNewsRecipe), 53 bre.devices.interface.DevicePlugin), 223
MAX_PATH_LEN (atributo de cali-
bre.devices.usbms.device.Device), 231 O
merge() (en el mdulo calibre.ebooks.oeb.polish.split), oldest_article (atributo de cali-
301 bre.web.feeds.news.BasicNewsRecipe), 53
Metadata (clase en calibre.ebooks.metadata.book.base), on_import (atributo de cali-
171 bre.customize.FileTypePlugin), 214
metadata_for_field() (mtodo de cali- on_postimport (atributo de cali-
bre.ebooks.metadata.book.base.Metadata), bre.customize.FileTypePlugin), 214
172 on_postprocess (atributo de cali-
MetadataReaderPlugin (clase en calibre.customize), 215 bre.customize.FileTypePlugin), 214
MetadataWriterPlugin (clase en calibre.customize), 215 on_preprocess (atributo de cali-
mi (atributo de calibre.ebooks.oeb.polish.container.Container), bre.customize.FileTypePlugin), 214
298 opcin en lnea de comandos
minimum_calibre_version (atributo de cali- dont-notify-gui, 256
bre.customize.Plugin), 213 help, -h, 256
multisort() (mtodo de calibre.db.cache.Cache), 293 library-path, 256
multisplit() (en el mdulo cali- version, 256
bre.ebooks.oeb.polish.split), 301 open() (mtodo de cali-
bre.devices.interface.DevicePlugin), 224
N open() (mtodo de cali-
name (atributo de calibre.customize.Plugin), 212 bre.ebooks.oeb.polish.container.Container),
name (atributo de calibre.gui2.actions.InterfaceAction), 298
232 open_book() (mtodo de cali-
name (atributo de calibre.gui2.tweak_book.plugin.Tool), bre.gui2.tweak_book.boss.Boss), 305
303 OPEN_FEEDBACK_MESSAGE (atributo de cali-
name(), 145 bre.devices.interface.DevicePlugin), 223
name_order (atributo de cali- opf (atributo de cali-
bre.customize.PreferencesPlugin), 235 bre.ebooks.oeb.polish.container.Container),
name_to_abspath() (mtodo de cali- 298
bre.ebooks.oeb.polish.container.Container), opf_get_or_create() (mtodo de cali-
298 bre.ebooks.oeb.polish.container.Container),
298

ndice 325
Manual de usuario de calibre, Versin 2.82.0

opf_version (atributo de cali- pref() (mtodo de calibre.db.cache.Cache), 293


bre.ebooks.oeb.polish.container.Container), prefer_results_with_isbn (atributo de cali-
298 bre.ebooks.metadata.sources.base.Source),
opf_version_parsed (atributo de cali- 217
bre.ebooks.oeb.polish.container.Container), PreferencesPlugin (clase en calibre.customize), 235
298 prepare_addable_books() (mtodo de cali-
opf_xpath() (mtodo de cali- bre.devices.interface.DevicePlugin), 227
bre.ebooks.oeb.polish.container.Container), preprocess_html() (mtodo de cali-
298 bre.web.feeds.news.BasicNewsRecipe), 50
options (atributo de cali- preprocess_raw_html() (mtodo de cali-
bre.customize.conversion.InputFormatPlugin), bre.web.feeds.news.BasicNewsRecipe), 50
220 preprocess_regexps (atributo de cali-
options (atributo de cali- bre.web.feeds.news.BasicNewsRecipe), 53
bre.customize.conversion.OutputFormatPlugin), pretty_all() (en el mdulo cali-
221 bre.ebooks.oeb.polish.pretty), 300
options (atributo de cali- pretty_css() (en el mdulo cali-
bre.ebooks.metadata.sources.base.Source), bre.ebooks.oeb.polish.pretty), 300
217 pretty_html() (en el mdulo cali-
OSX_MAIN_MEM_VOL_PAT (atributo de cali- bre.ebooks.oeb.polish.pretty), 300
bre.devices.usbms.device.Device), 231 pretty_xml() (en el mdulo cali-
output_encoding (atributo de cali- bre.ebooks.oeb.polish.pretty), 300
bre.customize.conversion.InputFormatPlugin), print_version() (mtodo de clase de cali-
220 bre.web.feeds.news.BasicNewsRecipe), 50
OutputFormatPlugin (clase en cali- priority (atributo de calibre.customize.Plugin), 213
bre.customize.conversion), 221 priority (atributo de calibre.gui2.actions.InterfaceAction),
232
P PRODUCT_ID (atributo de cali-
parse_feeds() (mtodo de cali- bre.devices.interface.DevicePlugin), 222
bre.web.feeds.news.BasicNewsRecipe), 49 publication_type (atributo de cali-
parse_index() (mtodo de cali- bre.web.feeds.news.BasicNewsRecipe), 54
bre.web.feeds.news.BasicNewsRecipe), 49
parsed() (mtodo de cali- R
bre.ebooks.oeb.polish.container.Container), raw_data() (mtodo de cali-
298 bre.ebooks.oeb.polish.container.Container),
path_sep (atributo de cali- 298
bre.devices.interface.DevicePlugin), 222 re:test(), 145
Plugin (clase en calibre.customize), 212 read_backup() (mtodo de calibre.db.cache.Cache), 293
populate_article_metadata() (mtodo de cali- recipe_disabled (atributo de cali-
bre.web.feeds.news.BasicNewsRecipe), 49 bre.web.feeds.news.BasicNewsRecipe), 54
popup_type (atributo de cali- recommendations (atributo de cali-
bre.gui2.actions.InterfaceAction), 232 bre.customize.conversion.InputFormatPlugin),
post_yank_cleanup() (mtodo de cali- 220
bre.devices.interface.DevicePlugin), 225 recommendations (atributo de cali-
postadd() (mtodo de calibre.customize.FileTypePlugin), bre.customize.conversion.OutputFormatPlugin),
215 221
postimport() (mtodo de cali- recursions (atributo de cali-
bre.customize.FileTypePlugin), 215 bre.web.feeds.news.BasicNewsRecipe), 54
postprocess_book() (mtodo de cali- refresh_gui() (mtodo de cali-
bre.customize.conversion.InputFormatPlugin), bre.gui2.preferences.ConfigWidgetInterface),
221 236
postprocess_book() (mtodo de cali- regexp, 306
bre.web.feeds.news.BasicNewsRecipe), 49 register() (mtodo de cali-
postprocess_html() (mtodo de cali- bre.gui2.preferences.ConfigWidgetBase),
bre.web.feeds.news.BasicNewsRecipe), 49 236

326 ndice
Manual de usuario de calibre, Versin 2.82.0

register_shortcut() (mtodo de cali- reset() (mtodo de cali-


bre.gui2.tweak_book.plugin.Tool), 303 bre.devices.interface.DevicePlugin), 224
relpath() (mtodo de cali- resolve_internal_links (atributo de cali-
bre.ebooks.oeb.polish.container.Container), bre.web.feeds.news.BasicNewsRecipe), 55
299 restart_critical (atributo de cali-
remove_attributes (atributo de cali- bre.gui2.preferences.ConfigWidgetInterface),
bre.web.feeds.news.BasicNewsRecipe), 54 236
remove_book() (mtodo de cali- restore_book() (mtodo de calibre.db.cache.Cache), 294
bre.devices.interface.BookList), 230 restore_defaults() (mtodo de cali-
remove_books() (mtodo de calibre.db.cache.Cache), 293 bre.gui2.preferences.ConfigWidgetInterface),
remove_books_from_metadata() (mtodo de clase de ca- 236
libre.devices.interface.DevicePlugin), 226 restore_defaults_desc (atributo de cali-
remove_empty_feeds (atributo de cali- bre.gui2.preferences.ConfigWidgetInterface),
bre.web.feeds.news.BasicNewsRecipe), 54 235
remove_formats() (mtodo de calibre.db.cache.Cache), restore_original_format() (mtodo de cali-
293 bre.db.cache.Cache), 294
remove_from_spine() (mtodo de cali- reverse_article_order (atributo de cali-
bre.ebooks.oeb.polish.container.Container), bre.web.feeds.news.BasicNewsRecipe), 55
299 rewind_savepoint() (mtodo de cali-
remove_from_xml() (mtodo de cali- bre.gui2.tweak_book.boss.Boss), 305
bre.ebooks.oeb.polish.container.Container), RSS, 305
299 run() (mtodo de calibre.customize.CatalogPlugin), 216
remove_item() (mtodo de cali- run() (mtodo de calibre.customize.FileTypePlugin), 214
bre.ebooks.oeb.polish.container.Container), run_javascript() (mtodo de cali-
299 bre.customize.ViewerPlugin), 237
remove_items() (mtodo de calibre.db.cache.Cache), 293
remove_jacket() (en el mdulo cali- S
bre.ebooks.oeb.polish.jacket), 301 safe_read_lock (atributo de calibre.db.cache.Cache), 294
remove_javascript (atributo de cali- sanitize_callback() (mtodo de cali-
bre.web.feeds.news.BasicNewsRecipe), 54 bre.devices.usbms.device.Device), 231
remove_tags (atributo de cali- sanitize_path_components() (mtodo de cali-
bre.web.feeds.news.BasicNewsRecipe), 54 bre.devices.usbms.device.Device), 231
remove_tags_after (atributo de cali- save_book() (mtodo de cali-
bre.web.feeds.news.BasicNewsRecipe), 54 bre.gui2.tweak_book.boss.Boss), 305
remove_tags_before (atributo de cali- save_original_format() (mtodo de cali-
bre.web.feeds.news.BasicNewsRecipe), 54 bre.db.cache.Cache), 294
remove_unused_css() (en el mdulo cali- save_settings() (mtodo de calibre.customize.Plugin), 213
bre.ebooks.oeb.polish.css), 302 save_settings() (mtodo de clase de cali-
rename() (mtodo de cali- bre.devices.interface.DevicePlugin), 227
bre.ebooks.oeb.polish.container.Container), scale_news_images (atributo de cali-
299 bre.web.feeds.news.BasicNewsRecipe), 55
rename_files() (en el mdulo cali- scale_news_images_to_device (atributo de cali-
bre.ebooks.oeb.polish.replace), 300 bre.web.feeds.news.BasicNewsRecipe), 55
rename_items() (mtodo de calibre.db.cache.Cache), 293 search() (mtodo de calibre.db.cache.Cache), 294
replace() (mtodo de cali- serialize_item() (mtodo de cali-
bre.ebooks.oeb.polish.container.Container), bre.ebooks.oeb.polish.container.Container),
299 299
replace_links() (en el mdulo cali- set_all_user_metadata() (mtodo de cali-
bre.ebooks.oeb.polish.replace), 300 bre.ebooks.metadata.book.base.Metadata),
replace_links() (mtodo de cali- 172
bre.ebooks.oeb.polish.container.Container), set_conversion_options() (mtodo de cali-
299 bre.db.cache.Cache), 294
requires_version (atributo de cali- set_cover() (en el mdulo cali-
bre.web.feeds.news.BasicNewsRecipe), 55 bre.ebooks.oeb.polish.cover), 301

ndice 327
Manual de usuario de calibre, Versin 2.82.0

set_cover() (mtodo de calibre.db.cache.Cache), 294 217


set_driveinfo_name() (mtodo de cali- specialize() (mtodo de cali-
bre.devices.interface.DevicePlugin), 227 bre.customize.conversion.InputFormatPlugin),
set_field() (mtodo de calibre.db.cache.Cache), 294 221
set_identifier() (mtodo de cali- specialize_css_for_output() (mtodo de cali-
bre.ebooks.metadata.book.base.Metadata), bre.customize.conversion.OutputFormatPlugin),
171 221
set_identifiers() (mtodo de cali- specialize_global_preferences() (mtodo de cali-
bre.ebooks.metadata.book.base.Metadata), bre.devices.interface.DevicePlugin), 228
171 spine_items (atributo de cali-
set_library_info() (mtodo de cali- bre.ebooks.oeb.polish.container.Container),
bre.devices.interface.DevicePlugin), 228 299
set_metadata() (mtodo de cali- spine_iter (atributo de cali-
bre.customize.MetadataWriterPlugin), 216 bre.ebooks.oeb.polish.container.Container),
set_metadata() (mtodo de calibre.db.cache.Cache), 295 299
set_modified() (mtodo de cali- spine_names (atributo de cali-
bre.gui2.tweak_book.boss.Boss), 305 bre.ebooks.oeb.polish.container.Container),
set_option() (mtodo de cali- 299
bre.devices.interface.DevicePlugin), 229 split() (en el mdulo calibre.ebooks.oeb.polish.split), 301
set_plugboards() (mtodo de cali- split_jobs() (mtodo de cali-
bre.devices.interface.DevicePlugin), 227 bre.ebooks.metadata.sources.base.Source),
set_pref() (mtodo de calibre.db.cache.Cache), 295 217
set_progress_reporter() (mtodo de cali- standard_field_keys() (mtodo de cali-
bre.devices.interface.DevicePlugin), 225 bre.ebooks.metadata.book.base.Metadata),
set_spine() (mtodo de cali- 171
bre.ebooks.oeb.polish.container.Container), STANDARD_METADATA_FIELDS (en el mdulo cali-
299 bre.ebooks.metadata.book.base), 172
set_user_blacklisted_devices() (mtodo de cali- start_plugin() (mtodo de cali-
bre.devices.interface.DevicePlugin), 228 bre.devices.interface.DevicePlugin), 228
set_user_metadata() (mtodo de cali- startup() (mtodo de cali-
bre.ebooks.metadata.book.base.Metadata), bre.devices.interface.DevicePlugin), 227
172 stop_plugin() (mtodo de cali-
settings() (mtodo de clase de cali- bre.devices.interface.DevicePlugin), 228
bre.devices.interface.DevicePlugin), 227 summary_length (atributo de cali-
show_current_diff() (mtodo de cali- bre.web.feeds.news.BasicNewsRecipe), 55
bre.gui2.tweak_book.boss.Boss), 305 supported_platforms (atributo de cali-
show_editor() (mtodo de cali- bre.customize.Plugin), 212
bre.gui2.tweak_book.boss.Boss), 305 supports_collections() (mtodo de cali-
shutdown() (mtodo de cali- bre.devices.interface.BookList), 230
bre.devices.interface.DevicePlugin), 228 supports_gzip_transfer_encoding (atributo de cali-
shutting_down() (mtodo de cali- bre.ebooks.metadata.sources.base.Source),
bre.gui2.actions.InterfaceAction), 234 217
simultaneous_downloads (atributo de cali- supports_restoring_to_defaults (atributo de cali-
bre.web.feeds.news.BasicNewsRecipe), 55 bre.gui2.preferences.ConfigWidgetInterface),
skip_ad_pages() (mtodo de cali- 235
bre.web.feeds.news.BasicNewsRecipe), 50 sync_booklists() (mtodo de cali-
SLOW_DRIVEINFO (atributo de cali- bre.devices.interface.DevicePlugin), 227
bre.devices.interface.DevicePlugin), 223 sync_preview_to_editor() (mtodo de cali-
smart_update() (mtodo de cali- bre.gui2.tweak_book.boss.Boss), 305
bre.ebooks.metadata.book.base.Metadata), synchronize_with_db() (mtodo de cali-
172 bre.devices.interface.DevicePlugin), 229
sort_index_by() (mtodo de cali-
bre.web.feeds.news.BasicNewsRecipe), 50 T
Source (clase en calibre.ebooks.metadata.sources.base), tag_to_string() (mtodo de clase de cali-

328 ndice
Manual de usuario de calibre, Versin 2.82.0

bre.web.feeds.news.BasicNewsRecipe), 50 V
tags_older_than() (mtodo de calibre.db.cache.Cache), VENDOR_ID (atributo de cali-
295 bre.devices.interface.DevicePlugin), 222
template_css (atributo de cali- version (atributo de calibre.customize.Plugin), 212
bre.web.feeds.news.BasicNewsRecipe), 55 ViewerPlugin (clase en calibre.customize), 237
template_to_attribute() (mtodo de cali- VIRTUAL_BOOK_EXTENSION_MESSAGE (atributo
bre.ebooks.metadata.book.base.Metadata), de calibre.devices.interface.DevicePlugin), 223
172 VIRTUAL_BOOK_EXTENSIONS (atributo de cali-
temporary_file() (mtodo de calibre.customize.Plugin), bre.devices.interface.DevicePlugin), 223
214
test_fields() (mtodo de cali- W
bre.ebooks.metadata.sources.base.Source),
WANTS_UPDATED_THUMBNAILS (atributo de cali-
217
bre.devices.interface.DevicePlugin), 222
THUMBNAIL_COMPRESSION_QUALITY (atributo
web2disk opcin en lnea de comandos
de calibre.devices.interface.DevicePlugin), 222
base-dir, -d, 280
THUMBNAIL_HEIGHT (atributo de cali-
delay, 280
bre.devices.interface.DevicePlugin), 222
dont-download-stylesheets, 280
timefmt (atributo de cali-
encoding, 280
bre.web.feeds.news.BasicNewsRecipe), 55
filter-regexp, 280
timeout (atributo de cali-
help, -h, 280
bre.web.feeds.news.BasicNewsRecipe), 55
match-regexp, 280
title (atributo de cali-
max-files, -n, 280
bre.web.feeds.news.BasicNewsRecipe), 55
max-recursions, -r, 280
to_html() (mtodo de cali-
timeout, -t, 280
bre.ebooks.metadata.book.base.Metadata),
verbose, 280
172
version, 280
Tool (clase en calibre.gui2.tweak_book.plugin), 303
WINDOWS_CARD_A_MEM (atributo de cali-
toolbar_button_popup_mode (atributo de cali-
bre.devices.usbms.device.Device), 231
bre.gui2.tweak_book.plugin.Tool), 303
WINDOWS_CARD_B_MEM (atributo de cali-
total_space() (mtodo de cali-
bre.devices.usbms.device.Device), 231
bre.devices.interface.DevicePlugin), 225
WINDOWS_MAIN_MEM (atributo de cali-
touched_fields (atributo de cali-
bre.devices.usbms.device.Device), 231
bre.ebooks.metadata.sources.base.Source),
windows_sort_drives() (mtodo de cali-
217
bre.devices.usbms.device.Device), 231
type (atributo de calibre.customize.Plugin), 213
type (atributo de calibre.customize.ViewerPlugin), 237

U
upload_books() (mtodo de cali-
bre.devices.interface.DevicePlugin), 226
upload_cover() (mtodo de cali-
bre.devices.usbms.driver.USBMS), 231
URL, 306
USBMS (clase en calibre.devices.usbms.driver), 231
use_embedded_content (atributo de cali-
bre.web.feeds.news.BasicNewsRecipe), 55
user_categories_for_books() (mtodo de cali-
bre.db.cache.Cache), 295
user_feedback_after_callback (atributo de cali-
bre.devices.interface.DevicePlugin), 223
UserAnnotation (atributo de cali-
bre.devices.interface.DevicePlugin), 223

ndice 329

También podría gustarte