|
|
1
2
我也有类似的问题。最终,我找到了一份“适合我”的工作,尽管这可能不是解决这个问题最优雅的方法。 在我的函数中,在执行“swave”之前,我放置了一个语句来全局存储本地环境:
使用您的代码示例,它看起来像:
然后,在第一个块开始处要“swaved”的latex文件中,我将还原必要的变量,但您也可以使用“temp$foo”访问在函数中创建的“foo”变量。这样可以避免全局存储多个变量。
就像我上面写的-这是作品,但不是很优雅。 |
|
|
2
0
好吧,我意识到我最初的想法“简单,自我包含的例子”并不是特别简单或有用。所以我重新举出了我的例子,并为自己找到了一个答案,尽管我希望有人能解释为什么,甚至提出一个更好的解决方案, 这是我的示例测试文件
如果我运行这个代码;
生成的文件不包含字符串foo的内容。
如果我运行这个代码(也就是说,相同的东西,直接运行)
生成的文件不包含foo字符串
如果我运行这个代码
生成的文件还包含foo字符串
因此,似乎swave是在全球环境中运行的,而不是在它所调用的环境中。这意味着当swave从函数运行时,将变量传递给swave的唯一方法是使用<<-运算符将变量放入全局环境中。(我想)。 还有谁想评论谁更了解环境? |
|
|
Alejandro Andrade · 如何调试Rsweave 9 年前 |
|
|
Amanda R. · 仅部分工作的颜色编码凹痕 10 年前 |
|
|
Tobi · 扫描:使用块作为乳胶命令参数 12 年前 |
|
Yorgos · 分区命令中包含\%时出错 12 年前 |