0

I'm looking to set a table, however, I'm facing numerous issue. I hope you can help me out. 1) It overflows 2) font-size automatically reduces (2 Sentences are long and with line break it does not work. I'm sharing figure below: This is what I have enter image description here

However, I didn't use line break command in the given figure, whereas, I used in MWE which is below:

\documentclass[journal]{IEEEtran}
\usepackage{tabularx}
\usepackage{graphicx}
\usepackage[utf8]{inputenc}
\usepackage{multirow}
\renewcommand{\q}[1]{``#1''}
\usepackage[usestackEOL]{stackengine}
\strutlongstacks{T}
\usepackage{makecell}
\usepackage{array}
\begin{table}[t]

\caption{anythings}
\renewcommand{\arraystretch}{1.8}
\begin{center}
\label{table_par}
\begin{tabular}{l|l l l l}
%{\textwidth}{*{1}{l|} *{4}{l|}}


 \textbf{{\small Condition }} &fasfasdfafa %&\multicolumn{4}{c}{\textbf{\small jkhjhhk}} 
\\

\hline\hline
\multirow{5}{*}{Smart system}   &involves intelligent communication 

technologyafdasfasfafdafsfonetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo one two two one\\

&two onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo one           \\ 
 &two onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo one\\
                             &two onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo one\\
                             &two onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo one\\


    \hline
    \multirow{5}{*}{two onetwo onetwo one}  & \thead{two onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onevzcxvz,\\ ztwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo one \\one twoone one twoone one twoone one twoone one twoone }  \\ 
                             &one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone \\
                             &one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone \\
                             &one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone \\
                             &one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone .
    \\
    \hline
     \end{tabular}
     \end{center}
    \end{table}

\end{document}

I changed my code as per MWE given by @barbara! however, still problem persis, the only thing I changed arraystretch size and width of the first colum, can you look at again. enter image description here

Shane
  • 388
  • To have line wrapping in a tabularcell,, it has to be in a fixed width column. (p{some length} or m{length} or b{length} or an X column (from tabularx ) Cells in standard columns are single-lined. – Bernard Mar 20 '20 at 23:04
  • 2
    also tex can only linebreak words that it can hyphenate, vzcxvzxvzxvzxvzxvzcxvzxcvzxvzcxvzxvzvzxvzvzxzczcvzxvzvzvzcvzvzvzcvzvzvzvvvzvcvzvvzvvzvzvzvzvzvzxvzvzvzvzvzvzvz will not wrap even in a p column. If your actual text is real words please change your example to something more like one two three one two three if it really is a long string as occurs in some subjects then different techniques are required – David Carlisle Mar 20 '20 at 23:08
  • If this example contained real words, it would be easy to use a "paragraph style" column as already suggested. It would be best to also use ragged right. There's an example of that in this question: Table column text exceeds column width – barbara beeton Mar 20 '20 at 23:14
  • @DavidCarlisle, I agree, I have change upto some extend, now kindly look into it. – Shane Mar 20 '20 at 23:58
  • @barbarabeeton can you explain here what you are saying in the above context? – Shane Mar 20 '20 at 23:59
  • As @DavidCarlisle suggests, use a p (paragraph) column where a long text will naturally flow into the multiple lines of a paragraph. But long strings with no spaces may not break unless the hyphenation mechanism works ("vzcx..." doesn't have any hyphenation points in English), and paragraphs in very narrow columns almost always look better ragged right, where "extra" space is all on the right rather than stretched out in the middle of the line. (I hope this makes sense now.) – barbara beeton Mar 21 '20 at 00:11
  • @barbarabeeton, I trying to do that but still not achieving what I intended. – Shane Mar 21 '20 at 00:21
  • How many columns does your table actually have? In your code, you declared 5 of them but aparently actually only used 2 of them. Could you please clarify? Please alsocomment on the desired vertical alignment of the contents. Since you used \multirow do you want your contents to be vertically centered?... – leandriis Mar 22 '20 at 14:39
  • Since you seem to use a twocolumn documentclass, dou you want your table to be as wide as one of the columns or as wide as both columns? – leandriis Mar 22 '20 at 14:48
  • what do you mean by "fontsize reduces" there is nothing in this code that automatically changes font size. and why have you specified a 5-column table, does your real text need 5 columns or just two ? – David Carlisle Mar 22 '20 at 18:43

2 Answers2

2

You have the data in a tabular in a table and neither of those environments can break over a page.Here I use supertabular. I'm assuming you only need two columns, although you declared 5 columns in your table in the question.

enter image description here

\documentclass[journal]{IEEEtran}
\usepackage{array,supertabular}
\renewcommand{\arraystretch}{1.8}

\begin{document}


\tablehead{%
 \textbf{{\small Condition }} &fasfasdfafa %&\multicolumn{4}{c}{\textbf{\small jkhjhhk}} 
\\
\hline
}
\begin{supertabular}{
@{}
>{\raggedright\arraybackslash}p{50pt}
>{\raggedright\arraybackslash}p{120pt}
@{}}

\hline\hline
Smart system   &involves intelligent communication 

technology afdasfasfafdafsfonetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo one two two one\\

&two onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo one           \\ 
 &two onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo one\\
                             &two onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo one\\
                             &two onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo one\\


    \hline
    two onetwo onetwo one  & two onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onevzcxvz, ztwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo one one twoone one twoone one twoone one twoone one twoone   \\ 
                             &one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone \\
                             &one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone \\
                             &one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone \\
                             &one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone .
    \\
    \hline
     \end{supertabular}


\end{document}
David Carlisle
  • 757,742
1

Here is a slightly modified version of your example code that allows (most of) the text in the right-hand column to wrap. The width is not ideal; this will require some adjustment on your part, but I believe the method is clear enough.

I am not sure what you intend with the \multirow component, so I left it; it can probably be adjusted in the same way as the main part of the table.

\documentclass[journal]{IEEEtran}
\usepackage{tabularx}
\usepackage{graphicx}
\usepackage[utf8]{inputenc}
\usepackage{multirow}
%%\renewcommand{\q}[1]{``#1''}                                                  
\usepackage[usestackEOL]{stackengine}
\strutlongstacks{T}
\usepackage{makecell}
\usepackage{array}

\begin{document}
\begin{table}[t]

\caption{anythings}
\renewcommand{\arraystretch}{1.8}
\begin{center}
\label{table_par}
%%\begin{tabular}{l|l l l l}                                                    
\begin{tabular}{l|p{.7\linewidth}>{\raggedright} l l l}
%{\textwidth}{*{1}{l|} *{4}{l|}}                                                


 \textbf{{\small Condition }} &fasfasdfafa %&\multicolumn{4}{c}{\textbf{\small \ jkhjhhk}}                                                                       
\\

\hline\hline
\multirow{5}{*}{Smart system}   &involves intelligent communication

technologyafdasfasfafdafsfonetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo  one two two one\\

&two onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo one           \\
 &two onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo one\
two onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo one\\
                             &two onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo one\\
                             &two onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo one\\


    \hline
    \multirow{5}{*}{two onetwo onetwo one}  & two onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onevzcxvz, ztwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo onetwo one \\one twoone one twoone one twoone one twoone one twoone   \\
                             &one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone \\
                             &one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone \\
                             &one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone \\
                             &one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone one twoone .
    \\
    \hline
     \end{tabular}
     \end{center}
    \end{table}

\end{document}

enter image description here

David Carlisle
  • 757,742
  • !! I picked your answer to test, but still, table is overflowing and I showed in the above post. Any solution for that. – Shane Mar 22 '20 at 14:20
  • @Shane just remove the \thead and \\ from that entry so it wraps automatically rather than just at the manual linebreaks – David Carlisle Mar 22 '20 at 15:01
  • @DavidCarlisle, I agreed then the table overflows in the whole page, and I need only in one coulmn not for the whole page. – Shane Mar 22 '20 at 17:41
  • 1
    @Shane you hadn't said anywhere that you needed it longer than a page. tabular is unbreakable but you can use supertabular package (longtable doesn't support 2 column classes) – David Carlisle Mar 22 '20 at 17:56
  • @Shane or most two column tables are better set as a description list then page or column breaking can happen anywhere even mid-item – David Carlisle Mar 22 '20 at 17:58
  • @DavidCarlisle, Yes it's my bad, but can you modify the above code as what you demonstrated, again I'm using two-column formate but looking to adust the table in a single column. Thanks – Shane Mar 22 '20 at 18:08