Я хочу вставить предварительно отформатированный текст в таблицу. Я пытался сделать это с помощью , \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