
Я перевел форму рабочего места в 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