一页循环输出两个问题-r markdown

Output two questions from a loop in one page-r markdown

我目前的数据框看起来像

idx = c(1:6)
Prob = c("4+0.4","1.5+9","1.1+0.6","0.4+1","0.25+0.5","0.25+1.1")
D2 = data.frame(idx,Prob)

我正在尝试使用 Rmarkdown 文件创建一个循环遍历文件中每个问题的小册子。 我当前的代码看起来像这样,我将它编织成 pdf:

{r echo=F, comment=NA, results='asis'}
    for (i in 1:nrow(D2)){
      a = D2%>% select(Prob) %>% slice(i) %>% pull
      cat("  \n") 
      cat("\vspace{1cm}")
      cat(i,".",a)
      cat("  \n") 
      cat("\vspace{1cm}")
      cat("\begin{Form}
        \TextField[width = 16cm,%
                   height = 7cm,%
                   multiline=true,%
                   value = {%
                                 Please show your work here
                            }%
                   ]{}
    \end{Form}")
      cat("  \n") 
      cat("\vspace{7cm}")
      cat("  \n") 
      cat("\begin{Form}
        \TextField[width = 16cm,%
                   height = 3cm,%
                   multiline=true,%
                   value = {%
                                 Please write your answer here
                            }%
                   ]{}
    \end{Form}")
      cat("\newpage  ")
    }

当前输出看起来像这样,每页有一个问题。 我想在一页上有两个问题,但我不知道该怎么做。任何帮助将不胜感激。

我不得不从您的代码中删除 spaces,但这有效。我注释掉了一些垂直的space。由于页面大小,这会自动设置每页两个。 (虽然,我确实在块之前在 R Markdown 中添加了 \newpage,因此标题和所有内容都不会与表单位于同一页面上。

如果你想强制执行下一页,你可以使用最后注释掉的if语句将\newpage添加到每个其他表格。 (它通过查找模 AKA 余数来检查 i 是偶数还是奇数。)

\newpage

```{r echo=F, comment=NA, results='asis'}
    for (i in 1:nrow(D2)){
      a = D2%>% select(Prob) %>% slice(i) %>% pull
      cat("  \n") 
      cat("\vspace{1cm}")          # removed
      cat(i,".",a)
      cat("  \n") 
      # cat("\vspace{1cm}")
      cat("\begin{Form}
        \TextField[width = 16cm,%
                   height = 6cm,%.   # I reduced here by 1, as well
                   multiline=true,%
                   value = {%
                                 Please show your work here
                            }%
                   ]{}
    \end{Form}")
      cat("  \n") 
      # cat("\vspace{7cm}")        # removed
      cat("  \n") 
      cat("\begin{Form}
        \TextField[width = 16cm,%
                   height = 3cm,%
                   multiline=true,%
                   value = {%
                                 Please write your answer here
                            }%
                   ]{}
    \end{Form}")
     # if((i %% 2) == 0) cat("\newpage  ")
    }
```