我想知道是否有可能将 ConTeXt 缓冲区的内容保存到文件中,如果可以,如何保存。好吧,我知道该命令\savebuffer[<buffername>][<filename>]
存在,但它将文件保存在与文件相同的位置.tex
。我希望可以将文件保存在子目录中,例如./temp
,以避免弄乱主工作目录。但那行不通。MWE:
\starttext
\startbuffer[code]
-- some lua code for examples sake
local x = 2
local y = math.sqrt(x)
\stopbuffer
% works
\savebuffer
[code]
[code.lua]
% doesn't work
\savebuffer
[code]
[/temp/code.lua]
\stoptext
答案1
问题是,默认情况下,会为保存的文件\savebuffer
附加一个前缀。(因此,例如,文件中的<jobname>-
调用将缓冲区保存为。)因此,做这种幼稚的事情\savebuffer[code][code.lua]
foo.tex
foo-code.lua
\savebuffer
[code]
[temp/code.lua]
不好,因为它会尝试将缓冲区保存为<jobname>-temp/code.lua
。相反,使用其他调用的方式\savebuffer
,即:
\savebuffer
[list=<buffer name(s)>, prefix=<'yes' or 'no'>, file=<filename>]
然后你可以做
\savebuffer
[prefix=no, file={temp/code.lua}, list=code]
成功地。