如何保存子文件夹中的缓冲区

如何保存子文件夹中的缓冲区

我想知道是否有可能将 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.texfoo-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]

成功地。

相关内容