es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cambie la fuente de la tabla utilizando kable y/o kableExtra para la exportación en formato pdf desde shiny

He creado una aplicación brillante donde el usuario puede descargar una versión formateada de una tabla como un pdf. He podido dar estilo a la tabla según mis necesidades utilizando kable y kable_extra, pero no he podido cambiar la fuente.

A continuación se muestra un ejemplo reproducible. He intentado definir la fuente utilizando el parámetro “html_font” en “kable_styling” y utilizando el parámetro “latex_header_includes” en “save_kable”. El código a continuación muestra mis últimos intentos de formateo con ambos métodos, pero he intentado muchos otros.

¿Alguien puede aconsejarme cómo puedo cambiar la fuente?

“`{r}
df <- data.frame(animal = c(“cat”, “dog”, “horse”, “lemur”), lifespan = c(15, 12, 25, 37))

x <- kable(df, "latex", booktabs = T, linesep = c("", "", "", "\hline"), col.names = NULL) %>%
add_header_above(c(“Animal Lifespans” = 2), line = F) %>%
kable_styling(font_size = 5, full_width = TRUE, html_font = ‘”Arial Narrow”‘)

save_kable(x, “~/Downloads/test.pdf”)
“`

He intentado agregar la fuente añadiendo el código a continuación como un parámetro a la función save_kable, pero obtengo errores

latex_header_includes = c("\\usepackage{helvet}", "\\renewcommand{\\familydefault}{\sfdefault}")

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para cambiar la fuente de la tabla en el PDF generado, debes especificar la fuente que deseas usar en el paquete LaTeX que genera el PDF.

    Una forma de hacer esto es agregando el parámetro latex_header_includes a la función save_kable y especificando los siguientes comandos LaTeX:

    “`{r}
    latex_header_includes = c(“\usepackage{helvet}”, “\renewcommand{\familydefault}{\sfdefault}”)


    Esto utilizará el paquete `helvet` para establecer la fuente como Helvetica. Tu código actualizado se vería así: ```{r} df <- data.frame(animal = c("gato", "perro", "caballo", "lemur"), lifespan = c(15, 12, 25, 37)) x <- kable(df, "latex", booktabs = T, linesep = c("", "", "", "\\hline"), col.names = NULL) %>% add_header_above(c("Esperanza de vida de los animales" =2), line = F) %>% kable_styling(font_size = 5, full_width = TRUE) save_kable(x, "~/Downloads/test.pdf", latex_header_includes = c("\\usepackage{helvet}", "\\renewcommand{\\familydefault}{\\sfdefault}"))

    Esto generará un PDF con la tabla utilizando la fuente Helvetica. Si deseas usar una fuente diferente, reemplaza helvet con el nombre de la fuente que desees usar.

Comments are closed.