TransWikia.com

Horizontal line writing over text in multicolumn

TeX - LaTeX Asked by Andrea Bustos on June 22, 2021

So, I’m trying to write a Table with some information and for the first time in my life im using multirow and multicolumn. Everything was going kind of ok until I decided to use hline and, as you can see in the code, one of the horizontal lines is going through a multicolumn and writing over my text.

Can someone tell me how I can prevent this from happening?

begin{table}[]
begin{tabular}{|c|c|c|}
hline
multicolumn{2}{|c|}{textbf{Item}}                             & textbf{CPU33}  hline
multicolumn{2}{|c|}{Dimensiones}                      & A      hline
multicolumn{2}{|c|}{Consumo}                          & B      hline
multirow{4}{*}{Ambiente de operación} & Temperatura & C      hline
                                       & Ruido       & D      hline
                                       & Vibración   & E      hline
                                       & Schock      & F      hline
end{tabular}
end{table}

My current table

3 Answers

You can use the cline command to draw horizontal line in only two cells. As the code is shown below:

documentclass{article}

usepackage{multirow}
begin{document}
    begin{table}
    begin{tabular}{|c|c|c|}
        hline
        multicolumn{2}{|c|}{textbf{Item}}                             & textbf{CPU33}  hline
        multicolumn{2}{|c|}{Dimensiones}                      & A      hline
        multicolumn{2}{|c|}{Consumo}                          & B      hline
        multirow{4}{*}{Ambiente de operación} & Temperatura & C   cline{2-3}
        & Ruido       & D     cline{2-3}
        & Vibración   & E      cline{2-3}
        & Schock      & F      hline
    end{tabular}
end{table}
end{document}

The table is table

You can also refer to the following link How can I draw a horizontal line spanning only some of the table cells?

Answered by Abuzar Ghafari on June 22, 2021

In order to make sure a horizontal line does not cross a multirow cell, you can use cline instead of hline. Specify which columns your line should appear in.

Additionally, I have added the cellspace package in order to allow for a small vertical white space above and below of the text in each cell. In the third example, I also included a table using no vertical lines, no multirow and just a fex horizontal lines from the booktabs package:

enter image description here

documentclass{article}

usepackage[column=0]{cellspace}
setlength{cellspacetoplimit}{3pt}
setlength{cellspacebottomlimit}{cellspacetoplimit}
usepackage{multirow}

usepackage{booktabs} % only used in third example

begin{document}
begin{table}
    begin{tabular}{|0c|0c|0c|}
        hline
        multicolumn{2}{|0c|}{textbf{Item}}                    & textbf{CPU33}  hline
        multicolumn{2}{|0c|}{Dimensiones}                      & A               hline
        multicolumn{2}{|0c|}{Consumo}                          & B               hline
        multirow{4.25}{*}{Ambiente de operación} & Temperatura & C               cline{2-3}
                                               & Ruido          & D               cline{2-3}
                                               & Vibración      & E               cline{2-3}
                                               & Schock         & F               hline
    end{tabular}
end{table}

begin{table}
    begin{tabular}{|0c|0c|0c|}
        hline
        multicolumn{2}{|0c|}{textbf{Item}}                    & textbf{CPU33}  hline
        multicolumn{2}{|0c|}{Dimensiones}                      & A               hline
        multicolumn{2}{|0c|}{Consumo}                          & B               hline
        multirow{4.25}{2cm}{Ambiente de operación} & Temperatura & C               cline{2-3}
                                               & Ruido          & D               cline{2-3}
                                               & Vibración      & E               cline{2-3}
                                               & Schock         & F               hline
    end{tabular}
end{table}


begin{table}
    begin{tabular}{lc}
        toprule
        Item                  & CPU33  
        midrule
        Dimensiones           & A      
        Consumo               & B      
        Ambiente de operación         
        quad Temperatura     & C      
        quad Ruido           & D      
        quad Vibración       & E      
        quad Schock          & F     
        bottomrule 
    end{tabular}
end{table}
end{document}

Answered by leandriis on June 22, 2021

You can easily make that table with {NiceTabular} of nicematrix. The key hvlines draws all the rules excepted in the blocks (created by Block).

documentclass{article}
usepackage{nicematrix}

NiceMatrixOptions{cell-space-bottom-limit=3pt,cell-space-top-limit=3pt}

begin{document}

begin{table}
begin{NiceTabular}{lcc}[hvlines]
Block{1-2}{textbf{Item}}           &             & textbf{CPU33}  
Block{1-2}{Dimensiones}             &             & A               
Block{1-2}{Consumo}                 &             & B               
Block{4-1}{Ambiente de operación} & Temperatura & C  
                                     & Ruido       & D  
                                     & Vibración   & E  
                                     & Schock      & F  
end{NiceTabular}
end{table}

end{document}

You need several compilations.

Output of the above code

Answered by F. Pantigny on June 22, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP