ConTeXt: 表格中使用 t-vim 模块

ConTeXt: 表格中使用 t-vim 模块

如何在 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

相关内容