Capítulo 14 · Parte III · La práctica
Sandbox
La interfaz del Sandbox: la barra de actividades; los paneles Texto, Libros, Capítulos, Recursos y Fuentes, y cómo se organiza la pantalla en un móvil.
En pocas palabras
El Sandbox es una herramienta gratuita de esta web para probar Postext sin instalar nada. Escribes el texto a un lado y ves las páginas terminadas al otro, y cambian mientras escribes. Esta página explica las partes de la pantalla y los paneles donde escribes el texto, organizas libros y capítulos, añades imágenes y eliges tipografías. Otras páginas explican los ajustes de diseño, las vistas previas, cómo guardar e importar, y cómo poner el Sandbox en tu propia web.
Un entorno interactivo para el motor de maquetación de Postext.
El Sandbox te ofrece una interfaz de editor en la que escribes el texto, gestionas los recursos y las fuentes, ajustas el diseño y ves el resultado en tiempo real en cinco vistas sincronizadas: canvas, PDF, Folio (el libro impreso en 3D), HTML y EPUB 3. Una sexta pestaña, SCORM, empaqueta los capítulos y secciones que elijas para un sistema de gestión del aprendizaje. Está pensado para experimentar: puedes cambiar la tipografía o el número de columnas, probar distintas colocaciones de las figuras y observar cómo responde el motor. Los paneles usan palabras del oficio editorial (libros, figuras, recuadros, titulillos) en lugar de términos del motor, de modo que quien viene del mundo del libro se orienta sin conocer el esquema de configuración. Todos los controles se pueden manejar con el teclado y con un lector de pantalla.
#Disposición de la interfaz
El Sandbox tiene tres áreas principales: una barra de actividades estrecha para cambiar de panel, una barra lateral de ancho ajustable con el panel activo y, a la derecha, la zona de vista previa, con una pestaña por salida. Las cabeceras de los paneles, la barra de pestañas de la zona de vista previa y la celda del logotipo, en lo alto de la barra de actividades, tienen la misma altura, así que la franja superior se ve como una sola línea a lo ancho de la ventana.
(se abre en una nueva pestaña)#Barra de actividades
Una franja estrecha en el borde izquierdo tiene un botón por panel. Cada botón muestra un icono con una etiqueta de una palabra debajo, y una explicación más larga como texto emergente (esa misma explicación es la descripción accesible del botón). De arriba abajo:
- Libros (icono
Files): tus libros y los libros de ejemplo - Capítulos (icono
BookOpen): el libro abierto y sus capítulos - Texto (icono
FileCode): escribe y corrige el texto del capítulo actual - Recursos (icono
FolderOpen): imágenes, dibujos SVG y tablas que usa el libro - Fuentes (icono
Type): los tipos de letra que usa el libro y tus propios archivos de fuente - Diseño (icono
Settings2): ajustes de página, tipografía, títulos, figuras, recuadros y exportación - Revisión (icono
AlertTriangle): los problemas de composición que se han encontrado en la maquetación. El icono lleva una insignia con el número de avisos del momento, hasta un máximo de99+.
Al pulsar el botón del panel activo, la barra lateral se contrae; al pulsar otro botón, se pasa a ese panel. La barra es una sola parada de tabulación: las flechas (↑ / ↓, que vuelven a empezar al llegar al final), Inicio y Fin mueven el foco entre los botones, e Intro o Espacio abren el panel que tiene el foco.
Al pie de la barra, Botones y campos grandes hace que todos los botones y campos del Sandbox midan al menos 44 × 44 px (WCAG 2.5.5). El navegador recuerda la elección; mientras no eliges, está activado con una pantalla táctil y desactivado con un ratón. La aplicación anfitriona puede añadir sus propios elementos a la barra: un enlace al inicio con el logotipo, opcional, en la celda superior (mediante las props homeUrl o homeLink), y un conmutador de tema y un selector de idioma en la parte inferior, bajo ese interruptor. Los libros completos se intercambian como archivos .postext desde el panel Libros, y las cabeceras de los paneles Texto y Diseño exportan su propia parte (véase Exportar e importar).
#Modos Contenido y Diseño
La barra que hay sobre la vista previa empieza con un conmutador entre las dos formas de trabajar en un libro:
- Contenido: se edita el texto, en el panel Texto y sobre las páginas. Los marcos de una página compuesta se quedan donde los pone su plantilla.
- Diseño: se editan las plantillas de página y los estilos. El panel Texto muestra el capítulo en modo de solo lectura, con una nota y un botón Editar el texto, y su barra de herramientas queda desactivada. Un clic en un marco de una página compuesta selecciona ese marco en el editor de plantillas, en lugar de colocar el cursor.
Alt+Mayús+M (⌥⇧M en un Mac) cambia de modo desde cualquier parte del Sandbox. Si pasas a Diseño con el panel Texto abierto, se abre el panel Diseño, y al volver se abre de nuevo el panel Texto. El navegador recuerda el modo. Los agentes lo consultan y lo cambian con sandbox_set_view (mode).
(se abre en una nueva pestaña)#Deshacer y rehacer
El Sandbox guarda un solo historial para el texto y el diseño del libro abierto. Cmd/Ctrl+Z deshace el último cambio, sea del tipo que sea: lo escrito en el panel Texto, un cambio hecho sobre las páginas (una viñeta de cómic a la que se ha cambiado el tamaño, un rótulo movido), un ajuste modificado en el panel Diseño, un marco arrastrado o una plantilla de página añadida en el modo Diseño. Mayús+Cmd/Ctrl+Z (o Ctrl+Y) lo rehace. Estas teclas funcionan en cualquier parte del Sandbox, salvo dentro de un cuadro de texto, que tiene su propio deshacer para lo que se escribe en él. Los botones Deshacer y Rehacer, junto al conmutador Contenido / Diseño, y los dos primeros botones de la barra de herramientas del panel Texto usan el mismo historial, y el lector de pantalla anuncia lo que se ha deshecho.
- Cada gesto es un solo paso: un deslizador arrastrado, un color elegido arrastrando o un número tecleado cifra a cifra cuentan una sola vez, siempre que las pausas no pasen de un segundo. Cada vez que se suelta un marco, en cambio, es un paso.
- Cada capítulo conserva su propio historial de texto. Deshacer un cambio de texto de otro capítulo abre ese capítulo.
- El historial se mantiene al pasar de Contenido a Diseño y al revés: una edición del texto se puede deshacer en modo Diseño, y el arrastre de un marco en modo Contenido.
- Abrir otro libro (desde el panel Libros, un libro de ejemplo, un archivo
.postexto un enlace) inicia un historial nuevo, igual que restablecer el texto o el libro entero. Restablecer solo el diseño es un paso más, y se puede deshacer. - Los capítulos añadidos, eliminados, divididos, unidos o movidos, los recursos y las fuentes no entran en el historial. Dura lo que dura la visita: al recargar la página está vacío.
- Las marcas de una imagen (sus anclas, su zona segura y sus zonas de rotulación) son la excepción entre los recursos: guardarlas en el panel Recursos, o arrastrar un ancla en una página, es un paso del historial.
Los agentes deshacen y rehacen con sandbox_undo (véase WebMCP).
#Paneles laterales
La barra lateral tiene un ancho ajustable. Arrastra el separador que hay entre la barra lateral y la zona de vista previa, o dale el foco con Tab y usa el teclado: ← / → cambian el ancho un 2 % (un 10 % con Mayús), e Inicio / Fin lo llevan al mínimo y al máximo. El separador anuncia su valor actual a los lectores de pantalla, y la zona de vista previa siempre conserva al menos 200 px. La barra lateral se contrae por completo cuando no hay ningún panel activo, y su ancho se recuerda de una sesión a otra.
Las filas de ajustes ponen la etiqueta junto al control, o encima de él cuando la barra lateral es estrecha. Para ello se usan consultas de contenedor (container queries), así que dependen del ancho de la barra lateral y no del de la ventana.
Panel de texto
Un editor CodeMirror 6 para el Markdown del capítulo. Los lectores de pantalla lo anuncian como Texto del capítulo. Ofrece:
- Resaltado de sintaxis: los encabezados, el énfasis, los enlaces, los bloques de código y las citas se distinguen a simple vista, con un resaltado propio para el frontmatter YAML, las zonas de matemáticas LaTeX, los chips en línea (
:chip[…]: los corchetes y los atributos quedan marcados y el texto del chip, coloreado), las versalitas (:smallcaps[…]: los corchetes quedan marcados y el texto se muestra en versalitas), las marcas de orientación del texto vertical (:tcy[…],:upright[…],:sideways[…]: los corchetes quedan marcados y el texto, subrayado con puntos) y las anotaciones chinas (:dots[…],:name[…]y:book[…], con su marca dibujada bajo el texto;:ruby[…]{rt="…"}y{紅樓|hóng|lóu};:warichu[…], con la nota en un cuerpo menor). Al escribir:do,:na,:bo,:ruo:wase ofrece la directiva - Completado de chips: al escribir
:cal principio de una palabra se ofrece:chip[…](el cursor queda entre los corchetes). Dentro de{style="…"}se ofrecen los ids de los estilos de chip configurados. - Completado de rótulos: dentro de un
:::figure{resource=…}, el valor deat="…"en una línea::label[…]ofrece las anclas de la imagen, cada una con el estilo de rótulo que asigna, y primero las que todavía no tienen ningún rótulo de la figura. Dentro destyle="…"se ofrecen los estilos de rótulo, y::laal principio de una línea escribe una línea de rótulo. - Completado de versalitas: al escribir
:smal principio de una palabra (o justo después de*o_) se ofrece:smallcaps[…], con el cursor entre los corchetes. - Tabuladores:
:taby:tab{…}se resaltan y se ofrecen en el completado, como las demás directivas en línea. La tecla Tab del editor no escribe un carácter de tabulación, así que en el Sandbox un tabulador se escribe con:tab; un carácter de tabulación pegado con el texto se conserva, y actúa como tabulador en un párrafo cuyo estilo define tabulaciones. - Números de línea y resaltado de la línea activa
- Ajuste de línea en los párrafos largos
- Líneas de derecha a izquierda: una línea cuyo texto empieza por una letra árabe o hebrea va de derecha a izquierda, y el cursor y las flechas siguen esa dirección. El marcado que contiene (atributos
{…}, etiquetas[^id], el nombre de una directiva, un:ref[fig-1]completo, fórmulas, código, destinos de enlace) sigue yendo de izquierda a derecha, así que se lee tal como se escribió. Los delimitadores, el frontmatter y las líneas que empiezan por una palabra latina siguen de izquierda a derecha, como antes. - Barra de herramientas: empieza con Deshacer / Rehacer, seguidos de negrita, cursiva, encabezados de nivel 1 a 3, enlace, código en línea, chip (envuelve la selección en
:chip[…]), versalitas (la envuelve en:smallcaps[…]), en un libro en chino, japonés o coreano Lectura ruby (:ruby[…]) y Horizontal en texto vertical (:tcy[…]), cita y listas numeradas y con viñetas, además de cinco botones de inserción::::pagebreak:::space: una línea de espacio vertical (:::space{lines=N}para más)- Columnas: un grupo
:::columns{count=2}de dos columnas, con el cursor en su primera línea, en el texto o en un recuadro (desde postext 1.25) :::numbering{format="decimal" startAt=1}: se inserta con atributos de ejemplo que puedes ajustar- Página compuesta: abre un selector con las plantillas de página del libro, cada una dibujada en miniatura con sus marcos vacíos. Al elegir una, se escribe un bloque
::::page{template="…"}con un:::frame{slot="…"}vacío por cada marco. Un marco que solo recibe la continuación del texto de otro marco no recibe ninguno; un marco que recibe (takes) un encabezado recibe ese encabezado, con el nombre del marco seleccionado para escribir encima, y el marco que recibe el texto suelto recibe una línea en blanco para el texto corrido
Un listado de código (un delimitador ``` o ~~~ y sus líneas) es una sola zona en el editor: tiene un fondo de código, y el marcado de Postext que contiene (fórmulas, chips, tabuladores, marcas de índice) queda sin colorear, igual que el motor lo deja sin interpretar. El editor también comunica su cursor y su selección a las vistas previas, lo que permite sincronizar el clic con el cursor: al hacer clic en el texto de la salida, el cursor salta a la posición correspondiente del Markdown, y las vistas previas pueden resaltar la selección actual.
La cabecera del panel es un selector de capítulos: las flechas de anterior y siguiente, la posición y el título del capítulo, y un menú con todos los capítulos del libro y su intervalo de páginas, en cuanto se conoce su paginación (véase Libros y capítulos). Cada capítulo tiene su propia instancia del editor, así que el historial de deshacer y la posición del cursor se conservan por capítulo. La cabecera ofrece además cinco acciones:
- Restablecer (pide confirmación): vuelve a cargar la parte de documento del libro de ejemplo abierto. Todos los capítulos y todo el conjunto de figuras se sustituyen por los del ejemplo (en el ejemplo integrado, el documento de muestra del idioma y sus recursos de ejemplo). El diseño no se toca, salvo las fuentes propias del ejemplo. Véase Panel de libros.
- Exportar: descarga el capítulo activo como archivo
.md, con el nombre<libro>-<nn>-<capítulo>.mden un libro de varios capítulos y, si no, con el del libro abierto odocument.md - Importar: sustituye el capítulo activo por el contenido de un archivo
.md - Importar un documento de Word: abre un manuscrito
.docxy asigna sus estilos de Word a estilos de Postext antes de cambiar nada, o trae de vuelta las correcciones hechas en un archivo exportado desde el libro (véase Documentos de Word) - Exportar a Word: descarga el capítulo o el libro entero como un
.docx, semántico (encabezados, listas, notas y tablas propios de Word) o maquetado (las páginas tal como las imprime el PDF); las correcciones hechas en él vuelven con Importar un documento de Word
Panel de libros
El primer panel de la barra de actividades: la galería de tus libros y de los libros de ejemplo, con el menú Nuevo, el estado de la última operación y el aviso de un libro de ejemplo que tiene una versión nueva. En el código y en el almacenamiento, un libro se sigue llamando proyecto (project), y un libro de ejemplo, preset.
Al pulsar un libro (o una de las etiquetas de idioma de un libro de ejemplo), se abre y, en cuanto está en pantalla, la barra lateral pasa al panel de capítulos. Si pulsas el libro que ya está abierto, se pasa a ese panel directamente. Los menús de las filas (cambiar nombre, duplicar, descargar, ocultar, eliminar) nunca cambian de panel. El libro abierto aparece marcado en la lista. El panel tiene dos grupos:
-
Mis libros: libros locales y editables guardados en el navegador (IndexedDB). El que está abierto aparece marcado; sus capítulos están en el panel Capítulos.
Mientras tienes abierto un libro propio, el documento de trabajo es ese libro. Cada cambio en el texto, el diseño, las figuras y las fuentes se guarda en él automáticamente (con el mismo retardo de 1 segundo que
localStorage), así que puedes cambiar de libro y volver sin perder nada. Los libros se crean desde el menú Nuevo de la cabecera:- Copia del libro abierto copia el libro abierto, sus figuras y sus fuentes en un libro nuevo.
- Libro en blanco empieza uno vacío.
- Abrir un archivo .postext… importa un archivo.
También puedes duplicar cualquier fila. Mientras no tengas libros propios, el grupo muestra un mensaje con el mismo atajo. Cada fila tiene un único menú ⋯ con su propia etiqueta (Más acciones de «…»), con Cambiar nombre…, Añadir un idioma… (véase Un libro en varios idiomas), Duplicar, Descargar (.postext) y Eliminar…. Eliminar pide confirmación justo al lado del botón ⋯.
Cambiar nombre abre en línea los campos de nombre y descripción. Intro en cualquiera de los dos confirma ambos, y Escape cancela. En un libro en varios idiomas, una casilla debajo, Solo para la edición en …, da el nombre solo al idioma en pantalla.
Un libro tiene además una portada, que aparece donde un libro de ejemplo muestra su miniatura. Al hacer una copia de un libro de ejemplo (o de otro libro), la copia hereda su portada. Mientras se cambia el nombre de una fila, la portada es el control que permite cambiarla: pulsa sobre ella para elegir un PNG, JPEG, WebP, GIF o SVG, o usa la X de al lado para quitar la actual. La portada es del libro, no de sus figuras, y lo acompaña al exportar y al importar.
Un libro sin portada la obtiene de su primera página (la primera página de su primer capítulo): la primera vez que esa página se maqueta y se pinta en la pestaña Canvas, el Sandbox hace una pequeña imagen de ella (240 px de ancho, en JPEG) cuando el navegador está libre, una vez cargadas las fuentes y las imágenes de la página. Se guarda como portada del libro, así que una descarga la incluye como
thumbnaildel paquete. Un libro de ejemplo que no trae miniatura obtiene la suya del mismo modo; se guarda en el navegador (en el almacénpresetCoversde la base de datos IndexedDB, una por ejemplo e idioma), aparece en su fila, y la heredan sus copias y sus descargas. Una portada que ya existe nunca se sustituye, venga del ejemplo, de un archivo importado, de tu propia elección o de una captura anterior. Si quitas la portada, se vuelve a tomar de la primera página en una visita posterior.Abrir un libro nunca pide confirmación: el libro que dejas se guarda antes, sea cual sea. Mientras se carga el siguiente, la zona de vista previa muestra Abriendo el libro… en lugar del libro que dejas. Si eliminas el libro abierto, se vuelve al ejemplo integrado.
-
Libros de ejemplo: puntos de partida, que aparecen debajo de tus libros. El paquete en sí nunca cambia, pero tus cambios en un libro de ejemplo se conservan: el primer cambio guarda una copia (su borrador) en el navegador, una por ejemplo e idioma, y la fila muestra la etiqueta Editado. Si vuelves a abrir ese ejemplo en ese idioma, recuperas tu versión; un ejemplo que no has tocado se abre tal como se publicó. El menú ⋯ de cada fila ofrece:
- Hacer una copia propia convierte el ejemplo en un libro tuyo con sus propias copias de los archivos del paquete, de modo que los cambios posteriores en el paquete del disco nunca le afectan.
- Descargar (.postext) guarda el ejemplo como archivo
.postext. - Ocultar de la lista retira el ejemplo de la lista (el integrado no puede ocultarse).
- Restaurar el original… descarta tus cambios en el ejemplo (en todos sus idiomas) y, si está abierto, carga en su lugar la versión publicada. Pide confirmación y solo aparece en los ejemplos editados.
Un libro de ejemplo en varios idiomas muestra una etiqueta por idioma, en el orden que indica su manifiesto: 繁 y 简 para el chino tradicional y el simplificado, y el código del idioma (EN, ES) para los demás; el texto emergente indica el idioma en el de la interfaz (Cargar la versión en chino tradicional). Un ejemplo cuyo original está en un idioma distinto del de la interfaz (una novela china con una traducción inglesa) indica en cuál se abre (
openLocale; véase Formato de paquete de preset), de modo que un clic en su fila muestra el original.Los ejemplos ocultos se agrupan en una sección desplegable, Libros de ejemplo ocultos, al final del grupo, cada uno con Mostrar en la lista. La elección se recuerda en
localStorage.
Un archivo .postext abierto desde el menú Nuevo se convierte en un libro nuevo, que queda abierto. Si el archivo está en varios idiomas, primero pregunta en cuál abrirlo, empezando por aquel en el que está escrito (el locale de su manifiesto), y el libro los conserva todos (véase Exportar e importar). Exportar es una acción de cada fila: la del libro abierto exporta lo que hay en pantalla. Un archivo .postext es un directorio de paquete de preset comprimido en zip (véase Exportar e importar).
Los botones Restablecer de los paneles Texto y Diseño restauran el ejemplo del que se copió un libro. Un libro en blanco o importado no tiene original, así que esos botones se ocultan mientras está abierto.
Panel de capítulos
El segundo panel de la barra de actividades solo muestra el libro abierto. Arriba aparecen su nombre, qué tipo de libro es (Libro propio, o Libro de ejemplo, con su idioma y la etiqueta Editado en cuanto lo cambias) y un menú ⋯ con las acciones que se le aplican: Cambiar nombre… en tus libros (un doble clic en el nombre hace lo mismo), Duplicar o Hacer una copia propia, Descargar (.postext) y, en un libro de ejemplo editado, Restaurar el original….
Debajo, sus capítulos ocupan el resto del panel y tienen su propio desplazamiento (véase Libros y capítulos). Cada fila de capítulo muestra su intervalo de páginas y su número de palabras, y el capítulo activo aparece marcado. Un libro en chino, japonés o coreano cuenta caracteres: cada carácter han, kana o hangul cuenta como uno, y también cada palabra latina que haya entre ellos. Añadir capítulo está en la cabecera del panel, junto al número de capítulos; las filas se reordenan arrastrando su asa (o con las flechas, sobre ella), y el menú ⋯ de cada capítulo ofrece Renombrar, Subir / Bajar, Dividir por títulos de nivel 1, Fusionar con el capítulo anterior y Eliminar (el último capítulo nunca se puede eliminar).
Libros de ejemplo (presets)
Un paquete de preset es un punto de partida completo que se carga de una vez: el Markdown de los capítulos, un PostextConfig, los recursos (con los datos de sus mapas de bits o SVG y sus modelos de tabla) y los archivos de las fuentes personalizadas que indica la configuración. El panel muestra todos los presets a los que puede acceder el Sandbox y marca el que está abierto:
- Preset integrado: la Guía de Postext, el libro de ejemplo por defecto que viene con el paquete. Siempre está disponible, siempre es el primero de la lista y es público. Está en español, en catalán, en inglés, en árabe, en chino simplificado, en japonés, en portugués de Brasil, en francés, en alemán y en italiano (los botones ES, CA, EN, ع, 简, 日, PT, FR, DE e IT de su fila;
#preset=postext-guide&lang=zh-Hansenlaza con la edición china;lang=ar, con la árabe;lang=ja, con la japonesa, ylang=pt-BR, con la brasileña). La edición árabe es un libro árabe: de derecha a izquierda, encuadernado por la derecha, con cifras arábigo-índicas, las fuentes Amiri, Noto Kufi Arabic e IBM Plex Sans Arabic, justificación con cachida y figuras dibujadas en espejo con rótulos en árabe. La edición china tiene un diseño propio (Noto Serif SC y Noto Sans SC, puntuación y corte de líneas de China continental) y figuras con rótulos en chino. La edición japonesa también es un libro vertical, compuesto con las reglas japonesas (JLReq): Noto Serif JP y Noto Sans JP, un cuerpo de 9,25 pt en dos pisos de 34 caracteres, títulos de sección que ocupan tres líneas (行取り), titulillos y folios en cifras arábigas en horizontal en la cabeza y al pie, y figuras con rótulos en japonés. Cada interfaz abre la guía en su idioma. Una guía china, japonesa o árabe sin tocar que se abre desde otra interfaz (con su botón o con un enlacelang=) se queda en su idioma, sea cual sea el de la interfaz; la que abrió por sí misma la interfaz china, japonesa o árabe pasa al idioma con el que se vuelva a abrir el Sandbox, como las demás ediciones. - Presets remotos: paquetes servidos por HTTP desde las URL base que se pasan en la prop
presetSources(véase Props). Cada origen es público o privado. Los presets privados llevan la etiqueta Privado en la lista y están pensados para material que no debe salir de una máquina. El sitio web público solo muestra un origen privado durante el desarrollo local, cuando la aplicación Next.js sirve la carpeta que indicaPOSTEXT_PRIVATE_PRESETS_DIRa través de/api/private-presets. En producción no se muestra nunca. El origen público del sitio web,/presets, sirve sus libros de ejemplo: Bioquímica, Cielo profundo, Don Quijote, Física universitaria (OpenStax), Pintura española y Señales 2020 en español e inglés, Sueño en el pabellón rojo en tres ediciones, El paraíso perdido en inglés, con las notas de Verity como notas al pie y las láminas de Doré, Las mil y una noches en árabe, Kokoro en japonés y el cómic Pepper&Carrot en diez idiomas. Cada uno trae su licencia y sus créditos. default: true: un preset privado marcado como predeterminado se carga automáticamente la primera vez que se abre un Sandbox intacto (con el documento integrado sin tocar). Si hay varios marcados, gana aquel cuyolocalecoincide con el idioma de la interfaz. Los presets públicos nunca se cargan automáticamente.
Cada fila muestra el nombre del preset, una descripción opcional, su etiqueta de idioma y sus etiquetas Privado / Por defecto. Al pulsar una fila, el preset se carga completo: texto, figuras, diseño y fuentes. El Sandbox escribe primero los archivos de las fuentes y los datos de las figuras en IndexedDB, para que las vistas previas nunca muestren un documento aplicado a medias. Al pulsar una fila, el ejemplo se abre en el idioma de la interfaz, salvo que solo lo hayas editado en otro idioma: en ese caso, se abre tu versión más reciente. Las etiquetas de idioma de un ejemplo bilingüe lo abren en ese idioma (con tu versión en él, si la tienes).
Presets en directo. Los cambios en los presets remotos se siguen automáticamente. Cada vez que se aplica un preset, el Sandbox registra la huella (fingerprint) del paquete junto con los hashes del Markdown, de la configuración y del conjunto de recursos que ha aplicado. Mientras la página está visible, consulta la huella cada 3 segundos, y también de inmediato cuando la pestaña vuelve a estar visible o la ventana recupera el foco. Cuando la huella cambia:
- Si el libro está intacto (el Markdown, la configuración y los recursos siguen dando los mismos hashes que cuando se aplicó el preset), el preset se vuelve a aplicar por completo y en el panel aparece un breve aviso.
- Si hay cambios locales, se conservan. Un aviso en la parte superior del panel (Hay una versión nueva de este libro de ejemplo. Tus cambios se conservan.) ofrece Cargar la versión nueva, que pide confirmación antes de descartar tus cambios en ese idioma del ejemplo, y mientras tanto el botón Libros de la barra de actividades muestra un punto. El borrador recuerda la versión de la que partió, así que el aviso vuelve a aparecer cada vez que lo abres, hasta que cargues la versión nueva. Las figuras del borrador cuyos archivos cambian en la versión nueva conservan los datos que tenían: el borrador recibe su propia copia antes de que se escriban los del paquete. Los paquetes solo se siguen mientras hay un libro de ejemplo abierto. Un libro copiado de uno de ellos conserva su propia copia.
La misma comprobación se hace al cargar, así que, si editas un paquete y después abres el Sandbox, este recoge la versión nueva siempre que el libro esté intacto. La huella procede de <directorio-del-preset>/fingerprint.json. En la ruta de desarrollo, es un archivo virtual que devuelve un hash del directorio basado solo en metadatos (véase el apéndice Formato de paquete de preset). Los cambios en los orígenes que no lo sirven no se siguen.
El libro de ejemplo abierto determina además qué restauran los botones Restablecer de los otros paneles:
| Panel | Restablecer restaura |
|---|---|
| Texto | El texto del ejemplo y su conjunto de figuras (la parte de documento) |
| Diseño | El diseño del ejemplo, fuentes incluidas |
| Libros (Restaurar el original…) | Todo: texto, figuras, diseño y fuentes |
Un preset que estuvo abierto en una sesión anterior, pero que ya no aparece en ningún origen (normalmente, un preset privado en una compilación que no lo sirve), sigue apareciendo, atenuado y con la indicación No disponible en esta compilación. El Sandbox conserva el contenido cargado en lugar de sustituirlo sin avisar por el ejemplo integrado. El id del preset abierto se guarda con la clave postext-sandbox-preset (véase Persistencia). El formato del paquete se describe en el apéndice Formato de paquete de preset.
Panel de recursos
Gestiona los recursos del libro: imágenes de mapa de bits, figuras SVG, tablas y vídeos. El texto remite a ellos con bloques ::resource{id="…"} y referencias en línea :ref{id="…"}. Para la sintaxis de las referencias y el modelo de los flotantes, consulta Formato de documento → Recursos.
Vista de lista. La cabecera muestra el número de recursos. Los recursos se agrupan por el nombre de su tipo, y cada grupo es una lista con su recuento. Los recursos cuyo typeId ya no corresponde a ningún tipo configurado van a un grupo Sin tipo, para que sigas pudiendo acceder a ellos. Cada elemento muestra una miniatura de 36 px junto a su pie y su id: una vista previa real en los mapas de bits y los SVG, la imagen de portada con una marca de reproducción en los vídeos y un símbolo en las tablas. Cuando el libro tiene más de seis recursos, un campo de búsqueda (Buscar recursos…) filtra la lista por pie e id, sin distinguir acentos. Cuando el libro todavía no tiene recursos, un mensaje explica cómo añadirlos y cómo colocarlos en el texto con :ref{#id}. Un desplegable Nuevo ofrece cuatro formas de añadir uno:
- Subir imagen: PNG, JPEG, WebP o GIF
- Subir SVG
- Nueva tabla: empieza como una cuadrícula de 2×2 con una fila de cabecera
- Añadir vídeo: un vídeo de YouTube o Vimeo, un archivo de vídeo o la dirección de uno (un MP4 o un flujo HLS; véase Vídeo, más abajo). Un libro cuyos tipos de recurso son anteriores a los vídeos recibe el tipo integrado Vídeo al añadir el primero.
También puedes arrastrar archivos desde el disco y soltarlos sobre el panel, incluidos archivos de vídeo (MP4, WebM, Ogg, QuickTime). Se suben en lote, con ids generados a partir de sus nombres de archivo. Los archivos no admitidos se omiten, y una nota breve indica cuántos se han añadido y cuántos se han omitido.
Vista de detalle. Al seleccionar un recurso se abre su editor:
- Id: editable y validado como slug. Los ids duplicados se marcan y nunca se aplican, y un id vacío recibe una propuesta basada en el pie. Cambiar el id conserva el archivo de imagen o SVG guardado.
- Tipo: uno de los tipos de recurso configurados
- Pie: el pie; admite Markdown en línea (negrita, cursiva, código y
:ref).\\, o una barra invertida al final de una línea, empieza una línea nueva; un salto de línea simple cuenta como un espacio - Nota: una línea opcional con la fuente, un crédito o una observación, compuesta en un cuerpo menor bajo el recurso (con el mismo formato en línea y los mismos saltos de línea que el pie). Su estilo se define en el grupo Nota de los ajustes de Pies de figura.
- Texto alternativo: descripción de accesibilidad para la salida HTML
- Estilo de tabla: en las tablas, el estilo con nombre con el que se compone la tabla (
table.styleId). Puede ser Estilo de tabla del documento (el valor por defecto) o uno de los Estilos de tabla declarados en los ajustes. Un id que no declara ningún estilo aparece como inexistente, y la tabla se compone con el estilo de tabla del documento. - Colocación:
- Posición:
auto(el primer hueco libre, el valor por defecto),top,bottomohere. - Extensión:
column,pageoside. Queda desactivada cuando la posición eshere. Los valores por defecto coinciden con los del motor:auto+column. - Columnas: cuántas columnas contiguas ocupa un flotante de columna en una página de varias columnas (
placement.columns), como una imagen que ocupa dos de las cuatro columnas de un periódico. Si ocupa tantas como tiene la página, pasa a ser un flotante a ancho de página. Aparece cuando el libro o alguna de sus secciones tiene más de una columna y la extensión escolumn, pero no en un recurso colocado conhereni en uno girado. - Orientación: derecho, o girado un cuarto de vuelta (con la parte superior hacia la izquierda o hacia la derecha). Un recurso girado ocupa una página propia, pegado al lomo, así que el selector de extensión queda desactivado.
- Anchura: una fracción de la anchura, con una alineación, para los flotantes y las inserciones en línea más estrechos que su columna. La alineación también coloca un mapa de bits o un SVG que, a anchura completa, es más estrecho que su hueco (un mapa de bits más pequeño que la columna, o una figura que ha reducido
layout.fitFiguresToPage), así que en las imágenes sigue activa; en una tabla, exige una anchura inferior al 100 %. Un recurso girado no tiene ninguno de los dos campos. - Pie junto a la figura: un interruptor para la columna lateral de una disposición de columna y media. Se aplica a los flotantes de columna, así que se oculta cuando la posición es
here. - Reducir para que quepa: en una imagen flotante, Nunca, En una página nueva o En cualquier hueco (
placement.shrink), con Escala mínima (placement.minScale) cuando se reduce, y Anchura del pie, Hueco o Imagen (placement.captionMeasure), en cualquier imagen que no esté girada. Los tipos de recurso ofrecen los mismos tres campos en su colocación por defecto. - Encabezar la página que lo cita: en un flotante superior o automático, de columna o a ancho de página y sin girar (
placement.citingPage): puede ocupar la cabeza de la página o de la columna en la que cae la línea que lo cita, y el texto que hay encima de la referencia baja y queda debajo de él. Los tipos de recurso ofrecen el mismo interruptor en su colocación por defecto. - Ajuste del texto: en un recurso colocado en el texto o en un flotante de una columna, Ninguno o el lado de la columna en el que se coloca, con el texto a su lado (
placement.wrap), y su Separación del ajuste (placement.wrapGap) cuando el texto lo rodea; un recurso rodeado de texto sin ancho propio muestra la fracción por defecto de la maquetación. Los tipos de recurso ofrecen ambos campos en su colocación por defecto. Contorno, en una imagen, hace que el texto siga su forma por el lado que indica su Alineación (wrap: "contour"): un mapa de bits muestra entonces Forma según la transparencia (contour.alpha), su Umbral de opacidad (contour.threshold) y el Margen del contorno (contour.margin), y el Sandbox traza el canal alfa a partir del archivo guardado. Si no se conoce la forma de una imagen, se indica bajo los campos.
- Posición:
- Contenido: botones para subir un archivo que sustituya al mapa de bits o al SVG
- Tamaño y resolución: en un mapa de bits, sus píxeles, la resolución que declara su archivo (no indica ninguna, o 72 y 96, con la marca se lee como sin indicar), su tamaño natural en mm a la resolución con la que se maqueta, y los ppp a los que se imprime en la posición en que lo coloca la maquetación actual (los más bajos, si se coloca más de una vez). Por debajo del mínimo de la verificación previa se muestra con el estilo de aviso, y por debajo del crítico, con el estilo crítico, con Abrir en Revisión en un libro preparado para imprenta. Resolución fija los ppp propios de la imagen (
bitmap.resolution; véase Formato del documento › Tamaño de los mapas de bits), y Usar los … ppp del archivo la rellena con los del archivo. Una imagen subida conserva la resolución que declara su archivo (bitmap.fileResolution). - Vídeo: en un recurso de vídeo (Formato del documento › Vídeos):
- Origen: YouTube, Vimeo o Archivo.
- Dirección del vídeo (YouTube, Vimeo): cualquier enlace del vídeo. Cuando el enlace corresponde a un vídeo nuevo, se descargan de la plataforma su imagen de portada, el tamaño del fotograma y el título (el título pasa a ser el texto alternativo si este está vacío); Volver a descargar el fotograma repite la descarga. Si un enlace no corresponde a ningún vídeo de la plataforma, se indica bajo el campo.
- Archivo de vídeo (Archivo): el botón para subir un archivo MP4, WebM, Ogg o QuickTime, con su formato, su tamaño y su duración. Una primera imagen de portada se toma a la décima parte del vídeo. Fotograma de portada reproduce el archivo: detén la reproducción o arrastra hasta el fotograma que quieras imprimir y pulsa Usar este fotograma como portada. Dirección de producción: dónde estará el vídeo publicado (
https://…), la que abren el código QR y el enlace del PDF; sin ella, la versión impresa no lleva código QR ni enlace. - Dirección del vídeo (Archivo, sin archivo subido): el vídeo se reproduce solo desde su dirección, un MP4 o un WebM en un servidor o un flujo HLS (
.m3u8, marcado como Flujo HLS sobre el campo). Al escribir una dirección se leen el tamaño y la duración del vídeo, y Fotograma de portada lo reproduce desde ahí, también si es HLS. Para elegir un fotograma, el servidor debe permitir las lecturas desde otros orígenes (CORS); si no lo permite, el panel lo indica y la imagen de portada se sube a mano. El código QR y el enlace del PDF abren esta dirección. - Portada: la imagen que se imprime, con su tamaño, y un botón para sustituirla por una imagen propia.
- Inicio (s) / Fin (s): la parte que se reproduce; 0 deja el inicio o el final como están.
- Reproductor: los interruptores de este vídeo (controles, botón de descarga, pantalla completa, menú de velocidad, imagen en imagen, reproducción automática, empezar sin sonido, repetir, reproducir junto a otros vídeos), cada uno con Ajuste del libro, Sí o No. Solo aparecen los que admite el reproductor del vídeo.
- Zona segura: en mapas de bits y SVG, la parte de la imagen que siempre se ve (
Resource.safeArea; véase Formato del documento › Zona segura). El campo muestra una miniatura con la zona marcada y su tamaño en porcentaje, o Ninguna cuando la imagen no tiene, con los botones Marcar zona segura / Editar zona segura y Quitar zona segura. El diálogo muestra la imagen: arrastra fuera del rectángulo para dibujar uno nuevo, dentro para moverlo o desde sus tiradores para cambiar su tamaño; con el rectángulo enfocado, las flechas lo mueven y Mayús con las flechas lo redimensiona. Los campos Izquierda, Arriba, Ancho y Alto lo fijan en porcentaje, y dos vistas previas muestran el recorte más alto y el más bajo que permite la zona. - Anclas: en mapas de bits y SVG, los puntos de la imagen en los que se colocan los rótulos de un mapa o de un esquema (
Resource.anchors; véase Páginas compuestas › Figuras con rótulos). El botón Anclas del mismo campo abre el diálogo en su modo Anclas, y el campo cuenta las anclas y los rótulos que aún esperan la suya.- Colocar con clics. En Rótulos sin ancla el diálogo enumera los nombres que usan las líneas
::label[…]{at="…"}del texto y que la imagen no tiene como ancla, y elige el primero: un clic en la imagen lo coloca allí y elige el siguiente, de modo que un mapa con los rótulos ya escritos recibe sus anclas a clic por ancla. Se puede elegir otro nombre, o Dejar de colocar, en cualquier momento. Sin ningún nombre elegido, un clic añadeanchor1,anchor2… y pone el cursor en su nombre. - Cada ancla tiene su Nombre (el id que dan los rótulos), un Estilo de rótulo del diseño (
labelStyles), la Alineación (inicio, centro o final, en la dirección del rótulo), la Alineación vertical, el Giro en grados y el Ancho, una proporción del ancho de la imagen dentro de la cual el rótulo se reparte en líneas (0 conserva su ancho natural). Un ancla nueva toma los campos de rótulo de la que estaba elegida antes, así una serie de ciudades comparte estilo. La lista muestra el texto del rótulo de cada ancla en el capítulo en pantalla (Sin rótulo en el texto si no lo hay) y un campo de filtro cuando la imagen tiene más de ocho. - Para mover un punto, arrástralo; con un punto seleccionado, las flechas lo desplazan (con Mayús, en pasos más largos) y Suprimir lo borra. Las anclas son fracciones de la imagen entera, así que conservan su sitio sea cual sea el recorte que permita la zona segura; si un ancla queda fuera de la zona segura, se marca. Guardar las escribe en el recurso como un solo paso del historial de deshacer.
- En la página. En el modo Diseño, el Canvas muestra la caja de cada rótulo dibujado (en rojo y con la marca no cabe en su ancho cuando no cabe ni siquiera en el tamaño más pequeño de su estilo) y el punto de su ancla. Arrastra el punto o el rótulo para mover el ancla: el rótulo se vuelve a componer donde lo sueltes, y Cmd/Ctrl+Z deshace el movimiento. Un clic abre la imagen en este panel, y un doble clic abre sus anclas en ese mismo panel. Un rótulo colocado con
at="x% y%"se mueve del mismo modo, y donde lo sueltes se reescribe el valor deaten el texto de la edición que hay en pantalla: los porcentajes forman parte del texto propio de esa edición. En el modo Contenido, un clic en un rótulo selecciona su texto en el panel Texto. - Varias a la vez. Cada fila de la lista tiene una casilla, y un clic con Mayús o Ctrl sobre un punto de la imagen también lo marca; Marcar las visibles marca todas las filas que deja el filtro. Las anclas marcadas muestran un único juego de campos (estilo, alineación, alineación vertical, escritura), y un cambio llega a todas como un solo paso del historial. Donde difieren, el campo dice Varios.
- Mapas densos. A partir de 24 anclas, un punto muestra su nombre solo si está elegido, bajo el ratón o marcado, para que las etiquetas no se amontonen; Nombres en la imagen vuelve a mostrarlos todos. Escritura compone en vertical los rótulos de un ancla (
writingMode), y su Ancho pasa a ser una parte de la altura de la imagen. - Solapamiento. Comprobar es el valor por defecto. Permitir (
overlap: 'allow') indica que el original imprime el rótulo de esta ancla tocando a sus vecinos, como en un mapa denso, y el panel Revisión deja de dar el avisolabelOverlappara cualquier pareja de la que forme parte. Las anclas marcadas reciben el valor a la vez. Un estilo de rótulo puede permitirlo para todos sus rótulos (Diseño › Figuras y tablas › Estilos de rótulo). Desde postext 1.42. - Lomo. Evitar es el valor por defecto: en una figura que atraviesa el lomo de una doble página, un rótulo que entraría en la banda del lomo se queda en el borde de esa banda, del lado de su ancla. Cruzar (
gutter: 'cross') lo deja donde lo coloca el punto, como necesita un título que se extiende por las dos páginas. Las anclas marcadas reciben el valor a la vez. Desde postext 1.43. - Zoom. Los botones sobre la imagen,
+,-y0en el teclado, y Ctrl con la rueda o un pellizco la amplían por pasos hasta el 800 %, alrededor del punto bajo el cursor. Una imagen ampliada se mueve con la rueda, con el botón de la mano, o con la barra espaciadora pulsada (o el botón central) y arrastrando. Los puntos conservan su tamaño y, desde el 300 %, un mapa denso muestra todos los nombres (desde postext 1.40). En una pantalla táctil, dos dedos mueven la imagen y separarlos o juntarlos la amplía o reduce en torno al punto que queda entre ellos (desde postext 1.42). - En el visor HTML, el modo Diseño dibuja las mismas cajas y los mismos puntos, y las marcas se mueven como en el Canvas: arrastra un punto, y el ancla (o los porcentajes de un
at) se escribe como un paso del historial (desde postext 1.40). En el Folio, en el modo de selección, las marcas se dibujan en las páginas del libro y se arrastran sobre ellas como en el Canvas: el punto sigue al puntero sobre la textura de la página, al soltarlo se escribe el ancla y una pulsación sobre una marca nunca pasa la página (desde postext 1.42). En una pantalla táctil, un dedo coge un rótulo por su caja, o tocando cerca de su punto, y lo arrastra desde ahí; un dedo sobre el papel en blanco sigue desplazando la página (desde postext 1.43).
- Colocar con clics. En Rótulos sin ancla el diálogo enumera los nombres que usan las líneas
- Fuentes del dibujo: en las figuras SVG, las familias que usa el texto del dibujo (familia, peso, estilo) y qué ha pasado con cada una: incrustada, con su tamaño; declarada en el SVG (el archivo incluye su propio
@font-face); sin archivo de fuente (la imagen recurre a otra fuente), o supera el límite de tamaño. Los estilos se toman de las fuentes personalizadas del libro y, después, de Google Fonts, y solo se incrustan cuando la imagen se muestra o se exporta, nunca en el archivo guardado. Incrustar las fuentes del libro lo desactiva para esta figura (svg.inlineFonts: false), en un SVG que incluye sus propios estilos o que debe quedar tal como está. - Código del SVG: en las figuras SVG, un editor de código bajo el botón de subida. Solo se pueden editar los nodos de texto, es decir, el contenido de los elementos
<text>/<tspan>, resaltado en color en el editor. Si se escribe en cualquier otro sitio, el cambio se rechaza, y los caracteres<,>y&tecleados dentro de un nodo de texto se escapan para que el archivo siga siendo válido. Cada cambio se guarda, tras una breve pausa, como un archivo nuevo, y la figura se vuelve a dibujar (incluido el recoloreado en tinta única). El editor avisa cuando el SVG no tiene nodos de texto. - Vista previa: una simulación en directo del aspecto que tendrá el recurso, con
#en lugar del número (los números reales dependen de dónde caiga el recurso en el documento). El pie empieza con la etiqueta que pone el documento: el prefijo del pie del tipo y el número (Figura #.), solo el prefijo en un tipo numerado con una plantilla vacía (Doc.) y nada en un tipo sin prefijo de pie - Eliminar: pide confirmación antes y avisa de cuántas referencias
::resource/:refdel texto se quedarían sin destino
Editor de tablas. Los recursos de tabla abren un editor de cuadrícula interactivo:
- Barra de herramientas:
- Añadir o quitar filas y columnas, y combinar o dividir celdas.
- Activar o desactivar una fila o una columna de cabecera.
- Fijar la alineación horizontal y vertical de cada celda (arriba, centro o abajo). El contenido de la celda se mueve en bloque dentro de una fila más alta.
- Fijar el relleno de cada celda: un selector de color, que se puede vincular a la paleta, con un botón para quitarlo. El relleno se guarda en
TableCell.backgroundy se muestra en la cuadrícula.
- Anchos de columna: un peso numérico por columna, bajo la cuadrícula (
2, 1, 1da a la primera columna la mitad del ancho; si se deja vacío, todas tienen el mismo ancho), que se guarda entable.model.columnWidths. Al añadir o quitar una columna, los pesos se mantienen alineados, y un enlace Anchos iguales los borra. - Pegar como tabla: al pegar TSV (o CSV sencillo con comillas), se rellena la cuadrícula
- Deshacer/rehacer: Cmd/Ctrl+Z y Mayús+Cmd/Ctrl+Z
- Navegación con el teclado: Tab / Mayús+Tab (que pasan a la fila siguiente al llegar al final) y las flechas mueven el foco entre las celdas
- Edición desde la vista previa: haz clic en una celda de una tabla, en un pie, en una nota o en un fragmento de texto de una figura SVG en cualquiera de las dos pestañas de vista previa. El panel Recursos se abre en ese recurso y da el foco al campo correspondiente, con el cursor en el glifo en el que has hecho clic. Si arrastras, se selecciona un rango dentro de la misma celda o del mismo campo, y con un doble clic se selecciona la palabra. Mientras el campo tiene el foco, su selección se refleja en la página como un resaltado (o como un cursor fino si no hay nada seleccionado), tanto en la pestaña Canvas como en la HTML. Un pie o una nota que un
:::figureescribe con sus propias palabras (::caption[…],::note[…]) se selecciona, en cambio, en el Markdown, donde está escrito.
Todas las ediciones pasan por funciones puras de modelo que exporta el núcleo de postext (addRow, addColumn, removeRow, removeColumn, mergeCells, unmergeCell, setCellContent, setAlignment y parseTSV), de modo que el mismo modelo de tabla se comporta igual dentro y fuera del Sandbox.
Panel de fuentes
Muestra los tipos de letra que usa el libro y gestiona tus propios archivos de fuente junto al catálogo integrado de Google Fonts:
- Tipos de letra de este libro enumera todas las familias que usa el diseño. El nombre de cada familia aparece en su propio tipo de letra, con su función (Texto base, Títulos u Otros elementos) y su origen: Google Fonts, Fontsource (una familia que Google Fonts no tiene), Archivo propio o No encontrada, si no la tiene ningún origen. El origen aparece en cuanto el cargador lo conoce. Los tipos de letra en sí se cambian en Diseño → Tipografía y en Títulos e índice.
- Los archivos con los que se mide un libro. Una familia de Google Fonts o de Fontsource se compone con los archivos estáticos de Fontsource en jsDelivr (
@fontsource/<familia>@5), uno por peso, estilo y subconjunto. Son los mismos archivos que carga un ejemplo del Recetario en CodePen y que incrusta el PDF, así que un libro corta sus líneas por las mismas palabras en las vistas previas, en su PDF y en un ejemplo de CodePen. La línea de comandos maqueta conbodyText.shapingLanguage: 'host', así que allí una línea puede cortarse por otra palabra (véase Diferencias con el Sandbox). Las vistas previas declaran los pesos y estilos que usan el diseño y las páginas, y el navegador carga cada archivo cuando el texto lo necesita. Desde postext 1.30, antes de pintar un capítulo por primera vez, las vistas previas también esperan a todos los estilos que usan sus páginas ya maquetadas, cargados para los caracteres de esas páginas (una familia dividida en más de 16 archivos por estilo, como una china o japonesa, los carga como antes). De postext 1.28.3 a 1.29.2, un estilo que solo usaban las páginas, aplicado a una escritura no latina (la cursiva de los resúmenes del índice de un libro árabe), se pintaba con una fuente de reserva hasta que llegaba su archivo. Un peso intermedio entre dos estilos de una familia variable (por ejemplo, un 450) no tiene archivo estático: las vistas previas lo componen con el archivo variable de Google en ese peso, y el PDF incrusta el estilo más cercano, así que elige un peso que exista en la familia si necesitas que coincidan. Una familia de la que Fontsource no tiene archivos se toma de la hoja de estilos de Google. Todos los archivos de una familia proceden de una sola versión de su paquete, aquella desde la que jsDelivr sirvió su hoja de estilos:@5corresponde a la versión a la que remita cada dirección, de modo que, tras una publicación que vuelve a generar una familia, sus archivos podrían venir, si no, de dos versiones distintas. - Un archivo que tarda en llegar, o que no llega nunca. Los archivos de los estilos de un libro se piden antes de su primera maquetación, y esta los espera mientras sigan llegando: un libro de varios cientos de archivos (uno chino o japonés) con una conexión lenta se maqueta una sola vez, con todos ellos. Las peticiones solo se abandonan cuando ningún archivo de fuente ha recibido nada en 15 segundos; el capítulo se maqueta entonces con los estilos que han llegado, y el resto se sustituye por la fuente de reserva que indican sus avisos. Esa maquetación es provisional: sus recuentos de páginas no se guardan con el libro ni se escriben en un paquete. El archivo se vuelve a pedir tres veces, con medio minuto de intervalo, y también en cada maquetación posterior; cuando llega, se vuelven a maquetar las vistas previas y todos los capítulos maquetados sin él, junto con el índice y las referencias a páginas, y el PDF y el EPUB quedan marcados como desactualizados.
- Un peso o una inclinación que la familia no tiene. Las vistas previas y el PDF componen cada familia con sus propios archivos. Si una familia no tiene negrita (Bangers, Zen Antique y la mayoría de las fuentes de rotulación solo traen un peso) o no tiene cursiva, la negrita y la cursiva se componen con su estilo más cercano tal cual, sin el engrosado ni la inclinación que dibujaría el navegador, y no aparece ningún
fontFallbackpor ellas. Un peso sustituido por otro estilo real de la familia (un 600 compuesto con el 700) sí aparece. Una familia que tiene Fontsource y no Google Fonts, como Commit Mono, se carga desde Fontsource. - Tus archivos de fuente es donde añades, renombras y eliminas familias personalizadas.
- Subir archivo: archivos de cada estilo por peso (100–900) y estilo (normal / cursiva). Se aceptan los formatos WOFF2, WOFF, TTF y OTF, que se detectan por la extensión del archivo. Los archivos se guardan en el IndexedDB del navegador.
- Las familias personalizadas aparecen en todos los selectores de fuente, en un grupo Personalizadas, junto a los resultados de Google Fonts. Una familia personalizada tiene prioridad sobre una de Google Fonts con el mismo nombre.
- En un documento en chino, todos los selectores de fuente muestran primero, bajo Chino simplificado o Chino tradicional, las familias de Google que contienen sus caracteres (los subconjuntos
chinese-simplified,chinese-traditionalychinese-hongkongde Fontsource), y después las demás. - En un documento en árabe (u otra lengua escrita con el alfabeto árabe), todos los selectores de fuente muestran primero, bajo Árabe, las familias de Google con el subconjunto
arabicde Fontsource, empezando por las de libro (Amiri, Noto Naskh Arabic, Scheherazade New, Markazi Text, Lateef, y luego Noto Kufi Arabic, Reem Kufi, Aref Ruqaa, El Messiri). Las vistas previas cargan el archivo árabe de cada fuente antes de la primera composición, y el PDF lo incrusta junto al latino cuando el texto usa los dos. - Los archivos de fuente huérfanos (subidas que ya no usa ninguna familia) se eliminan de IndexedDB automáticamente.
#Móviles y pantallas pequeñas
Por debajo de 768 px de ancho, el Sandbox pasa a una disposición propia:
- Paneles. La barra de paneles pasa al pie de la ventana: primero un botón Vista y después los mismos botones en el mismo orden, en dos filas de cuatro por debajo de 352 px. Un panel abierto cubre la vista previa en lugar de quedar a su lado; la vista previa se queda debajo, donde estaba, fuera del orden de tabulación, así que al cerrar el panel vuelve a aparecer en la misma página.
- Barra superior. Las pestañas de salida, el selector del alcance (en las pestañas EPUB y SCORM, el tipo de maquetación) y los controles de la aplicación anfitriona (zonas táctiles grandes, tema, idioma) comparten la barra que hay sobre la vista previa. Por debajo de 640 px, ocupa dos filas: arriba, el logotipo, el alcance y los controles; abajo, las pestañas, a todo el ancho; a 320 px caben las cinco pestañas.
- Barras de herramientas. Las barras flotantes de las vistas previas se acoplan al pie de la vista previa y pasan a una segunda fila cuando no caben. El carril de ediciones del Canvas es una fila en la parte superior de la vista previa.
- Folio. La pestaña Folio no se ofrece en la pantalla de un móvil (consulta Pestaña Folio).
- PDF. Los móviles y las tabletas solo táctiles no pueden mostrar un PDF dentro de la página (Android no tiene un visor integrado, e iOS solo dibuja la primera página), así que la pestaña PDF muestra en su lugar una tarjeta con Abrir PDF, que abre el archivo en una pestaña nueva; Descargar, en la barra de herramientas, sigue permitiendo guardarlo.
- Pantallas táctiles. Mover un rótulo con el dedo en el Canvas y en el visor HTML (desde postext 1.43), el modo de selección del Folio y el pellizco y el desplazamiento con dos dedos del diálogo de anclas se han probado con la emulación táctil del navegador y con eventos táctiles reales, en una pantalla del tamaño de un móvil y en otra del tamaño de una tableta. No se ha probado en ningún dispositivo físico: un navegador que interprete
touch-actionde otra forma puede desplazar la página donde el Sandbox espera un arrastre. Si un gesto no funciona bien, indica el navegador y el dispositivo.
(se abre en una nueva pestaña)#Hoja de ruta
Están previstas para próximas versiones las siguientes funciones:
- Edición colaborativa: editar un mismo libro a la vez desde varios navegadores