Yes, you can design pages in R
Thanks to the magical {pagedown} package and paged HTML documents.
🇪🇸 Este post está escrito en inglés y español. Puedes encontrar el texto en español más abajo.
🇺🇸 Designing the pages in your document doesn’t have to be hard. Here, you’ll learn a few tricks to go from a blank canvas to an awesome custom template. This post is for you if you want to:
Add page breaks wherever you want.
Add logos or other elements to your page design.
Add page numbers.
Page Breaks
Controlling where a page should break is pretty easy. You only need to add one line of code to your R Markdown. For example, you may want a page break right before a Level 1 heading:
\newpage
# My Heading 1
Try it now! Just add \newpage
somewhere in your R Markdown file, knit it, and check that the page break happened where it was supposed to.
Page Background
I have a trick for you. If you are writing a report or document that needs to be branded with your lab, university, company, or organization colors and logo, you can use an image with custom logos and colors as page background 🤯. Using an image allows you to avoid writing code to define colors, horizontal lines, logos, etc.
Once you have a background image, you can adapt the following code for your CSS
file:
/* pages */
@page {
size: letter;
background-image: url("images/compa_page_background.png");
background-size: 100%;
}
In this example, I use @page
to define the size of our pages, where to find the image that will be used in the background, and the size of the background image. background-image
says where to find the image (in the images
folder in your working directory) and the name of the file (compa_page_background.png
).
Page numbers
Now that you have an awesome template to build from, you can add details such as page numbers. Anything you will want to improve in your page design, needs to be defined inside @page {}
. In this case, we can add page numbers to the bottom left corner of each page:
/* pages */
@page {
size: letter;
background-image: url("images/compa_page_background.png");
background-size: 100%;
@bottom-left-corner {
content: counter(page);
color: #693bd7;
font-size: 9pt;
font-family: Helvetica;
font-weight: bold;
}
}
A few important things to highlight:
@bottom-left-corner { }
is inside the definition of@page { }
I’m using the same properties I used to define the fonts for
body
,h1
, andh2
before.I’m using
color:
to define a custom font color. You can use this property in any other text element, includingbody
,h1
, andh2
.
Are you ready to redesign the pages in your documents!? Let me know how it goes!
🧗 Next step: Designing the front and back covers of your document.
🇪🇸 Diseñar las páginas de tu documento no tiene por qué ser difícil. Aquí, aprenderás algunos trucos para pasar de un lienzo en blanco a una increíble plantilla personalizada. Este post es para ti si quieres:
Agregar saltos de página donde quieras.
Agregar logotipos u otros elementos a tu diseño de página.
Agregar números de página.
Saltos de página
Controlar dónde debería haber un salto de página es bastante fácil. Solo necesitas agregar una línea de código a tu R Markdown. Por ejemplo, es posible que quieras un salto de página justo antes de un encabezado de nivel 1:
\newpage
# Mi encabezado 1
¡Pruébalo ahora! Simplemente añade \newpage
en algún lugar de tu archivo R Markdown, compílalo y verifica que el salto de página ocurrió donde se suponía que debía ocurrir.
Fondo de página
Tengo un truco para ti si estás escribiendo un informe o documento que necesita ser personalizado con los colores y el logotipo de tu laboratorio, universidad, empresa u organización. Puedes usar una imagen como fondo de página 🤯.Usar una imagen te permite evitar escribir código para definir colores, líneas horizontales, logotipos, etc.
Una vez que tienes una imagen de fondo, puedes adaptar el siguiente código para tu archivo CSS
:
/* páginas */
@page {
size: letter;
background-image: url("images/compa_page_background.png");
background-size: 100%;
}
En este ejemplo, uso @page
para definir el tamaño de nuestras páginas, dónde encontrar la imagen que se utilizará en el fondo y el tamaño de la imagen de fondo. background-image
indica dónde encontrar la imagen (en la carpeta images
de tu directorio de trabajo) y el nombre del archivo (compa_page_background.png
).
Números de página
Ahora que tienes una increíble plantilla para construir, puedes agregar detalles como números de página. Todo lo que quieras mejorar en tu diseño de página, necesita ser definido dentro de @page {}
. En este caso, podemos agregar números de página en la esquina inferior izquierda de cada página:
/* páginas */
@page {
size: letter;
background-image: url("images/compa_page_background.png");
background-size: 100%;
@bottom-left-corner {
content: counter(page);
color: #693bd7;
font-size: 9pt;
font-family: Helvetica;
font-weight: bold;
}
}
Algunos puntos importantes a destacar:
@bottom-left-corner { }
está dentro de la definición de@page { }
Estoy usando las mismas propiedades que utilicé para definir las fuentes para
body
,h1
yh2
antes.Estoy usando
color:
para definir un color de fuente personalizado. Puedes usar esta propiedad en cualquier otro elemento de texto, incluyendobody
,h1
yh2
.
¿Estás listo para rediseñar las páginas de tus documentos? ¡Dime cómo te va!
🧗 Siguiente paso: Diseñar la portada y contra-portada de tu documento.