Overful hbox(如何將表格中的句子變成2行?)

Overful hbox(如何將表格中的句子變成2行?)
\begin{table}[h!]
    \centering
    \begin{tabular}{l|c |c |c |c |c |c}
         1 & 2 & 3 & 4jkjhkjkhjhkjkjkjl & 5fsdsadsadasdsadsadasdsadsa & 6dasdsadasdasdasdasdsadasdsa \\
         \hline
         1 & 2 & 3 \\
         1 & 2 & 3 \\
    \end{tabular}
    \caption{tes}
    \label{tab:my_label}
\end{table}

輸出:

在此輸入影像描述

如何將「5fsdsadsadasdsadsadasdsadsa」變成2行?例如:

5fsdsadsadasd
sadsadasdsadsa

答案1

你還沒有表明有多寬第 4、5 和 6 列應該是。因此,我假設他們應該是同樣寬。我將進一步假設表格材料的整體寬度應該\textwidth與文字區塊一樣寬。下面的程式碼使用了一個tabularx環境和三列類型X

由於沒有明顯的方法 - 至少對我來說...... - 來決定字符串“5fsdsadsadasdsadsadasdsadsa”和“6dasdsadasdasdasdasdsadasdsa”應該在哪裡分割,我將使用宏\seqsplit來強制在字符串到達時發生換行各個單元格的寬度。

在此輸入影像描述

\documentclass{article}
\usepackage{tabularx,seqsplit}
\begin{document}
\begin{table}[h!]
\setlength\extrarowheight{2pt} % for a ever so slightly more open "look"
    \begin{tabularx}{\textwidth}{|c |c |c |X |X |X |}
    \hline
    1 & 2 & 3 & 
         \seqsplit{4jkjhkjkhjhkjkjkjl} & 
         \seqsplit{5fsdsadsadasdsadsadasdsadsa} & 
         \seqsplit{6dasdsadasdasdasdasdsadasdsa} \\
         \hline
    1 & 2 & 3 & & & \\
    1 & 2 & 3 & & & \\
    \hline
    \end{tabularx}
\caption{tes}
\label{tab:my_label}
\end{table}
\end{document}

答案2

在此輸入影像描述

\documentclass{article}

\begin{document}

\begin{table}[htp]% h on its own is asking for trouble
    \centering
    \begin{tabular}{l|c |c |c |c |c |c}
         1 & 2 & 3 & 4jkjhkjkhjhkjkjkjl & 
\begin{tabular}{@{}c@{}}5fsdsadsadasd\\sadsadasdsadsa\end{tabular} &
\begin{tabular}{@{}c@{}}6dasdsadasdasd\\asdasdsadasdsa\end{tabular} \\
         \hline
         1 & 2 & 3 \\
         1 & 2 & 3 \\
    \end{tabular}
    \caption{tes}
    \label{tab:my_label}
\end{table}
\end{document}

相關內容