Wie richtet man diese vertikale Linie am Ende der Mehrfachspalte aus?
Ich habe gesucht, aber ich konnte keine Antwort auf dieses Problem finden. Dies stammt vonWie behebt man diesen Paket-Array-Fehler: Nur eine Spaltenspezifikation zulässig?
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[brazil]{babel}
\usepackage[a4paper, margin=2cm]{geometry}
\usepackage{newtxtext,newtxmath}
\usepackage{array,ragged2e,tabularx,multirow}
\begin{document}
\section{Custos}
\begin{tabular}
{|
*1{@{\hspace{3.0pt}}>{ \RaggedRight\arraybackslash\hsize=1.1\hsize }p{3.9cm}|} % Item
*1{@{\hspace{3.0pt}}>{ \RaggedRight\arraybackslash\hsize=1.1\hsize }p{1.9cm}|} % Quantidade
*1{@{\hspace{3.0pt}}>{ \RaggedRight\arraybackslash\hsize=1.1\hsize }p{3.0cm}|} % Valor
*1{@{\hspace{3.0pt}}>{ \RaggedRight\arraybackslash\hsize=1.1\hsize }p{2.6cm}|} % Valor
}
\hline Item & Quantidade & Valor Unitário (R\$) & Valor Total (R\$) \\ \hline
Total & \multicolumn{2}{c|}{} & 165,00 \\ \hline
\end{tabular}
\end{document}
Aktualisierung 1
Ich habe eine andere Frage gefunden, die das gleiche Problem zu haben scheint, aber es ist nicht leicht zu verstehen, was sie getan haben, um es zu beheben. Ich muss mein Diff-Programm öffnen, um den Originalcode und den korrigierten Code zu vergleichen:
Rechts steht der Fixcode, links der Originalcode.
Die Tabelle geht wie folgt vor:
Das mögen:
Aktualisierung 2
Von@David CarlisleKommentar, ich stelle fest, dass die dort gestellte Frage Update 1
sich von dieser unterscheidet:
die bearbeitete Frage ist ein ganz anderes Problem, bitte ändern Sie die Frage nicht so, dass alle geposteten Antworten ungültig werden. Die hinzugefügte Frage ist das häufige Problem, | auf der falschen Seite der Zellgrenze zu platzieren, die ursprüngliche Frage hat damit nichts zu tun und betrifft nur Ihren Missbrauch von
Antwort1
Ihre Präambel hat die erforderliche Spaltenspezifikation verschleiert:
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[brazil]{babel}
\usepackage[a4paper, margin=2cm]{geometry}
\usepackage{newtxtext,newtxmath}
\usepackage{array,ragged2e,tabularx,multirow}
\begin{document}
\section{Custos}
\begin{tabular}
{|
*1{@{\hspace{3.0pt}}>{ \RaggedRight\arraybackslash\hsize=1.1\hsize }p{3.9cm}|} % Item
*1{@{\hspace{3.0pt}}>{ \RaggedRight\arraybackslash\hsize=1.1\hsize }p{1.9cm}|} % Quantidade
*1{@{\hspace{3.0pt}}>{ \RaggedRight\arraybackslash\hsize=1.1\hsize }p{3.0cm}|} % Valor
*1{@{\hspace{3.0pt}}>{ \RaggedRight\arraybackslash\hsize=1.1\hsize }p{2.6cm}|} % Valor
}
\hline Item & Quantidade & Valor Unitário (R\$) & Valor Total (R\$) \\ \hline
Total & \multicolumn{2}{c|@{\hspace{3.0pt}}}{} & 165,00 \\ \hline
\end{tabular}
\end{document}
Ich habe es drin gelassen, \hsize=1.1\hsize
aber es ist völlig falsch! Wie auch unter der Frage kommentiert, @
sorgt die Verwendung hier dafür, dass die vertikalen Linien nicht mehr im Spaltenzwischenraum zentriert sind.
Antwort2
Sie machen die Dinge hier zu kompliziert. Wenn Sie das anpassen müssen tabcolsep
, überschreiben Sie einfach den Standardwert 4pt
mit \setlength{\tabcolsep}{3pt}
.
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[brazil]{babel}
\usepackage[a4paper, margin=2cm]{geometry}
\usepackage{newtxtext,newtxmath}
\usepackage{array,ragged2e,tabularx,multirow}
\newcolumntype{R}[1]{>{\RaggedRight}p{#1}}
\setlength{\tabcolsep}{3pt}
\begin{document}
\section{Custos}
\begin{tabular}
{| R{3.9cm}| % Item
R{1.9cm}| % Quantidade
R{3.0cm}| % Valor
R{2.6cm}| % Valor
}
\hline
Item & Quantidade & Valor Unitário (R\$) & Valor Total (R\$) \\ \hline
Total & \multicolumn{2}{c|}{} & 165,00 \\ \hline
\end{tabular}
\end{document}
Antwort3
Eine Lösung für die erste Frage:
Der Übeltäter ist der @{\hspace{3pt}}
, den Sie in nicht verwendet haben \multicolumn
. Es ist jedoch besser, für die gesamte Tabelle \tabcolsep
auf zu setzen:3pt
\documentclass[12pt, brazil]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage[a4paper, margin=2cm, showframe]{geometry}
\usepackage{newtxtext,newtxmath}
\usepackage{array,ragged2e,tabularx,multirow}
\begin{document}
\section{Custos}
{\setlength\tabcolsep{3pt}
\begin{tabular}
{|>{\RaggedRight\arraybackslash}p{3.9cm}|% Item
>{\RaggedRight\arraybackslash}p{1.9cm}| % Quantidade
>{\RaggedRight\arraybackslash}p{3.0cm}| % Valor
>{\RaggedRight\arraybackslash}p{2.6cm}|} % Valor
\hline %
Item & Quantidade & Valor Unitário (R\$) & Valor Total (R\$) \\ %
\hline
Total & \multicolumn{2}{c|}{Lalala} & 165,00 \\ %
\hline
\end{tabular}}
\end{document}
Antwort4
Ich füge eine geometry
Option showframe
zum Anzeigen des Seitenlayouts hinzu. Jetzt ist die Tabellengröße besser sichtbar und zeigt, wie unnötig kompliziert Ihre Spaltenstildefinitionen sind.
MWE:
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[brazil]{babel}
\usepackage[showframe,
a4paper, margin=2cm]{geometry}
\usepackage{newtxtext,newtxmath}
\usepackage{array,ragged2e,tabularx,multirow}
\newcolumntype{R}[1]{>{\RaggedRight}p{#1}}
%\setlength{\tabcolsep}{3pt}
\begin{document}
\section{Custos}
\begin{tabular}
{| R{4cm}| % Item
R{2cm}| % Quantidade
R{3.5cm}| % Valor
R{3cm}| % Valor
}
\hline
Item & Quantidade & Valor Unitário (R\$) & Valor Total (R\$) \\ \hline
Total & \multicolumn{2}{R{4.9cm}|}{} & 165,00 \\ \hline
\end{tabular}
\end{document}
Bearbeiten: Vielleicht gefällt Ihnen folgende Lösung:
wo für die Tabelle die Umgebung verwendet wird tabularx
:
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[brazil]{babel}
\usepackage[showframe,
a4paper, margin=2cm]{geometry}
\usepackage{newtxtext,newtxmath}
\usepackage{array,ragged2e,tabularx,multirow}
\newcolumntype{R}{>{\RaggedRight}X|}
\begin{document}
\section{Custos}
\begin{tabularx}{\linewidth}
{| >{\hsize=1.75\hsize}R % Item
R % Quantidade
>{\hsize=1.25\hsize}R % Valor
R % Valor
}
\hline
Item & Quantidade & Valor Unitário (R\$) & Valor Total (R\$) \\ \hline
Total & \multicolumn{2}{R}{} & 165,00 \\ \hline
\end{tabularx}
\end{document}