Aumentar margen superior en epub usando CSS soportado por Tagus



  • Muy buenas 🙂

    Me muevo más por los foros de móviles de la comunidad BQ así que por aquí soy nuevo, y yo personalmente no tengo ningún lector de BQ, pero me he topado con uno y estoy atascado en algo que necesito hacer.

    Una amiga tiene un Tagus de estos de La Casa del Libro y la pantalla se ha deteriorado con el tiempo, así que la última linea de arriba en los libros no se lee. Se me ha ocurrido aumentar el margen superior de todas las páginas para solventar este problema para que pueda seguir usando el lector hasta que se compre otro.

    Pues bien, mi primer intento ha sido usar el selector @page en el CSS del libro pero el Tagus lo ignora, no puedo aumentar el margin-top de esa manera. También he intentado (por probar...) el selector body, pero tampoco funciona y eso ya me lo imaginaba.

    ¿Qué CSS soporta el Tagus que me permita aumentar el margen superior de todas las páginas? ¿Se puede añadir al Tagus un CSS que aplique a TODOS los libros que procesa, para no tener que modificar eso en cada epub?

    Muchas gracias por adelantado aunque me imagino que en un lector tan antiguo ningún usuario podrá ayudarme.


  • Beta U Plus Oreo

    @dervishd creo que el soporte CSS viene dado por el firmware, y no es modificable por el usuario (que alguien me corrija si he metido la pata). Para cambiarlo, supongo que habría que toquetear el firmware, al estilo de lo que se puede hacer en ebooks posteriores de BQ con su versión de firmware Developer, porque otra forma no se me ocurre 😅



  • @impreza233, muchas gracias, compañero 🙂 Estás siempre ahí al quite en todos los foros, te debo una 😆

    Ya me imaginaba que no se podría hacer nada. El Tagus soporta cierto CSS, he probado cambiando propiedades y muchas las respeta, pero justo los márgenes los ignora por completo. Supongo que le podría intentar meter más mano pero sinceramente, hay opciones más sencillas para que la chica pueda seguir leyendo hasta encontrar otro lector que le guste 🤷 

    Muchas gracias, @impreza233 como digo te debo una. Bueno, mejor dicho, te debo otra 😉 


  • Beta U Plus Oreo

    @dervishd de nada, compañero 😉 Soy un tipo bastante curioso y me gusta investigar las cosas antes de comentarlas jeje. 

    Aunque es cierto que no he tenido libros electrónicos en ningún momento, sí conozco la estructura de los archivos EPUB, y, teniendo en cuenta esto, sí que podría comentarte algo sobre ello. El firmware de este tipo de ebooks está programado para reconocer ciertas características del formato EPUB. Dicha programación se actualiza con cada versión del firmware nueva que van sacando. Sin embargo, si un lector ya no de actualiza, las posibles interpretaciones que pueda hacer del código del archivo del libro en cuestión se quedan ahí congeladas. Este modelo data del 2011, si no me falla la memoria, y, desde aquel entonces, han ido cambiando aspectos en el estándar CSS que no se han llevado al firmware del dispositivo, de ahí el comportamiento mencionado.

    Cualquier pregunta que tengas al respecto, no dudes en hacerla 😉 



  • @impreza233, yo maqueto EPUB como hobby, para amigos que autopublican, etc. así que ya me he topado con limitaciones de este tipo en otros lectores. Normalmente no son un problema porque cuando un lector decide ignorar ciertas propiedades CSS lo hace para que la presentación sea mejor, así que no suele darme problemas. Ignorar los márgenes es algo bastante común, igual que ignorar el "@page" (o no soportarlo, directamente), así que me lo esperaba. Normalmente jugar con los márgenes en un lector es un error, pero en este caso al estar la pantalla dañada, no hay mucha más opción. Además intento ceñirme a un subconjunto de las propiedades soportadas por EPUB 2.0.1 (intentar hacer nada con EPUB 3.x es virtualmente imposible, no conozco ningún lector hardware que soporte bien ese estándar) para evitar este tipo de cosas.

    Creo que sí, que este lector es de 2011, la chica ni se acuerda de cuándo se lo regalaron, así que está más que amortizado, si me he metido en este charco ha sido también por trastear con este lector, me parecía curioso intentarlo. Mi intención era ver qué se podía hacer con el CSS y automatizar luego la conversión EPUB->EPUB en Calibre para que hiciese este ajuste al pasar los libros al lector, pero veo que no se va a poder hacer.

    Me queda una última opción si es necesario que es convertir a PDF con un formato de página adecuado y tocando los márgenes (esos sí los respeta al ser el PDF un formato paginado) con lo que el único trabajo necesario es algo de ensayo y error para dar con el tamaño de página adecuado. A ver qué me dice la dueña del cacharro 😉 

    Muchas gracias otra vez, compañero 🙂


  • Beta U Plus Oreo

    @dervishd yo pienso también que la opción del PDF sería más adecuada en estos casos, ya que el lector los reconocería enseguida, al ser, como bien tú dices, un formato paginado y fijo. El problema mayor sería el del ensayo y error, pero creo que esa opción sería la más conveniente para estos casos en los que el EPUB se resista en el lector. Que es un tanto complejo de manejar a la hora de los formatos, sí. Pero al final los resultados son los más convenientes dado el caso.



  • @impreza233, lo del ensayo y error es un mal menor, porque en tres o cuatro intentos máximo determino un tamaño aceptable (que no perfecto) para las páginas del PDF. Y como una vez que dé con la tecla puedo crear un perfil de conversión en Calibre, automatizar luego la conversión es muy sencillo.

    El problema de base es que es un lector de hace casi una década, y cuya vida ha llegado a su fin. Toca renovarlo y afortunadamente cada vez hay más opciones así que eso no debería ser un problema 😉 

    Ya te contaré qué hago, porque todo esto depende mucho de lo que vaya a hacer la dueña del cacharro 😆 Me mola trastear pero no tanto como para hacer un montón de trabajo sin sentido 😉 


  • MVP

    @dervishd

    Todos los ereaders soportan  y hacen caso de los CSS que van dentro de cada ePub. No hay un CSS aplicable a TODOS los ePubs que haya en el dispositivo; cada uno lleva el suyo de forma interna. De forma general sí que podrías trabajar con los márgenes que sí son cosa del Firmware. Eso sí, no solo el de arriba, sino los cuatro.
    Eso que te has planteado de darle un margen a cada página no se puede hacer con CSS, porque el Margin que tú de das es al HTML que, dependiendo del tamaño de la pantalla y de la letra que hayas elegido, se puede dividir en más o menos páginas. Osea, el margin te lo pone en la primera página del HTML, pero no en las demás.


  • MVP

    @dervishd, deberías recomendar a tu amiga que se compre un nuevo lector. No sé cómo le ha durado tanto la pantalla del Tagus de Casa del Libro. El mío murió hace años.



  • @tagus, muchas gracias por tu ayuda. Sin embargo, no es del todo exacto lo que dices. Primero, no todos los ereaders soportan el CSS que va dentro de cada epub, suelen ignorar algunas propiedades, como por ejemplo los márgenes, y sí hay un CSS aplicable a todos los epub del lector, dependiendo del lector (una versión del Kibo permitía eso, subir al lector un CSS que se aplicaba a todos los libros, sobreescribiendo el interno. En Android, Moon Reader+ permite lo mismo). No hay ningún estandar que legalice o especifique eso, pero es algo que me he encontrado en algunos lectores, tanto software como hardware.

    Eso por un lado. Por otro, sí que se puede trabajar con un sólo margen. El CSS del epub no es como el del estandar HTML, tiene ciertas extensiones y diferencias. Por ejemplo, el selector virtual @page permite añadir un margen a cada página tal y como la presenta el lector, y no a todo el elemento html o body, que como bien apuntas, será convertido en más o menos páginas según el tamaño de letra, y de ahí que exista ese selector @page. Es el que suelo usar cuando necesito hacer una modificación del estilo que se aplique a las páginas tal y como las presenta el lector y no a un elemento del DOM del HTML correspondiente.

    Como bien dices, en HTML no puedes hacer que el margen afecte a cada "página" (por llamarlas de algún modo) que se presenta en el viewport (bueno, sí que se puede en HTML también, pero eso ya se sale mucho de la discusión actual) sino que el margin-top del elemento HTML o BODY sólo afectaría a la primera página. Si especificas eso en el selector @page, sí que afecta a todas las páginas.

    Lo que ya no sé de memoria es cuándo se introdujo el selector @page, pero lo acabo de mirar y está en la especificación 2.0.1.

    En cualquier caso, gracias por tu ayuda y tú interés, siendo un lector tan antiguo no esperaba tanta participación 😃 



  • @tagus, amigo mío, claro que se lo he recomendado 😆 Ya no porque la pantalla esté estropeada, que también, sino porque la velocidad de respuesta del aparato es enervante. En su época era un buen lector, ahora mismo hay cosas mejores 😉 Pero si estoy metido en esto, como imaginarás, es porque se resiste a cambiar 😆 La gente se encariña con los cacharros que le han salido buenos, y si a eso añadimos la pereza de aprender a manejar uno nuevo...

    Pero sí, se lo he recomendado, compañero. El Cervantes no tiene ni punto de comparación con este, y no es la única opción buena del mercado.

    De nuevo muchas gracias por tu ayuda 😄