我的表格有问题。我应该在单元格中放置大文本。它应该是多行的。我该怎么做:
\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 的后续问题:
我的建议是避免使用双线;它们散发着 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 列和第 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}