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.

Incluyendo múltiples líneas en blanco en un bucle for en R Markdown con salida en formato PDF

Estoy utilizando r markdown para crear algunos estímulos. Mi intención es generar archivos pdf a partir del r markdown.

Dado que hay 24 estímulos, estoy utilizando un bucle for para recorrer los estímulos y crear la salida.

Lo que estoy intentando hacer actualmente es averiguar si es posible agregar varias líneas en blanco para la salida en pdf dentro del bucle for.

Mi código actual se ve así:

for (row in 1:nrow(D2)){
  a = D2 %>% select(Prob) %>% slice(row) %>% pull
  print(a)
  cat("\n")
  print("Por favor, muestre su trabajo y escriba su respuesta a continuación")
  cat("\n") 
  print("Escriba su respuesta aquí")
  cat("\n\\newpage\n")
}

La salida en pdf se ve algo como esto:

Texto del problema

Por favor, muestre su trabajo y escriba su respuesta a continuación

Escriba su respuesta aquí

Pero lo que espero tener es:

Texto del problema

Por favor, muestre su trabajo y escriba su respuesta a continuación

Escriba su respuesta aquí

para que haya algún espacio en blanco después del texto.

He intentado incluir múltiples cat("\n") en el código, pero parece que solo se intenta incluir un salto de línea y agregar varios no aumenta la cantidad de líneas en blanco en la salida.

También he intentado utilizar el código <br> o cat("<br>") pero tampoco funciona.

Me pregunto si hay alguna sugerencia para agregar líneas en blanco dentro de un bucle for. Gracias de antemano.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Es posible agregar varias líneas en blanco en la salida del bucle for para la generación de un documento pdf en R Markdown. Una opción es utilizar el código LaTeX \vspace{} para agregar espacio vertical. Por ejemplo, para agregar 8 líneas en blanco de espacio, puedes utilizar cat("\\vspace{8\\baselineskip}").

    Aquí tienes un fragmento de código actualizado que debería lograr el resultado deseado con espacio en blanco:

    for (row in 1:nrow(D2)){
      a = D2 %>% select(Prob) %>% slice(row) %>% pull
      print(a)
    
      cat(" \n")  # agregar una línea en blanco antes de "Por favor muestra tu trabajo..."
    
      print("Por favor muestra tu trabajo y escribe tu respuesta a continuación")
    
      # agregar 8 líneas en blanco de espacio
      cat("\\vspace{8\\baselineskip}")
    
      print("escribe tu respuesta aquí")
    
      # agregar 3 líneas en blanco de espacio
      cat("\\vspace{3\\baselineskip}\\newpage\n")
    }
    

    Ten en cuenta que se utiliza   para agregar una línea en blanco, ya que cat(" \n") puede no funcionar en algunos casos. Además, se utiliza \newpage para forzar un salto de página después de cada iteración del bucle.

    ¡Espero que esto sea útil! Déjame saber si tienes alguna pregunta adicional.

Comments are closed.