0

关于我最近发现的 knitr 的一般问题,我有更多未解决的问题。当我通过闪亮简单地编译文档时:

output$report = downloadHandler(
    filename = reactive({paste0(input$filename,'.pdf')}),

    content = function(file) {
      out = knit2pdf(input = 'pdf_shell.Rnw')
      file.rename(out, file)
    },

    contentType = 'application/pdf'
  )

一些乳胶包作为eso-pichyperref不工作并导致错误Running ' texi2div ' on ' pdf_shell.tex ' failed。包含某些compiler = 'xelatex'功能的帮助但会破坏其他功能(例如,功能不起作用并覆盖文本)。knit2pdf \TextField

因此,我的问题是,有谁知道我如何使用默认编译器编译 PDF pdflatex,而不会出现上述错误?或者您可能有任何可以以不同方式解决问题的专业技巧。非常感谢任何输入。

编辑:我不得不提到,当我通过 R Studio 运行应用程序时,一切正常。当我将应用程序功能(和乳胶包)上传到 shinyapps.io 时,它会中断

编辑 2:我发现当我在 .Rnw 文件中包含额外的反斜杠时,文件编译正确。所以版本不起作用:

\begin{Form}
\begin{tabularx}{\textwidth}{p{8cm}}
Description \\
\TextField[name=1, multiline=true, width=\linewidth,height=0.6in, bordercolor = 1 1 1, charsize=0pt]{} \\
\end{tabularx}
\end{Form}

有效的版本:

\begin{Form}
    \begin{tabularx}{\textwidth}{p{8cm}}
    Description \\\
    \TextField[name=1, multiline=true, width=\linewidth,height=0.6in, bordercolor = 1 1 1, charsize=0pt]{} \\\
    \end{tabularx}
    \end{Form}

有人能解释我为什么会这样吗?

4

1 回答 1

1

经过一些研究,我发现一些像hyperref( ) 这样的包在使用( proofTextFields )编译时通常可能无法与普通表一起使用,但应该在 p 列中编译,如下所示: xelatex

\begin{Form}
\begin{tabularx}{\textwidth}{p{8cm}}
Description \\
\TextField[name=1, multiline=true, width=\linewidth,height=0.6in, bordercolor = 1 1 1, charsize=0pt]{} \\
\end{tabularx}
\end{Form}

但是,它并没有解决 Shiny 内部的问题。为了使它工作,我必须在行之间拆分时再添加一个反斜杠(不知道为什么)。所以如果你想让它工作,你必须添加额外的反斜杠,结果代码应该如下所示:

\begin{Form}
    \begin{tabularx}{\textwidth}{p{8cm}}
    Description \\\
    \TextField[name=1, multiline=true, width=\linewidth,height=0.6in, bordercolor = 1 1 1, charsize=0pt]{} \\\
    \end{tabularx}
    \end{Form}
于 2016-05-06T14:47:20.810 回答