如何在 TABLE 环境中使用 t-vim 模块?
我知道它可能与缓冲区有关,但我不确定如何将 vim 的输出存储到缓冲区中。
梅威瑟:
\usemodule[vim]
\definevimtyping
[somecode]
[lines=split]
\starttext
\typebuffer[visit]
\bTABLE
\bTR
\bTD
\startsomecode
test code
\stopsomecode
\eTD
\eTR
\eTABLE
\stoptext
答案1
由于t-vim
建立在之上t-filter
,您可以使用\process<filter>buffer
命令来加载现有的缓冲区:
\usemodule[vim]
\definevimtyping
[somecode]
[lines=split]
\definevimtyping
[RUBY]
[syntax=ruby]
\starttext
\startbuffer[ruby]
# Ruby program listing
print("Hello World")
\stopbuffer
\startbuffer[somecode]
test code
more lines
\stopbuffer
\bTABLE
\bTR
\bTD
\processsomecodebuffer[somecode]
\eTD
\bTD
\processRUBYbuffer[ruby]
\eTD
\eTR
\eTABLE
\stoptext
您也可以使用模块ntb-to-xtb
,它允许您使用具有自然表语法的 xtables(换句话说:这允许您使用 TeXnicians 解决方案没有更改代码):
\usemodule[vim]
\usemodule[ntb-to-xtb]
\definevimtyping
[somecode]
[lines=split]
\definevimtyping
[RUBY]
[syntax=ruby]
\starttext
\bTABLE
\bTR
\bTD
\startsomecode
test code
more lines
\stopsomecode
\eTD
\bTD
\startRUBY
# Ruby program listing
print("Hello World")
\stopRUBY
\eTD
\eTR
\eTABLE
\stoptext
两种解决方案的输出相同:
答案2
更多是评论而不是答案:使用 xtables,您可以直接使用逐字材料。
\usemodule[vim]
\definevimtyping
[somecode]
[lines=split]
\starttext
\typebuffer[visit]
\startxtable
\startxrow
\startxcell
\startsomecode
test code
\stopsomecode
\stopxcell
\stopxrow
\stopxtable
\stoptext