Разрыв многоколоночного текста на полях документа с помощью tabularx

Разрыв многоколоночного текста на полях документа с помощью tabularx

я используютабличныйxчтобы разбить содержимое столбца на полях документа (см.Разрыв строки в ячейке таблицы на краю документа). Но когда я использую \multicolumnв такой таблице, инструкция разбить текст в этом столбце игнорируется. Как мне это реализовать?

\documentclass{article}
\usepackage{tabularx}

\begin{document}
\newlength{\mylength}
\setlength{\mylength}{\linewidth}
\addtolength{\mylength}{-\parindent}

\hrule
    \begin{tabularx}{\mylength}{lX}
        Lorem ipsum dolor sit amet, consectetuer & adipiscing elit. Ut purus elit, vestibulum ut, placerat ac\\
        \multicolumn{2}{l}{Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac}\\
    \end{tabularx}
\hrule

\end{document}

введите описание изображения здесь


В ответ на вопрос Мико:

\documentclass{article}
\usepackage{tabularx}

\begin{document}
\newlength{\mylength}
\setlength{\mylength}{\linewidth}
\addtolength{\mylength}{-\parindent}

\hrule
    \begin{tabularx}{\mylength}{llX}
        Lorem ipsum dolor & sit amet, consectetuer & adipiscing elit. Ut purus elit\\
    \end{tabularx}
\hrule
    \begin{tabularx}{\mylength}{llX}
        Lorem ipsum dolor & sit amet, consectetuer & adipiscing elit. Ut purus elit\\
        Lorem ipsum dolor sit & \multicolumn{2}{p{\mylength}}{Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit}\\
    \end{tabularx}
\hrule

\end{document}

введите описание изображения здесь

решение1

Ниже приведена версия вашего второго MWE. Обратите внимание, что поскольку ширина всей tabularxсреды задается как \mylength, вы не должны использовать этот параметр для объединенной ширины второго и третьего столбцов. Чтобы вычислить правильную ширину, я использую две дополнительные переменные длины, \xlengthи \ylength. \xlengthустанавливается на ширину первого столбца (+ 4\tabcolsep); затем \ylengthвычисляется как \mylength-\xlength.

введите описание изображения здесь

\documentclass{article}
\usepackage{tabularx}
\hyphenation{ad-ip-is-cing} % no idea if this is correct...

\newlength\xlength
\settowidth\xlength{Lorem ipsum dolor sit}
\addtolength\xlength{4\tabcolsep}

\newlength\mylength
\setlength\mylength{\linewidth}
\addtolength\mylength{-\parindent}

\newlength\ylength
\setlength\ylength\mylength
\addtolength\ylength{-\xlength}

\begin{document}
\hrule
\begin{tabularx}{\mylength}{llX}
Lorem ipsum dolor & sit amet, consectetuer & 
adipiscing elit. Ut purus elit\\
Lorem ipsum dolor sit & 
\multicolumn{2}{p{\ylength}}{Lorem ipsum dolor sit amet, 
    consectetuer adipiscing elit. Ut purus elit}\\
\end{tabularx}
\hrule
\end{document}

ПриложениеПара ответов на дополнительные вопросы ОП:

  • Расчет \xlengthпо линиям, указанным в коде выше, выглядит следующим образом:нужныйпоскольку первый столбец, который имеет тип l, не имеет предопределенной ширины. Если вы готовы изменить его тип столбца на p, ширина этого столбца может быть использована напрямую для расчета ширины многостолбца.

    Например, если ширина первого столбца задана \xlength(вы можете выбрать ее значение самостоятельно...), вы можете запустить tabularxсреду следующим образом:

    \begin{tabularx}{\mylength}{p{\xlength}lX}
    

    Обратите внимание, что \xlengthnow — это просто ширина первого столбца, т. е. она не включает термин 4\tabcolsep.

    Затем, позже в этой tabularxсреде, вы можете указать ширину двух столбцов \multicolumn(типа p, как в предыдущем примере) следующим образом:

    \multicolumn{2}{p{\dimexpr\mylength-\xlength-4\tabcolsep}}{<stuff>}
    
  • Термин 4\tabcolsepпредставляет собой сумму

    • 1\tabcolsepна левом краю стола,
    • 2\tabcolsepдля количества пробелов между столбцами 1 и 2, и
    • 1\tabcolsepна правом краю таблицы.

Связанный контент