次の表があります:
コードから:
\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
のみ持つことができます1つ列指定子。2 つあります。しかし、なぜこのような複雑なヘッド定義があるのでしょうか。以下は同じことを行います。
\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 が自動的に幅を計算します。
最初の例と 2 番目の例は本質的に同じであることがわかります。
また、 を使用すると小数点のカンマの位置合わせがいかに簡単かを示す 3 番目の例も追加しました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}