ConTeXt:表格内的预格式化文本

ConTeXt:表格内的预格式化文本

我想将预格式化的文本插入表格中。我尝试使用来实现这一点,\startlines但该命令在表格中没有效果。使用是可能的,\break但这不是真正的解决方案。

如何在表格内插入预格式化的文本?

梅威瑟:

\starttext

\startlines
multi
lines
work
\stoplines

\bTABLE
  \bTR
    \bTD
    \startlines
multi
lines
work
    \stoplines
    \eTD
    \bTD
multi\break
lines\break
work
    \eTD
  \eTR
\eTABLE

\stoptext

答案1

问题在于,每个单元格都会在环境将文本视为单独的行natural tables之前保存内容。lines

你可以通过将环境文本放入lines中来解决此问题buffer。现在,当你在表中加载缓冲区的内容时,文本将保留在单独的行中。

\starttext

\startbuffer[lines]
multi
lines
work
\stopbuffer

\bTABLE
    \bTR
        \bTD
            \startlines
            \getbuffer[lines]
            \stoplines
        \eTD
    \eTR
\eTABLE

\stoptext

当您只有几行文本时,您可以跳过环境lines并使用\\命令标记表格单元格中每行文本的结尾。

\starttext

\bTABLE
    \bTR
        \bTD
            multi\\
            lines\\
            work
        \eTD
    \eTR
\eTABLE

\stoptext

另一种可能性是替换natural tablesxtable可以无问题处理的环境,lines因为它使用不同的方法来计算表尺寸。

\starttext

\startxtable
    \startxrow
        \startxcell
            \startlines
            multi
            lines
            work
            \stoplines
        \stopxcell
    \stopxrow
\stopxtable

\stoptext

相关内容