问题描述
我想使用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标头),原因有两个:
-
仅针对某些接口(尤其是
exams2pdf
和exams2nops
)使用LaTeX处理练习,而对于大多数其他接口则不进行。在后一种情况下,添加更多LaTeX软件包并不容易。 -
即使使用
exams2pdf
或exams2nops
练习,也只是最终处理的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
使用的模板中。