表格单元格中的多行

表格单元格中的多行

我的表格有问题。我应该在单元格中放置大文本。它应该是多行的。我该怎么做:

\begin{table}[H]
\centering % used for centering table
\begin{tabular}{c c c c c} 
\hline 
\\
Case & Entscheidungsbäume & Neuronale Netze & kNN & SVM \\ 
\hline\hline % inserts single horizontal line
\\
Accuracy in general & ** & *** & ** & **** \\ % 
Speed of learning with 
respect to number of 
attributes and the number of 
instances  & *** &* & **** & * \\
3 & 31 & 25 & 415 \\
4 & 35 & 144 & 2356 \\
5 & 45 & 300 & 556 \\ [1ex] % 
\end{tabular}
\caption{Nonlinear Model Results} % title of Table
\label{table:nonlin} % is used to refer this table in the text

\end{table}

谢谢

答案1

我建议您 (a) 从 a 环境切换tabular到 atabularx环境,(b) 将环境的整体宽度设置tabularx\textwidth,以及 (c) 对第一列使用 a (修改形式)X列类型。这样做会告诉 LaTeX 将第一列的宽度计算为\textwidth其他列宽度之差和之和。

此外,请考虑使用包中的线条绘制宏booktabs来代替基本的 LaTeX\hline指令,以便给您的读者带来帮助。

在此处输入图片描述

\documentclass[a4paper]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman,english]{babel}
\usepackage{tabularx}  % for 'tabularx' environment and 'X' column type
\usepackage{ragged2e}  % for '\RaggedRight' macro (allows hyphenation)
\newcolumntype{Y}{>{\RaggedRight\arraybackslash}X} 
\usepackage{booktabs}  % for \toprule, \midrule, and \bottomrule macros 

\begin{document}
\begin{table}
\begin{tabularx}{\textwidth}{@{} Y c c c c @{}} % use 'Y' for first column
\toprule
Case & Entscheidungsbäume & Neuronale Netze & kNN & SVM \\
\midrule
Accuracy in general & ** & *** & ** & **** \\ \addlinespace
Speed of learning with
respect to number of
attributes and number of
instances  & *** &* & **** & * \\ \addlinespace
3 & 31 & 25 & 415 \\
4 & 35 & 144 & 2356 \\
5 & 45 & 300 & 556 \\ 
\bottomrule
\end{tabularx}
\caption{Nonlinear Model Results} 
\label{table:nonlin}
\end{table}
\end{document}

附录回答 OP 的后续问题:

  1. 我的建议是避免使用双线;它们散发着 20 世纪 70 年代和 80 年代的气息……如果您想让\toprule和创建的线条\bottomrule稍微粗一些,可以通过更改参数 的值来实现\heavyrulewidth。其默认值为0.08em;试试看,\setlength\heavyrulewidth{0.1em}看看您是否喜欢这个结果。 的宽度\midrule由参数控制\lightrulewidth(默认值:0.05em);看看是否\setlength\lightrulewidth{0.625em}适合您。顺便说一句,如果你 坚持制定两个连续的规则,,,\toprule\toprule等等\midrule\midrule就可以完成工作......

  2. 我认为“每个单元格中间都有星星”的意思是星号应该垂直居中。(当然,星号已经水平居中了。)在这方面,我的建议还是“不要这样做”。 :-) 相反,您可能需要考虑制作第 2 列和第 3 列更窄通过在标题中引入换行符。通过减小第 2 列和第 3 列的宽度,第 1 列会自动变宽,并且其中一个单元格中的长文本现在可以放在三行而不是五行中。效果如下所示——我认为考虑重新定位星号已经没有用了。(如果您仍然坚持垂直居中星号,请\renewcommand{\tabularxcolumn}[1]{m{#1}}在加载包之后tabularx并在设置Y列类型之前发出指令……)

只是为了好玩,根据第一点中的讨论,我在下图中将\heavyrulewidth和的值增加了 25%。\lightrulewidth

在此处输入图片描述

\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman,english]{babel}
\usepackage{tabularx}  % for 'tabularx' environment and 'X' column type
\usepackage{ragged2e}  % for '\RaggedRight' macro (allows hyphenation)
\newcolumntype{Y}{>{\RaggedRight\arraybackslash}X} 
\usepackage{booktabs}  % for \toprule, \midrule, and \bottomrule macros 

\setlength\heavyrulewidth{0.1em}
\setlength\lightrulewidth{0.0625em}
\begin{document}\pagestyle{empty}
\begin{table}
\begin{tabularx}{\textwidth}{@{} Y c c c c @{}} % use 'Y' for first column
\toprule
Case & Entscheidungs- & Neuronale & kNN & SVM \\ %% new: line breaks in two of the header cells
& bäume & Netze\\
\midrule
Accuracy in general & ** & *** & ** & **** \\ \addlinespace
Speed of learning with
respect to number of
attributes and number of
instances  & *** &* & **** & * \\ \addlinespace
3 & 31 & 25 & 415 \\
4 & 35 & 144 & 2356 \\
5 & 45 & 300 & 556 \\ 
\bottomrule
\end{tabularx}
\caption{Nonlinear Model Results} 
\label{table:nonlin}
\end{table}
\end{document}

答案2

p 属性应该有帮助。

\begin{tabular}{p{3cm} c c c c} 

相关内容