多列和水平线

多列和水平线

如果我运行以下代码,我会得到一个包含 5 个多列的表格,但如果我\hline在多列之前放置一个,如代码所示,它会关闭上部的所有表格。我怎样才能只关闭 5 个多列,而让其他部分没有线条?

\begin{tabular}{|r{1.5cm}|c{1.5cm}|c{1.5cm}|c{1.5cm}|c{1.5cm}|c{2.5cm}|c{1.33cm}|c{1.3cm}|c{2cm}|}
\hline %with this command the line is for all the table not just the 5 columns
\multicolumn{5}{|c|}{Mensual} \\
\hline
& L\'iquido & S. Social & IRPF & TOTAL & Anual l\'iquido & \multicolumn{2}{|c|}{} & Total Anual\\ 
Nombre & (A) & (B) & (C) & A+B+C & (D) = A $\times$ pagas& \multicolumn{2}{|c|}{Por Caja o ``B''} & (D) + Caja\\ \hline
Jos\'e & 2.563,56 \euro & 172,82 \euro & 864,12 \euro & 3.600,5 \euro & \textbf{38.453 \euro} & 21.295 \euro & 9.851 \euro & \textbf{69.599 \euro}\\ \hline
Pedro & 1.949,50 \euro & 170,60 \euro & 669,50 \euro & 2.789,6 \euro & \textbf{41.844 \euro} & \multicolumn{2}{|c|}{Sin Datos}& \textbf{41.844 \euro}\\ \hline
Antonio & 2.240,72 \euro & 181,99 \euro & 601,84 \euro & 3.024,6 \euro & \textbf{26.889 \euro} & \multicolumn{2}{|c|}{10.125 \euro}& \textbf{37.014 \euro}\\ \hline
Lina & 1.870,12 \euro & 152,01 \euro & 334,13 \euro & 2.356,3 \euro & \textbf{28.052 \euro} & \multicolumn{2}{|c|}{Sin Datos}& \textbf{28.052 \euro}\\ \hline
\end{tabular}

答案1

另一种选择是使用siunitx与提议的表格类似的“开放式”米科在他的回答中:

\documentclass{article}
\usepackage{booktabs, makecell}
\usepackage{eurosym}
\usepackage{siunitx}

\usepackage{etoolbox}
\newcommand{\B}{\fontseries{b}\selectfont} % renew def. for non-extended bold font
\robustify\B


\begin{document}

\begingroup
    \sisetup{detect-weight,
            output-decimal-marker={,},
            group-minimum-digits=4,
            group-separator={.}
            }
    \setlength\tabcolsep{3pt}
    \small
\begin{tabular}{@{}l
                S[table-format=4.2]
           *{2}{S[table-format=3.2]}
                S[table-format=4.1]
                S[table-format=4.0]
                S[table-format=5.0]
                S[table-format=4.0]
                S[table-format=5.0]
                @{}}
    \toprule
    & \multicolumn{4}{c}{Mensual}   &   \multicolumn{4}{c}{}    \\
    \cmidrule(lr){2-5}
