我想将预格式化的文本插入表格中。我尝试使用来实现这一点,\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 tables
为xtable
可以无问题处理的环境,lines
因为它使用不同的方法来计算表尺寸。
\starttext
\startxtable
\startxrow
\startxcell
\startlines
multi
lines
work
\stoplines
\stopxcell
\stopxrow
\stopxtable
\stoptext