我刚开始使用 LaTeX,对编辑此表格有些疑惑。首先,我想知道如何完成垂直线,还想知道在“Concepto”列中缩进文本的方法。谢谢大家。
\documentclass[12pt,twoside]{report}
\usepackage[utf8]{inputenc}
\usepackage{booktabs}
\begin{table}[h]
\centering
\begin{tabular}{| l | c c c c c |}
\toprule
& \multicolumn{5}{c |}{Presupuesto} \\
\cmidrule(l){2-6}
Concepto & & & & & Precio (\euro)\\
\midrule
\midrule
Matrícula de inscripción & & & & & 1.800\\ % row 1
Viaje en avión & & & & & 500\\ % row 2
PPD234 & & & & & 0.965\\ % row 3
JSB126 & & & & & \\ % row 4
JSB724 & & & & & 0.937\\ % row 5
\midrule
\midrule
Total & & & & & \\
\bottomrule
\end{tabular}
\label{tab:template}
\end{table}
答案1
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{siunitx}
\usepackage{array, booktabs}
\begin{document}
\begin{table}[h]
\centering
\begin{tabular}{| l | c c c c c |}
\hline
& \multicolumn{5}{c|}{Presupuesto} \\
\cline{2-6}
Concepto & & & & & Precio (euro)\\
\hline
\hline
Matrícula de inscripción & & & & & 1.800\\ % row 1
Viaje en avión & & & & & 500\\ % row 2
PPD234 & & & & & 0.965\\ % row 3
JSB126 & & & & & \\ % row 4
JSB724 & & & & & 0.937\\ % row 5
\hline
\hline
Total & & & & & \\
\hline
\end{tabular}
\label{tab:template}
\end{table}
or
\begin{table}[h]
\centering
\begin{tabular*}{\linewidth}{l @{\extracolsep{\fill}} S[table-format=3.3]}
\toprule
& {Presupuesto} \\
\cmidrule{2-2}
Concepto & {Precio (euro)} \\
\midrule
Matrícula de inscripción & 1.800 \\ % row 1
Viaje en avión & 500 \\ % row 2
PPD234 & 0.965 \\ % row 3
JSB126 & \\ % row 4
JSB724 & 0.937 \\ % row 5
\midrule
Total & \\
\bottomrule
\end{tabular*}
\label{tab:template}
\end{table}
\newpage
or the first example added in addendum
\begin{table}[h]
\centering
\begin{tabular*}{0.6\linewidth}{>{\quad}l @{\extracolsep{\fill}} S[table-format=3.3]}
\toprule
& {Presupuesto} \\
\cmidrule{2-2}
\multicolumn{1}{l}{Concepto}
& {Precio (euro)} \\
\midrule
Matrícula de inscripción & 1.800 \\ % row 1
Viaje en avión & 500 \\ % row 2
PPD234 & 0.965 \\ % row 3
JSB126 & \\ % row 4
JSB724 & 0.937 \\ % row 5
\midrule
Total & \\
\bottomrule
\end{tabular*}
\label{tab:template}
\end{table}
or the second example with indented only one cell content
\begin{table}[h]
\centering
\begin{tabular*}{0.6\linewidth}{l @{\extracolsep{\fill}}
S[table-format=4.0]<{\texteuro}}
\toprule
& \mcc{Presupuesto} \\
\cmidrule{2-2}
Concepto & \mcc{Precio} \\
\midrule
Matrícula de inscripción & 1800.00 \\ % row 1
\quad Viaje en avión & 500.00 \\ % row 2
PPD234 & 0.96 \\ % row 3
JSB126 & \mcc{} \\ % row 4
JSB724 & 0.93 \\ % row 5
\midrule
Total & \mcc{} \\
\bottomrule
\end{tabular*}
\label{tab:template}
\end{table}
and last example also added in as addendum
\begin{table}[h]
\centering
\begin{tabular*}{0.6\linewidth}{l @{\extracolsep{\fill}} S[table-format=3.3]}
\toprule
& {Presupuesto} \\
\cmidrule{2-2}
\multicolumn{1}{c}{Concepto}
& {Precio (euro)} \\
\midrule
Matrícula de inscripción & 1.800 \\ % row 1
Viaje en avión & 500 \\ % row 2
PPD234 & 0.965 \\ % row 3
JSB126 & \\ % row 4
JSB724 & 0.937 \\ % row 5
\midrule
Total & \\
\bottomrule
\end{tabular*}
\label{tab:template}
\end{table}
\end{document}
编辑:\begin{document}
您应该提供完整的小文档,从以下仅包含必要的包 开始,到以“\end{document}”结尾。
在第二个例子中,我假设您的表格实际上只有两列,并且您希望表格宽度等于\textwidth
。如果不是这种情况,您可以将表格宽度减小到例如0.5\linewidth
。
除了展示的两个例子之外,还存在许多其他可能性。其中一个你可以在 Jan 的回答中找到。
附录: 根据您的评论,在上述 MWE 中添加了另外三个示例:
答案2
我建议你使用包dcolumn
来显示最后一列,以便将其与数字的小数点对齐。我还建议你把垂直线放在一边。
在我的示例中,我还将表格布局更改为只有三列,也就是说,一堆空的 c 列被合并为一列(仍然是空的)。
我定义了新的列类型,以便于输入。我还添加了@{}
,以消除表格左侧和右侧未使用的空白。
代码
\documentclass{article}
\usepackage[utf8]{luainputenc}
\usepackage[T1]{fontenc}
\usepackage{array}
\usepackage{dcolumn}
\usepackage{booktabs}
\usepackage[gen,right]{eurosym}
%% Define new columntypes. First a column for the header of the
%% table. (Identifier H for header)
\newcolumntype{H}{>{\footnotesize}c}
%% Second, a decimal column
\newcolumntype{d}[1]{D{.}{.}{#1}}
\begin{document}
\begin{tabular}{@{} lld{3} @{}}
\toprule
\multicolumn{1}{@{} H}{Concepto}
& \multicolumn{2}{H @{}}{Presuquesto}\\
&& \multicolumn{1}{H @{}}{Precio (\EUR{})}\\
\midrule
Matrícula de inscripción & & 1.800 \\
Viaje en avión && 500 \\
PPD234 && 0.965 \\
JSB126\\
JSB724 && 0.937\\
\addlinespace
Total \\
\bottomrule
\end{tabular}
\end{document}
结果
编辑:Zarko 更快并且提出了几乎相同的解决方案。:-)
答案3
Booktabs
在规则周围添加一些填充(\aboverulesep
和\belowrulesep
),从而导致“不完整”的垂直规则或彩色单元格。您可以将这些长度的值设置为 0pt,以保持可变宽度功能。然而,在许多人看来,没有垂直规则的表格通常看起来更专业:
\documentclass{article}
\usepackage[utf8]{inputenc} %
\usepackage[T1]{fontenc} %
\usepackage{textcomp}
\let\euro\texteuro
\usepackage{array, hhline, booktabs}
\begin{document}
\begin{table}[h]
\centering\setlength\aboverulesep{0pt}\setlength\belowrulesep{0pt}
\begin{tabular}{| l | c c c c c |}
\toprule
& \multicolumn{5}{c |}{Presupuesto} \\
\cmidrule{2-6}
Concepto & & & & & Precio (\euro)\\
\midrule
\midrule
Matrícula de inscripción & & & & & 1.800\\ % row 1
Viaje en avión & & & & & 500\\ % row 2
PPD234 & & & & & 0.965\\ % row 3
JSB126 & & & & & \\ % row 4
JSB724 & & & & & 0.937\\ % row 5
\midrule
\midrule
Total & & & & & \\
\bottomrule
\end{tabular}
\label{tab:template}
\end{table}
\begin{table}[h]
\centering\setlength{\extrarowheight}{1pt}
\begin{tabular}{lc c c c c}
\toprule
& \multicolumn{5}{c}{Presupuesto} \\
\cmidrule(lr){2-6}
Concepto & & & & & Precio (\euro)\\
\midrule
\midrule
Matrícula de inscripción & & & & & 1.800\\ % row 1
Viaje en avión & & & & & 500\\ % row 2
PPD234 & & & & & 0.965\\ % row 3
JSB126 & & & & & \\ % row 4
JSB724 & & & & & 0.937\\ % row 5
\midrule
\midrule
Total & & & & & \\
\bottomrule
\end{tabular}
\label{tab:template}
\end{table}
\end{document}
注意,其他软件包允许使用可变粗细的水平线:makecell
具有\Xhline
和Xcline
,粗细是强制参数。Boldline
具有\hlineB
和\clineB
命令,基本线粗细的次数是强制参数。您还可以在表格序言中V{some number}
使用它来替代。|