使用R/exams2pdf()生成PDF文档

使用R/exams2pdf()生成PDF文档,r,r-exams,R,R Exams,我是R/TEAMS软件包的新手,我尝试从开发人员提供的一个模板生成一个pdf文档。() 我能够使用命令将Rnw文件编译成HTML文档 library("exams") exams2html("confint3.Rnw") 调用函数时 exams2pdf(“confint3.Rnw”) 它给出了错误消息 ! LaTeX Error: File `Sweave.sty' not found. 我已经安装了Latex,一般来说使用它没有问题。我不明白: 我是否需要告诉exams2pdf()late

我是R/TEAMS软件包的新手,我尝试从开发人员提供的一个模板生成一个pdf文档。()

我能够使用命令将Rnw文件编译成HTML文档

library("exams")
exams2html("confint3.Rnw")
调用函数时
exams2pdf(“confint3.Rnw”)
它给出了错误消息

! LaTeX Error: File `Sweave.sty' not found.
我已经安装了Latex,一般来说使用它没有问题。我不明白:

  • 我是否需要告诉
    exams2pdf()
    latex安装的位置
  • 我需要先定义一个模板(如
    plain.tex
    )吗?它应该是什么样子
  • 我不明白的是什么
  • 我查看了考试包的文档,在安装并调用
    library(“tinytex”)
    之后,我还尝试了
    exams2pdf()

    非常感谢您在何处查看或做什么。谢谢大家!

    最简单的例子:

    install.packages("exams")
    install.packages("tth")
    library("exams")
    
    set.seed(1090)
    exams2html("confint3.Rnw")
    set.seed(1090)
    exams2pdf("confint3.Rnw")
    

    很难诊断所提供的信息到底出了什么问题。在任何情况下,通过
    utils::texi2dvi()
    (未安装R软件包
    tinytex
    时的默认值)或通过
    tinytex::latexmk()
    (安装R软件包
    tinytex
    时的默认值)运行pdfLaTeX时,都找不到R基本系统提供的
    swave.sty
    文件。我不清楚哪个LaTeX引擎在后台运行:Windows上的MikTeX

    有几种策略可以解决这个问题:

    • 告诉您的LaTeX安装有关R base系统提供的
      texmf
      目录的信息,以便无论您在系统的何处调用pdfLaTeX,都能找到该目录
    • 使用不同的LaTeX安装,例如通过
      TinyTeX
      (R软件包)安装TinyTeX(LaTeX发行版):
      TinyTeX::install_TinyTeX()
      。如果您实际上不是LaTeX用户,只是需要它来编译PDF考试,那么这可能特别有吸引力
    • 避免在自定义模板文件中使用
      swave.sty
      文件,例如
      myplain.tex
      。这篇文章的结尾包含了对这样一个文件的建议
    本线程将讨论更多详细信息:

    关于你的三个问题:

  • 如上所述:
    exams2pdf()
    利用了
    utils::texi2dvi()
    tinytex::latexmk()
    。因此,这些人需要了解LaTeX的安装情况,但事实似乎是这样。他们就是找不到base R提供的
    texmf
  • 您不必这样做,但这肯定是您可以使用的一个选项。首先,运行
    检查\u skeleton(markup=“latex”,writer=“exams2pdf”)
    。除此之外,这将创建一个
    templates
    文件夹,您可以将
    myplain.tex
    模板放在下面
  • 正如我上面所说的,用提供的信息很难回答这个问题。希望这里提供的一条线索能让你向前迈进两步
  • myplain.tex的内容

    \documentclass[a4paper]{article}
    
    \usepackage[utf8]{inputenc}
    \usepackage{a4wide,graphicx,color,verbatim,url,fancyvrb,ae,amsmath,amssymb,booktabs,longtable,eurosym}
    \newenvironment{question}{\item \textbf{Problem}\newline}{}
    \newenvironment{solution}{\textbf{Solution}\newline}{}
    \newenvironment{answerlist}{\renewcommand{\labelenumi}{(\alph{enumi})}\begin{enumerate}}{\end{enumerate}}
    \providecommand{\tightlist}{\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
    
    \setkeys{Gin}{keepaspectratio}
    
    \DefineVerbatimEnvironment{Sinput}{Verbatim}{fontshape=sl}
    \DefineVerbatimEnvironment{Soutput}{Verbatim}{}
    \DefineVerbatimEnvironment{Scode}{Verbatim}{fontshape=sl}
    \newenvironment{Schunk}{}{}
    
    \begin{document}
    \begin{enumerate}
    %% \exinput{exercises}
    \end{enumerate}
    \end{document}
    

    我在Ubuntu上,无法复制。我得到了一个很好的pdf文档。与Mac或Windoze设备相比,Linux BOXE更可能用于getgo的Latex操作。尝试创建一个正在运行的示例,但
    tests
    包的安装过程也未能安装
    tth
    包。显然,包作者在他们的依赖项中忽略了这一要求。@AchimZeileis:因为包维护者有时是SO的贡献者,如果“SO pin”如果没有引起他的注意,那么您可以使用包描述中的维护人员信息:Achim.Zeileis at R-project.org感谢@IRTFM纠正我的问题和最简单的示例。我应该更精确地描述包的依赖关系,对吗。据我所知,这不是错误消息的来源,我已经安装了tth软件包。再次感谢@IRTFM,我想联系Achim Zeileis,但我想先把我的问题发布在这里。结果证明,只有第一次函数调用才需要“tth”-pkg:
    exams2html
    ,而且Achim知道这一点,因此在建议中只有“tth”,而不是导入,所以我的错误不是他的。亲爱的@Achim Zeileis!谢谢你的及时回复和对我的问题进行格式化。我忘了提到我在Mac OS上使用MacTeX。多年来,我在研究和教学中广泛使用R和Latex,我已经看过了您提供给我的链接,谢谢。我不确定它是否解决了我的问题,但我会考虑您的所有其他建议。@IRTFM感谢您对此的支持。关于
    tth
    安装的问题:我需要更多的细节来说明这一点。请随时通过电子邮件报告或将详细信息发布到其他地方。@n.small在这种情况下,我建议不要安装TinyTeX发行版。作为一种短期解决方法,您可以使用自己的LaTeX模板(如我发布的
    myplain.tex
    )。此外,我建议解决无法找到
    swave.sty
    的问题。可能上面链接的讨论中用户chan1142的建议对您有用…谢谢@Achim Zeileis。您提供的tex模板在将其放入我的R工作目录后解决了我的问题。不过我知道这是一个解决办法,我还没有掌握问题的复杂性,但现在我能够为你的一个模板生成一系列随机版本。好的,很好!关于RStudio中的编织选项设置。这些影响RStudio中的编织/编织按钮,但不影响其他包装的行为。在R/tests中,默认情况是对.Rnw文件使用
    swave()
    ,以保持依赖关系简单,因为大多数检查通常不需要
    knitr
    的扩展功能。但是,您可以设置