ConTeXt: 表内のフォーマット済みテキスト

ConTeXt: 表内のフォーマット済みテキスト

フォーマット済みのテキストをテーブルに挿入したいです。 を使用してこれを実行しようとしました\startlinesが、コマンドはテーブルに効果を示しません。 では可能です\breakが、これは実際の解決策ではありません。

表内にフォーマット済みのテキストを挿入するにはどうすればいいですか?

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

答え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

もう 1 つの可能性は、テーブルのサイズを計算するために別の方法を使用するため、問題なく処理できる環境natural tablesに置き換えることです。xtablelines

\starttext

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

\stoptext

関連情報