如何在多列的末尾對齊這條垂直線?
我搜索過,但找不到此類問題的答案。這是起源於如何修復此包數組錯誤:僅允許一個列規範?
\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}
更新1
我發現另一個問題似乎也有同樣的問題,但很難理解他們是如何解決這個問題的。我必須打開我的 diff 程式來比較原始程式碼和固定程式碼:
右邊是固定程式碼,左邊是原始碼。
該表是這樣的:
進入這個:
更新2
經過@大衛卡萊爾在評論中,我發現上面提到的問題Update 1
與這個不同:
編輯後的問題是一個完全不同的問題,請不要以這種方式更改問題,從而使所有發布的答案無效。增加的問題是放 | 的常見問題。在單元格邊界的錯誤一側,原來的問題與此無關,只是關於您濫用
答案1
您的序言掩蓋了必要的列規範:
\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}
我離開了,\hsize=1.1\hsize
但這是完全錯誤的!另外,正如問題下所評論的,@
這裡的用法是使垂直規則不再以列間空間為中心。
答案2
你在這裡把事情過於複雜化了。如果需要調整tabcolsep
,只需覆蓋預設值4pt
即可\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}
答案3
第一個問題的解決方案:
罪魁禍首是@{\hspace{3pt}}
你沒有使用過的\multicolumn
。但最好將 整個表設為\tabcolsep
: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}
答案4
我新增了用於顯示頁面佈局的geometry
選項。showframe
現在表格大小更加清晰可見,您的列樣式定義變得多麼不必要的複雜。
微量元素:
\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}
編輯: 也許您會喜歡以下解決方案:
其中表是使用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}