如何将单词严格限制在 ConTeXt 中的制表单元格内?

如何将单词严格限制在 ConTeXt 中的制表单元格内?

我将工作表转换为 ConTeXt。有些表格需要大量文本,这没什么意义,因为它们难以阅读。

然而,在转换过程中,ConTeXt 中的阅读比 Word 中的阅读更困难,因为单词开始与表格的其他列重叠。下面是一个演示此问题的最小工作问题:

\starttext
    \starttabulate[|p|p|p|p|p|p|]
        \VL \input knuth \VL \input knuth \VL \input knuth \VL \input knuth \VL \input knuth \VL \input knuth \VL\NR
        \HL
    \stoptabulate
\stoptext

编译后,单词开始重叠到错误的列中,使其无法阅读。结果是我的老板无法理解我写的内容。

我使用了大量连字符列表,但即使是带连字符的单词有时也会在被拆分到下一行之前越过行线。我尝试了以下所有解决方案如何防止单词在 ConTeXt 中超出边缘?,包括尝试将命令调整为 \setuptabulate 等,但我尝试的所有方法都不起作用。

我怎样才能确保单词不会超出其列范围,即使这意味着排版很丑陋?

答案1

可以使用列s说明符在每列的开始处注入设置:

\starttext

    \startsetups[A]
        \setupalign[verytolerant,extremestretch,morehyphenation]
    \stopsetups
    
    \starttabulate[|ps{A}|ps{A}|ps{A}|ps{A}|ps{A}|ps{A}|]
        \VL \input knuth \VL \input knuth \VL \input knuth \VL \input knuth \VL \input knuth \VL \input knuth \VL\NR
        \HL
    \stoptabulate

\stoptext

在此处输入图片描述

答案2

当表格中的列数较少时,默认对齐选项不适用。要设置每个单元格的对齐方式,可以使用关键字A并向其传递选项列表。该选项接受\setupalign命令的所有关键字。

\starttext

\starttabulate[|*{3}{pA{flushleft,broad}|}]
\VL \input knuth \VL \input knuth \VL \input knuth \VL\NR
\stoptabulate

\stoptext

相关内容