2

我是 R/exams 包的新手,我尝试从开发人员提供的模板之一生成 pdf 文档。( http://www.R-exams.org/templates/confint3/ )

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

library("exams")
exams2html("confint3.Rnw")

调用该函数 exams2pdf("confint3.Rnw") 时,它会给出错误消息

! LaTeX Error: File `Sweave.sty' not found.

我已经安装了 Latex 并且一般使用它没有问题。我不明白:

  1. 我需要告诉exams2pdf()乳胶安装的位置吗?
  2. 我需要先定义一个模板(as plain.tex)吗?它应该是什么样子?
  3. 我不明白的是什么?

我查看了考试包的文档,exams2pdf()安装和调用后我也尝试了library("tinytex")

非常感谢您在哪里查看或做什么的任何帮助。谢谢!

最小的例子:

install.packages("exams")
install.packages("tth")
library("exams")

set.seed(1090)
exams2html("confint3.Rnw")
set.seed(1090)
exams2pdf("confint3.Rnw")
4

1 回答 1

2

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

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

  • 告诉您的 LaTeX 安装texmfR 基础系统提供的目录,以便无论您在系统上的哪个位置调用 pdfLaTeX 都能找到它。
  • 使用不同的 LaTeX 安装,例如,通过tinytex(R 包)安装 TinyTeX(LaTeX 发行版):tinytex::install_tinytex()。如果您实际上不是 LaTeX 用户并且只需要它来编译 PDF 考试,这可能会特别有吸引力。
  • 避免Sweave.sty在自定义模板文件中使用该文件,例如myplain.tex. 本文末尾包含对此类文件的建议。

此线程中讨论了更多详细信息:https ://tex.stackexchange.com/questions/153193/latex-error-sweave-sty-not-found

至于你的三个问题:

  1. 如上所述:exams2pdf()利用utils::texi2dvi()tinytex::latexmk()。所以这些需要了解 LaTeX 的安装——但这似乎是事实。他们只是找不到texmfbase R提供的。
  2. 不必这样做,但它肯定是您可以使用的选项。作为起点,运行exams_skeleton(markup = "latex", writer = "exams2pdf"). 除其他外,这会创建一个templates文件夹,您可以将myplain.tex模板放在下面。
  3. 正如我上面所说,很难用提供的信息来回答这个问题。希望这里提供的线索之一能让您向前迈出几步。

内容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}
于 2020-05-13T19:53:48.423 回答