ConTeXt: Texto pré-formatado dentro de tabelas

ConTeXt: Texto pré-formatado dentro de tabelas

Quero inserir texto pré-formatado em uma tabela. Tentei fazer isso, \startlinesmas o comando não mostra efeito nas tabelas. É possível, \breakmas esta não é uma solução real.

Como posso inserir texto pré-formatado em tabelas?

MWE:

\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

Responder1

O problema natural tablesé que cada célula salva o conteúdo antes que o linesambiente possa ver o texto como linhas individuais.

Você pode contornar isso colocando o texto do linesambiente em um arquivo buffer. Ao carregar agora o conteúdo do buffer na tabela o texto fica em linhas separadas.

\starttext

\startbuffer[lines]
multi
lines
work
\stopbuffer

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

\stoptext

Quando você tem apenas algumas linhas de texto você pode pular o linesambiente e usar o \\comando para marcar o final de cada linha de texto nas células da tabela.

\starttext

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

\stoptext

Outra possibilidade é substituir natural tablespelo xtableambiente que aguenta linessem problemas pois utiliza um método diferente para calcular as dimensões da mesa.

\starttext

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

\stoptext

informação relacionada