\thead[b]{Nombre}
    &   {\thead[b]{L\'iquido\\ (A)}}
        &   {\thead[b]{S. Social\\ (B)}}
            &   {\thead[b]{IRPF\\ (C)}}
                &   {\thead[b]{TOTAL\\ (A + B + C)}}
                    &   {\thead[b]{Anual l\'iquido (D)\\
                        $=(\mathrm{A})\times \mathrm{paagas}$}}
                        &   \multicolumn{2}{c}{\thead[b]{Por Caja o ``B''}}
                            &   {\thead[b]{Total Anual\\
                                $(D) + \mathrm{Caja}$}}                              \\
    \cmidrule(lr){7-8}
    & {\euro} & {\euro} & {\euro} & {\euro} & {\euro} & {\euro} & {\euro} & {\euro} \\
     \midrule
Jos\'e  & 2 563.56  & 172.82 & 864.12  & 3 600.5 & \B 38 453 & 21 295 & 9 851  & \B 69 599 \\ Pedro   & 1 949.50  & 170.60 & 669.50  & 2 789.6 & \B 41 844
            &   \multicolumn{2}{c}{Sin Datos}    & \B 41 844         \\
Antonio & 2 240.72  & 181.99 & 601.84  & 3 024.6 & \B 26 889
            &   \multicolumn{2}{c}{10.125}       & \B 37 014        \\
Lina    & 1 870.12  & 152.01 & 334.13 & 2 356.3  & \B 28 052
            &   \multicolumn{2}{c}{Sin Datos}    & \B 28 052        \\
\bottomrule
    \end{tabular}
    \end{document}

在此处输入图片描述

答案2

据我所知,没有必要为任何列指定确切的宽度,尤其是自动换行似乎不合适。只需使用“标准”列类型 -- lcr-- 即可。

您的表格确实有相当少的列,因此在纵向模式下,它不适合正常大小的页面(除非您选择极小的字体大小)。因此,我建议您改为以横向模式排版表格 - 使用包sidewaystable提供的环境rotating

在此处输入图片描述

\documentclass[spanish]{article}
\usepackage[T1]{fontenc}
\usepackage[spanish]{babel}  % or 'portuguese' ?
\usepackage{array,eurosym,rotating}
\begin{document}

\begin{sidewaystable}
\setlength\extrarowheight{2pt}  
\centering
\begin{tabular}{|l|*{8}{c|}}
\cline{1-5}
\multicolumn{5}{|c|}{Mensual} \\
\hline
Nombre & L\'iquido & S. Social & IRPF & Total & Anual l\'iquido & \multicolumn{2}{c|}{Por Caja o ``B''} & Total Anual\\ 
& (A) & (B) & (C) & (A)+(B)+(C) & (D) = A$\times$pagas& \multicolumn{2}{c|}{} & (D) + Caja\\ 
\hline
Jos\'e & 2.563,56 \euro & 172,82 \euro & 864,12 \euro & 3.600,5 \euro & \textbf{38.453 \euro} & 21.295 \euro & 9.851 \euro & \textbf{69.599 \euro}\\ 
\hline
Pedro & 1.949,50 \euro & 170,60 \euro & 669,50 \euro & 2.789,6 \euro & \textbf{41.844 \euro} & \multicolumn{2}{c|}{Sin Datos}& \textbf{41.844 \euro}\\ 
\hline
Antonio & 2.240,72 \euro & 181,99 \euro & 601,84 \euro & 3.024,6 \euro & \textbf{26.889 \euro} & \multicolumn{2}{c|}{10.125 \euro}& \textbf{37.014 \euro}\\ 
\hline
Lina & 1.870,12 \euro & 152,01 \euro & 334,13 \euro & 2.356,3 \euro & \textbf{28.052 \euro} & \multicolumn{2}{c|}{Sin Datos}& \textbf{28.052 \euro}\\ 
\hline
\end{tabular}
\end{sidewaystable}

\end{document}

附录:您还应该考虑让表格看起来更“开放”,以便让其看起来更吸引人、更受读者欢迎。要实现这样的外观,请考虑 (i) 删除所有垂直线和大多数水平线,以及 (ii) 使用包的宏来booktabs处理剩余的水平线。为了进一步提高可读性,请考虑将欧元符号放在单独的标题行中。

在此处输入图片描述

\documentclass[spanish]{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[spanish]{babel}  % or 'portuguese' ?
\usepackage{eurosym,rotating,booktabs}
\begin{document}

\begin{sidewaystable} 
\centering
\begin{tabular}{@{}l*{8}{c}@{}}

\multicolumn{5}{@{}c}{Mensual} \\
\cmidrule(r){1-5}
Nombre & L\'iquido & S. Social & IRPF & Total & Anual l\'iquido & \multicolumn{2}{c}{Por Caja o ``B''} & Total Anual\\ 
& (A) & (B) & (C) & (A)+(B)+(C) & (D) = (A)$\times$pagas& & & (D) + Caja\\ 
\cmidrule(lr){7-8}
& (\euro) & (\euro) & (\euro) & (\euro) & (\euro) & (\euro) & (\euro) & (\euro) \\
\midrule
Jos\'e & 2.563,56 & 172,82 & 864,12 & 3.600,50 & \textbf{38.453} & 21.295 & 9.851 & \textbf{69.599}\\ 
\addlinespace
Pedro & 1.949,50 & 170,60 & 669,50 & 2.789,60 & \textbf{41.844} & \multicolumn{2}{c}{Sin Datos}& \textbf{41.844}\\ 
\addlinespace
Antonio & 2.240,72 & 181,99 & 601,84 & 3.024,55 & \textbf{26.889} & \multicolumn{2}{c}{10.125\,\euro}& \textbf{37.014}\\ 
\addlinespace
Lina & 1.870,12 & 152,01 & 334,13 & 2.356,26 & \textbf{28.052} & \multicolumn{2}{c}{Sin Datos}& \textbf{28.052}\\ 
\bottomrule
\end{tabular}
\end{sidewaystable}

\end{document}

答案3

\documentclass{article}
\usepackage{multirow}
\usepackage{eurosym}
\begin{document}
\begin{tabular}{|p{1.5cm}|p{1.2cm}|p{1.2cm}|p{1.2cm}|p{1.2cm}|p{1.5cm}|p{0.9cm}|p{0.6cm}|p{1.2cm}|}
    \hline %with this command the line is for all the table not just the 5 columns 
\multicolumn{5}{|c|}{Mensual} &\multicolumn{4}{c|}{}\\ %needed to insert line break 
    \hline
    & L\'iquido & S. Social & IRPF & TOTAL & Anual l\'iquido & \multicolumn{2}{|c|}{} & Total Anual\\ 
    Nombre & (A) & (B) & (C) & A+B+C & (D) = A $\times$ pagas& \multicolumn{2}{|c|}{Por Caja o ``B''} & (D) + Caja\\ \hline
    & \euro & \euro & \euro & \euro &\euro & \euro & \euro & \euro \\\hline
    Jos\'e & 2.563,56 & 172,82 & 864,12  & 3.600,5 & \textbf{38.453} & 21.295 & 9.851  & \textbf{69.599 }\\ \hline
    Pedro & 1.949,50 & 170,60  & 669,50  & 2.789,6 & \textbf{41.844 } & \multicolumn{2}{|c|}{Sin Datos}& \textbf{41.844 }\\ \hline
    Antonio & 2.240,72  & 181,99 & 601,84  & 3.024,6  & \textbf{26.889 } & \multicolumn{2}{|c|}{10.125}& \textbf{37.014}\\ \hline
    Lina & 1.870,12  & 152,01 & 334,13 & 2.356,3  & \textbf{28.052} & \multicolumn{2}{|c|}{Sin Datos}& \textbf{28.052 }\\ \hline
    \end{tabular}
    \end{document}

欧罗巴

相关内容