Problem mit Einrückungen und Rändern bei Verwendung von \multicolumn in tabularx

Problem mit Einrückungen und Rändern bei Verwendung von \multicolumn in tabularx

Ich möchte etwas mit tabularx formatieren, wobei die erste Zeile eine Spalte hat, die am linken Rand beginnt, und eine, die am rechten beginnt, und die folgenden Zeilen nur eine Spalte sind, die sich über die gesamte Textbreite erstreckt und Zeilenumbrüche im Text zulässt. Unten ist mein Code:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{multicol}
\usepackage{tabularx}

\begin{document}  
\section{Introduction}

\begin{flushleft}
    \begin{tabularx}{\textwidth}{@{}X @{\extracolsep{\fill}} r @{}}
         Text beginning at left margin & Something at right margin   \\
         \hline
          Here is some text that can get longer and longer until it causes a linebreak eventually & \\
         \textit{Some closing text that would go to the next line soon because of the cell to the right} & \\
    \end{tabularx}
\end{flushleft}


\begin{flushleft}
    \begin{tabularx}{\textwidth}{@{}X @{\extracolsep{\fill}} r @{}}
         Text beginning at left margin & Something at right margin  \\
         \hline
         \multicolumn{2}{p{\textwidth}}{Here is some longer sentence that goes past the original column on the right } \\
         \multicolumn{2}{p{\textwidth}}{\textit{Here is some text that can get longer and longer and longer and longer and longer until it causes a linebreak eventually}} \\
    \end{tabularx}
\end{flushleft}

\end{document}

Im Bild unten sieht der obere Teil wie erwartet aus, die Spalten der unteren beiden Zeilen sind jedoch nicht zusammengeführt. Wenn ich es mit dem unteren Code versuche, fällt mir zuerst eine Einrückung der 2. und 3. Zeile auf. Kommt das vom Multicolumn-Befehl? Wie ändere ich die Einrückung? Außerdem überschreitet der Text in diesen Zeilen den rechten Seitenrand, wenn ich \textwidth als Breite der p-Spalte verwende. Wenn ich eine Länge verwende, die gleich der Papierbreite abzüglich der Ränder ist, funktioniert es. Was ist hier los? Außerdem freue ich mich über alternative Formatvorschläge.Bildbeschreibung hier eingeben

Antwort1

Sie können verwenden @{}, um den kleinen (6 pt) horizontalen Leerraum links und rechts einer Tabellenzelle zu entfernen, wie Sie es bereits in Ihrem Tabellencode getan haben. Da der \multicolumnBefehl diese Einstellung überschreibt, wird die Polsterung wieder hinzugefügt, was zu einer Spalte vom Typ ap führt, die so breit ist wie \textwidth+2\tabcolsepund bis in den rechten Rand reicht. Um dies zu vermeiden, fügen Sie @{}Ihrem \multicolumnBefehl hinzu, wie im folgenden Beispiel gezeigt. Ich habe auch entfernt, @{\extracolsep{\fill}}da dieser Befehl hier nicht benötigt wird.

Im folgenden Screenshot zeigen die roten Linien die Seitenränder an:

Bildbeschreibung hier eingeben

\documentclass{article}
%\usepackage[utf8]{inputenc} % default in an up to date installation
%\usepackage{multicol} % Not related to the \multicolumn command
\usepackage{tabularx}

\begin{document}  
\section{Introduction}

\noindent
    \begin{tabularx}{\textwidth}{@{} X r @{}}
         Text beginning at left margin & Something at right margin  \\
         \hline
         \multicolumn{2}{@{}p{\textwidth}@{}}{Here is some longer sentence that goes past the original column on the right } \\
         \multicolumn{2}{@{}p{\textwidth}@{}}{\textit{Here is some text that can get longer and longer and longer and longer and longer until it causes a linebreak eventually}} \\
    \end{tabularx}

\end{document}

Antwort2

Aus --https://latex.org/forum/viewtopic.php?t=8352

Bildbeschreibung hier eingeben

\multicolumn{2}{@{}p{\textwidth}}{Here is some longer sentence that goes past the 
 original column on the right } \\

verwandte Informationen