我有下表:
从代码来看:
\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, Valor
*1{@{\hspace{3.0pt}}>{ \RaggedRight\arraybackslash\hsize=1.1\hsize }p{2.6cm}|} % Valor, Valor
}
\hline Item & Quantidade & Valor Unitário (R\$) & Valor Total (R\$) \\ \hline
CD & 1 & 5,00 & 5,00,00 \\ \hline
Impressão & 800 & 0,15 & 120,00 \\ \hline
Reserva Gerencial & 1 & 20,00 & 20,00 \\ \hline
Reserva de Contingência & 1 & 20,00 & 20,00 \\ \hline
Total & \multicolumn{2}{c c|}{} & 165,00 \\ \hline
\end{tabular}
\end{document}
但抛出了错误:
test.tex:29: Package array Error: Only one column-spec. allowed.. [... & \multicolumn{2}{c c}{}]
|
除了之前的移动之外,表格的呈现方式几乎与我喜欢的方式一致165,00
。
如何消除出现的错误并正确对齐移位的|
管道?
更新
很好的参考清单:
答案1
\multicolumn
只能有一列说明符。你有两个!但是,你为什么有这么复杂的头部定义。这做了同样的事情:
\begin{tabular}
{|
>{\RaggedRight}p{3.9cm}|
% Item
>{\RaggedRight}p{1.9cm}|
% Quantidade
>{\RaggedRight}p{3.0cm}|
% Valor, Valor
>{\RaggedRight}p{2.6cm}| }\hline
Item & Quantidade & Valor Unitário (R\$) & Valor
Total (R\$) \\ \hline
CD & 1 & 5,00 &
5,00,00 \\ \hline
Impressão & 800 & 0,15 &
120,00 \\ \hline
Reserva Gerencial & 1 & 20,00 &
20,00 \\ \hline
Reserva de Contingência & 1 & 20,00 &
20,00 \\ \hline
Total & \multicolumn{2}{c|}{} &
165,00 \\ \hline
\end{tabular}
答案2
错误出现在 的参数中\multicolumn
,但我认为您对表格采取了错误的处理方法:不需要指定宽度,因为 TeX 会自行计算。
您可以看到第一个示例和第二个示例本质上是相同的。
我还添加了第三个示例,以展示使用 轻松实现小数点逗号对齐siunitx
。这需要在输入表头时多加注意,但回报是巨大的。
在最后一个例子中,我使用了booktabs
特征,但它们不是强制性的。
\documentclass[12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[brazil]{babel}
\usepackage[a4paper, margin=2cm]{geometry}
\usepackage{newtxtext,newtxmath}
\usepackage{array,ragged2e,tabularx,multirow}
\usepackage{booktabs,siunitx} % for the last example
\sisetup{output-decimal-marker={,}} % for siunitx
\begin{document}
\begin{table}[htp]
\centering
\caption{Original, with the fix}
\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, Valor
*1{@{\hspace{3.0pt}}>{ \RaggedRight\arraybackslash\hsize=1.1\hsize }p{2.6cm}|} % Valor, Valor
}
\hline Item & Quantidade & Valor Unitário (R\$) & Valor Total (R\$) \\ \hline
CD & 1 & 5,00 & 5,00 \\ \hline
Impressão & 800 & 0,15 & 120,00 \\ \hline
Reserva Gerencial & 1 & 20,00 & 20,00 \\ \hline
Reserva de Contingência & 1 & 20,00 & 20,00 \\ \hline
Total & \multicolumn{2}{c|}{} & 165,00 \\ \hline
\end{tabular}
\end{table}
\begin{table}[htp]
\centering
\caption{Simpler}
\begin{tabular}{|l|l|l|l|}
\hline Item & Quantidade & Valor Unitário (R\$) & Valor Total (R\$) \\ \hline
CD & 1 & 5,00 & 5,00 \\ \hline
Impressão & 800 & 0,15 & 120,00 \\ \hline
Reserva Gerencial & 1 & 20,00 & 20,00 \\ \hline
Reserva de Contingência & 1 & 20,00 & 20,00 \\ \hline
Total & \multicolumn{2}{c|}{} & 165,00 \\ \hline
\end{tabular}
\end{table}
\begin{table}[htp]
\centering
\caption{Better?}
\begin{tabular}{ l S[table-format=3.0] S[table-format=2.2] S[table-format=3.2] }
\toprule
{Item} & {Quantidade} & {Valor Unitário (R\$)} & {Valor Total (R\$)} \\
\midrule
CD & 1 & 5,00 & 5,00 \\
Impressão & 800 & 0,15 & 120,00 \\
Reserva Gerencial & 1 & 20,00 & 20,00 \\
Reserva de Contingência & 1 & 20,00 & 20,00 \\
\midrule
Total & \multicolumn{2}{c}{} & 165,00 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}