# Libros de páginas compuestas

> Un recorrido por el Sandbox con un libro de texto escolar hecho de páginas compuestas: crear una plantilla de página, rellenarla desde el Markdown, rotular un mapa, traducir la página, arreglar lo que no cabe y seleccionar sobre la página y en el texto

- Versión HTML: https://postext.dev/es/docs/composed-page-books
- Última actualización: 2026-10-17
- Tiempo de lectura: 12 min
- Otros idiomas: [en](https://postext.dev/en/docs/composed-page-books.md), [ca](https://postext.dev/ca/docs/composed-page-books.md), [de](https://postext.dev/de/docs/composed-page-books.md), [fr](https://postext.dev/fr/docs/composed-page-books.md), [it](https://postext.dev/it/docs/composed-page-books.md), [pt](https://postext.dev/pt/docs/composed-page-books.md), [zh](https://postext.dev/zh/docs/composed-page-books.md), [ja](https://postext.dev/ja/docs/composed-page-books.md), [ar](https://postext.dev/ar/docs/composed-page-books.md)

## En pocas palabras

Esta página enseña, paso a paso, a hacer en el Sandbox una página de libro de texto escolar, con una banda de título, un texto y cajas de colores. Partes de un libro de ejemplo ya terminado y le añades una página. Primero dibujas la página como plantilla, después viertes en ella el texto desde el Markdown, y luego pones nombre a los lugares de un mapa y traduces la página a otro idioma. Al final ves qué hacer cuando un texto es demasiado largo para su caja y cómo saltar entre la página y su texto.

**Construyes una página de un libro de texto a partir de una plantilla, la rellenas con texto del Markdown, rotulas un mapa, traduces la página y arreglas lo que no cabe.**

La página de un libro de texto escolar es un conjunto de cajas: una banda de título, un texto, una caja para una definición, otra para una actividad, un mapa. Postext maqueta una página así a partir de una **plantilla de página** que guarda las cajas (sus marcos), y el Markdown solo dice qué palabras van en cada marco. Esta página recorre todo el trabajo en el Sandbox, sobre un libro que ya existe, y le añade una página. Las páginas de referencia explican qué hace cada campo y cada línea de Markdown; aquí haces cada cosa una vez, en orden, y ves qué cambia: [Páginas compuestas](https://postext.dev/es/docs/composed-pages.md) trata del Markdown, [Configuración › Páginas compuestas](https://postext.dev/es/docs/configuration-composed-pages.md) de la plantilla y [Sandbox: las páginas compuestas](https://postext.dev/es/docs/sandbox-composed-pages.md) de las pantallas.

Solo necesitas un navegador. Todo ocurre en el Sandbox, y lo que cambias se queda en tu navegador.

## 1. Abre el libro

El libro es *Nuestro río*, una unidad de un libro de texto de tercero de primaria que el [Recetario](https://postext.dev/es/cookbook/children-textbook-pages.md) publica como la receta nº 156. El río, los pueblos y las imágenes están inventados para esa receta. Tiene nueve páginas, con un mapa pintado que cruza dos páginas enfrentadas, y viene en español, catalán e inglés.

[Ábrelo en el Sandbox](https://postext.dev/es/sandbox.md#recipe=children-textbook-pages&lang=es). La primera vez se añade a **Libros** como un libro tuyo, y puedes cambiarlo con libertad; si pones `lang=ca` o `lang=en` en el enlace, se abren las otras ediciones. Si más adelante vuelves a entrar por el mismo enlace, el Sandbox pregunta si quieres abrir tu copia o sustituirla por la publicada.

Antes de tocar nada, dos cosas:

- La barra que hay sobre la vista previa tiene un conmutador con **Contenido** y **Diseño**. En modo Contenido editas palabras, en el panel **Texto** o sobre la página. En modo Diseño editas plantillas de página y estilos, y el texto es de solo lectura. **Alt+Mayús+M** (**⌥⇧M** en un Mac) cambia de uno a otro.
- El panel **Texto** muestra un capítulo de Markdown. Cada página compuesta es un bloque que empieza con `::::page{template="…"}` y acaba con cuatro dos puntos. Si haces clic en unas palabras de una página de la vista previa, el cursor salta a ellas en el Markdown.

## 2. Crea una plantilla de página

La página nueva será una página de repaso: una banda de título, un texto corto debajo y dos cajas, una para recordar lo aprendido y otra para ponerlo a prueba. Hace falta una plantilla con cuatro marcos.

1. Pasa a **Diseño** y abre el panel **Diseño** de la izquierda. Elige **Página y columnas** y después **Plantillas de página**. La lista muestra cada plantilla del libro con un dibujo de sus marcos.
2. Pulsa **Nueva**. Se abre una plantilla llamada *Plantilla nueva*. Dale el **ID** `review` (el nombre que usará el Markdown) y el **Nombre** `Página de repaso` (el que muestra este panel). El ID admite letras minúsculas, cifras y guiones.
3. La plantilla empieza con un marco, `text`, que **Recibe el texto suelto de la página**. Conviértelo en la banda de título: **Nombre (ranura)**: `title`; **Estilo de caja**: `portada`, la banda azul que el libro ya usa para sus títulos; desactiva **Recibe el texto suelto de la página**; **Recibe el primer título**: *Nivel 1*, para que este marco reciba el primer encabezado `#` de la página.
4. Pulsa **Añadir marco**. El marco nuevo se abre debajo de la lista de marcos. **Nombre (ranura)**: `text`, y activa **Recibe el texto suelto de la página**: todo lo que la página escriba fuera de un marco va aquí.
5. Añade otro marco. **Nombre (ranura)**: `remember`. **Estilo de caja**: `dato-campo`, una caja verde con pestaña. **Alto mínimo**: 30 mm, para que la caja no se quede pequeña cuando su texto sea corto.
6. Añade un último marco. **Nombre (ranura)**: `try`. **Estilo de caja**: `actividad-sol`. **Alto mínimo**: 30 mm.
7. En `text`, `remember` y `try` pon **Ancho** en *Hasta el borde* y **Alto** en *Su contenido*: así ocupan todo el ancho de la página y tienen la altura de su texto.
8. En **Grupos** pulsa **Añadir grupo**. Llámalo `column`, déjalo en *Apilados* y pon **Espacio entre marcos** en 6 mm. En **Marcos del grupo, en el orden de la página** marca los cuatro marcos. El grupo los conserva en el orden de la lista de marcos, así que el título va primero. Un grupo coloca sus marcos uno debajo de otro y empuja los de abajo cuando un marco crece; por eso un texto más largo en la primera caja baja la segunda en lugar de pisarla.

![El panel Diseño en Plantillas de página con la plantilla Página de repaso: sus cuatro marcos y su grupo, y los mismos marcos dibujados con contorno discontinuo sobre la página.](https://postext.dev/docs-shots/es/template.webp)

*La plantilla: cuatro marcos y un grupo. En la página, las cajas discontinuas son los marcos y las etiquetas verdes dicen cómo se dimensiona cada uno.*

La plantilla no lleva palabras. Nada de lo que has puesto dice cuál es el título ni qué contienen las cajas: el estilo de caja da su aspecto a cada marco, y el grupo, su orden. Hay otros caminos hacia la misma plantilla. En modo Diseño puedes dibujar con el ratón un marco en un hueco vacío de una página compuesta y mover o cambiar de tamaño los que ya tienes (véase [Sandbox: las páginas compuestas](https://postext.dev/es/docs/sandbox-composed-pages.md#plantillas-de-página)); **Duplicar** copia una plantilla para modificarla, y **Guardar maqueta como plantilla** convierte en plantilla nueva una página compuesta que te gusta.

## 3. Rellena la página desde el Markdown

1. Pasa a **Contenido**, abre el panel **Texto** y pulsa **Ctrl+Fin** (**Cmd+↓** en un Mac) para ir al final del capítulo.
2. Pulsa **Página compuesta** en la barra de herramientas del panel Texto. Un selector lista las plantillas de página del libro, cada una dibujada con sus marcos vacíos. Elige *Página de repaso*.
3. El Sandbox escribe la página por ti, con un marco vacío por cada ranura, y selecciona la palabra `title` del encabezado. Escribe el título encima.

```md
::::page{template="review"}
# Repasa lo aprendido

Un río cambia mientras baja de las montañas al mar. Lee los recuadros y respóndelos con tus propias palabras.

:::frame{slot="remember" label="Recuerda"}
Un manantial da un hilo de agua, los arroyos se unen en un río y el río se ensancha al acercarse al mar.
:::

:::frame{slot="try" label="Inténtalo"}
Dibuja un río desde su manantial hasta el mar. Escribe en tu dibujo el nombre de los tres cursos.
:::
::::
```

El encabezado va al marco que recibe el nivel 1, el párrafo que le sigue al marco que recibe el texto suelto, y cada `:::frame` al marco de su `slot`. El `label` son las palabras de la pestaña de una caja. La página aparece en el lienzo como la página 10, después de las nueve de la unidad: una página compuesta siempre empieza página nueva.

![El panel Texto con el Markdown de la página nueva y, a su lado, la página terminada con un título azul, un párrafo y dos cajas con pestaña.](https://postext.dev/docs-shots/es/fill.webp)

*La página en el Markdown y en el lienzo.*

Fíjate en lo que el Markdown no dice: ni una posición, ni un tamaño, ni un color. Eso pertenece a la plantilla, y el mismo Markdown maquetado con otra plantilla tendría otro aspecto.

## 4. Rotula el mapa

Las páginas 6 y 7 llevan un mapa pintado que cruza la doble página. Sus palabras no forman parte de la imagen. Cada nombre es una línea del Markdown, dentro del `:::figure` del mapa:

```md
:::figure{resource="mapa" slot="mapa"}
::label[Nacimiento]{at="nacimiento"}
::label[Molinar]{at="molinar"}
::label[Curso bajo]{at="bajo"}
:::
```

`at` nombra un **ancla**: un punto de la imagen, definido una sola vez en el recurso de la imagen y compartido por todos los idiomas. Para añadir el puente de piedra de Molinar:

1. En el panel Texto ve a la figura del mapa (busca `at="bajo"`) y añade una línea debajo del último rótulo: `::label[Puente de piedra]{at="bridge"}`.
2. Abre **Revisión**. En la lista aparece una entrada *Rótulo en un ancla que no existe* para la página 6: la imagen no tiene ningún ancla llamada `bridge`. Pulsa el botón con la chincheta de la entrada, *Colocar el ancla bridge en la imagen*.
3. Un cuadro muestra el mapa con las anclas que tiene. El nombre `bridge` está elegido en *Rótulos sin ancla*. Haz clic en la imagen, donde está el puente.
4. Pon el **Estilo de rótulo** del ancla nueva en `pueblo`, el estilo de los pueblos, y pulsa **Guardar**.

![El cuadro Anclas: el mapa con sus puntos, el ancla nueva llamada bridge elegida y su campo de estilo de rótulo.](https://postext.dev/docs-shots/es/anchor.webp)

*El ancla nueva es un clic en la imagen; su estilo de rótulo hace que se parezca a los nombres de los pueblos.*

![El mapa que cruza las páginas 6 y 7 con el rótulo nuevo Puente de piedra sobre el puente, junto a los rótulos de los pueblos.](https://postext.dev/docs-shots/es/map.webp)

*El rótulo queda en el punto en que hiciste clic, con las fuentes del propio libro.*

Las palabras *Puente de piedra* son Markdown; el punto es parte de la imagen. Cuando traduzcas la página, la misma ancla recibirá otras palabras.

## 5. Traduce la página

Una traducción es la misma plantilla con otras palabras. El Sandbox admite dos maneras de guardarla. Un libro puede llevar varios idiomas a la vez, como un archivo `.postext` con una edición para cada uno; entonces la barra que hay sobre el lienzo cambia entre ellos y el panel Revisión los lee todos (véase [Ediciones de un libro](https://postext.dev/es/docs/sandbox-previews.md#ediciones-de-un-libro)). La manera más sencilla, que no necesita ningún archivo, es una copia del libro en el otro idioma:

1. Abre **Libros**, pulsa **⋯** en tu libro y elige **Duplicar**, o pulsa **Nuevo** y elige **Copia del libro abierto**. Abre la copia. Lleva el mismo nombre que el original: cámbialo con **Cambiar nombre…** en el mismo menú.
2. En el panel **Diseño** abre **Escritura** y, en **Idioma y dirección**, elige el **Idioma del documento**: inglés. La separación en sílabas, las comillas y las palabras que escribe el propio motor (como *Continued* en el corte de una caja) siguen ese idioma.
3. En el panel **Texto** traduce las palabras y deja lo demás.

| Traduces | Lo dejas como está |
| --- | --- |
| El texto de los encabezados, los párrafos y las listas | Los cuatro dos puntos, la palabra `page` y el `template="…"` de la valla |
| El `label="…"` de un marco | El `slot="…"` de un marco |
| El texto entre corchetes de `::label[…]`, `::alt[…]` y `::caption[…]` | El `at="…"` de un rótulo y el `resource="…"` de una figura |

Las imágenes, las anclas, las cajas y sus colores pasan a la copia sin que tengas que hacer nada. Una copia de la página de repaso en inglés queda así:

```md
::::page{template="review"}
# Check what you have learned

A river changes as it runs from the mountains to the sea. Read the boxes, then answer them in your own words.

:::frame{slot="remember" label="Remember"}
A spring gives a trickle, streams join into a river, and the river widens as it nears the sea.
:::

:::frame{slot="try" label="Try it"}
Draw a river from its spring to the sea. Write the names of the three courses on your drawing.
:::
::::
```

![La copia del libro en el otro idioma: el panel Texto con la página traducida y, en el lienzo, la página con el título, el texto y las pestañas traducidos.](https://postext.dev/docs-shots/es/translate.webp)

*La página traducida: la plantilla es la misma, las palabras no.*

## 6. Revisa lo que no cabe

Las palabras no miden lo mismo de un idioma a otro, y una caja que contenía el texto en un idioma puede no contener el del otro. El panel Revisión encuentra esos marcos. Para ver uno, pega tres o cuatro párrafos más de cualquier texto en el marco `remember` de la página traducida, de modo que contenga más de lo que la página puede dar de sí.

Ahora la página muestra el marco con un contorno rojo y, bajo su pie, una banda que dice cuánto falta (*faltan 14,9 mm*). En **Revisión**, bajo *Páginas compuestas*, la entrada *El texto no cabe en su marco* explica qué probó la maquetación antes de rendirse (más sitio de los marcos vecinos y, después, un texto más pequeño) y enumera las salidas como botones:

- *deja que el texto baje al 82,5 % (fit.minScale)* permite que el texto de este marco se reduzca hasta ese tamaño. Sirve cuando sobran pocas líneas.
- *haz que siga en la página siguiente (overflow.continueIn)* manda lo que no cabe a una página añadida después de esta. Sirve para un texto más largo.
- *recorta unos 303 caracteres* no cambia nada. Selecciona el texto del marco y te dice cuánto debes quitar.

Un botón que cambia la plantilla (y con ella todas las páginas que la usan) pregunta antes y nombra el ajuste. Pulsa **Cambiar**. La página se maqueta de nuevo, la caja termina con la palabra del corte (*Continued*) y el resto sigue al principio de una página añadida. **Cmd/Ctrl+Z** deshace el cambio. **Reajuste**, en la barra que hay sobre el lienzo, abre *Qué se ha movido y por qué*: los marcos cuyo tamaño o lugar cambió la maquetación para que cupiera su contenido, con el motivo en palabras.

![El panel Revisión con la entrada El texto no cabe en su marco y tres botones con salidas posibles, y la página con su primera caja marcada con un contorno rojo y una banda que dice faltan 14,9 mm.](https://postext.dev/docs-shots/es/checks.webp)

*Un marco que no cabe, y los arreglos que la maquetación ha calculado para él.*

## 7. Selecciona sobre la página y en el texto

La página y su Markdown se siguen el uno al otro.

- **De la página al texto.** Haz clic en las palabras de un marco: el cursor salta a ese párrafo en el panel Texto, y una ruta bajo la vista previa dice dónde estás (*Página 10 › column › try › párrafo 1*). En modo Diseño, ese mismo clic elige el marco para el editor de plantillas.
- **Del texto a la página.** Pon el cursor en un párrafo y en la página se marcan con un contorno el marco que lo contiene y el propio párrafo; la misma ruta dice dónde están.
- **Desde una revisión.** Haz clic en una entrada del panel Revisión y el Sandbox te lleva a la página, elige el marco y pone el cursor en su texto. En un libro con varias ediciones, cambia a la edición que tiene el problema.
- **En la pestaña de una caja.** Haz doble clic y se abre encima un campo para el `label`. Intro guarda el cambio y Esc lo abandona.

![La página con la segunda caja marcada con un contorno naranja y el panel Texto mostrando el marco elegido en su Markdown.](https://postext.dev/docs-shots/es/select.webp)

*Un clic en la página pone el cursor en su Markdown, y la ruta bajo la vista previa dice de qué marco se trata.*

## Dónde seguir

- [Pasar un libro a páginas compuestas](https://postext.dev/es/docs/migrating-to-composed-pages.md): un libro que guarda el texto de sus páginas en sus estilos puede pasarlo al Markdown.
- [Páginas compuestas](https://postext.dev/es/docs/composed-pages.md): cada atributo de la valla de página, de la figura y de las líneas de rótulo, cómo se compone una página y cada aviso con su arreglo.
- [Configuración › Páginas compuestas](https://postext.dev/es/docs/configuration-composed-pages.md): cada campo de una plantilla, de un marco y de un grupo, la herencia y las dobles páginas.
- [Sandbox: las páginas compuestas](https://postext.dev/es/docs/sandbox-composed-pages.md): las pantallas de las plantillas, los estilos de marco, las revisiones en todas las ediciones y los arreglos.
