代码

代码

我刚开始使用 LaTeX,对编辑此表格有些疑惑。首先,我想知道如何完成垂直线,还想知道在“Concepto”列中缩进文本的方法。谢谢大家。 enter image description here

\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 的回答中找到。

enter image description here

附录: 根据您的评论,在上述 MWE 中添加了另外三个示例:

enter image description here

答案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}

结果

enter image description here

编辑: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} 

enter image description here

注意,其他软件包允许使用可变粗细的水平线:makecell具有\XhlineXcline,粗细是强制参数。Boldline具有\hlineB\clineB命令,基本线粗细的次数是强制参数。您还可以在表格序言中V{some number}使用它来替代。|

相关内容