使用R-Exams包含Circuitikz软件包

问题描述

我想使用Circuitikz封装和R-markdown中的r-exams生成电路图片。 我已经在header-includes中包含了circuitikz软件包,使用Sub SaveRowsAsCSV() Dim wb As Excel.Workbook,wbNew As Excel.Workbook Dim wsSource As Excel.Worksheet,wstemp As Excel.Worksheet Dim r As Long,c As Long Set wsSource = ThisWorkbook.Worksheets("Classics") Application.displayAlerts = False r = 1 Do Until Len(Trim(wsSource.Cells(r,1).Value)) = 0 ThisWorkbook.Worksheets.Add ThisWorkbook.Worksheets(1) Set wstemp = ThisWorkbook.Worksheets(1) For c = 1 To 4 wstemp.Cells((c - 1) * 2 - 1,1).Value = wsSource.Cells(r,c).Value Next c wstemp.Move Set wbNew = ActiveWorkbook Set wstemp = wbNew.Worksheets(1) wbNew.SaveAs "textfile" & r & ".csv",xlCSV 'new way wbNew.Close ThisWorkbook.Activate r = r + 1 Loop Application.displayAlerts = True End Sub

可以成功

但是执行knit时,这是我得到的错误

exams2pdf

执行 LaTeX Error: Environment tikzpicture undefined. exam2moodle不会出错,但其中不包含电路图

还有其他解决方案吗?

解决方法

为什么您的尝试不起作用

练习本身不能包含其他LaTeX软件包(例如,忽略YAML标头),原因有两个:

  1. 仅针对某些接口(尤其是exams2pdfexams2nops)使用LaTeX处理练习,而对于大多数其他接口则不进行。在后一种情况下,添加更多LaTeX软件包并不容易。

  2. 即使使用exams2pdfexams2nops练习,也只是最终处理的LaTeX文档的片段。因此,个人练习几乎可以控制整个LaTeX文档。 (因此,YAML标头不用于个人练习。)

另请参阅以下相关讨论:

如何包含TikZ图形

在R / exams练习中包含TikZ图形时,重要的是要知道此练习应使用哪些界面。需要进行一些额外的工作才能使练习对所有exams2xyz接口都可行。工作示例包括在:

这两个都依赖于软件包中的include_tikz()函数。这会通过LaTeX预处理TikZ代码,并根据match_exams_device()中用于R图形块的图形格式,生成合适的图形格式(PDF,PNG或SVG)。

或者,您也可以传递LaTeX代码,并确保在LaTeX模板中加载了必要的TikZ软件包。在exams2pdf中有一个template =参数,最好是从复制和修改软件包附带的模板之一开始。请参阅vignette("exams",package = "exams")中的第3节,而exams_skeleton(write = "exams2pdf",...)应该可以帮助您开始。在exams2nops中,您可以通过header =参数传递必要的LaTeX代码,然后将其插入exams2nops使用的模板中。