我是 latex 和 overleaf 的新手。我尝试在 overleaf 中创建一个表格。我收到这样的错误:
额外的对齐标签已更改为 \cr。
我曾经p{... cm}
指定过列的宽度。
在每一行的末尾,我尝试使用\\\
,但 hline 断了;因此将其更改为&
。使用\\\
可以消除错误,但表格看起来不像我想要的那样。
\begin{table}[!t]
\centering
\caption{Demo Caption\centering}
\label{table-ndf}
\begin{tabular}{p{1.3cm}p{1.4cm}p{2.4cm}p{3.1cm}p{3.4cm}}
%\begin{tabular}{p{3cm}p{2.5cm}P{4.5cm}}
%\begin{tabular}{ccccc}
\hline
{\textbf{Demo option}}\centering & \textbf{Demo option}\centering & \textbf{Demo option demo}\centering & \textbf{Demo Option Demo option}\centering & \textbf{Demo Option Demo option Demo option}\centering &
\hline
0.0\centering & -\centering & {100\%}\centering & 90.0\centering & 90.0\centering &
0.5\centering & {Demo 3}\centering & {50\%}\centering & 45.0\centering & 45.0\centering &
1.0\centering & {Demo 6}\centering & {25\%}\centering & 22.5\centering & 22.5\centering &
\hline
\end{tabular}
\end{table}
如果您有任何建议,请发表评论。如果代码有误,请见谅;这是我第一次使用 overleaf。
答案1
\centering
环境中的所有指令tabular
都没有任何用处。你想用它们实现什么?在下文中,我假设你想要实现的是将单元格内容居中,同时允许根据需要进行换行。如果此假设不正确,请告知。
根据上述假设,并将&
行尾的符号替换为\\
,我得到以下结果:
\documentclass{article}
\usepackage{array} % for \newcolumntype macro
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
\begin{document}
\begin{table}[!ht]
\centering
\caption{Demo caption\strut} \label{table-ndf}
\begin{tabular}{ C{1.3cm} C{1.3cm} C{1.3cm} C{2.6cm} C{2.6cm} }
\hline
\textbf{Demo option} &
\textbf{Demo option} &
\textbf{Demo option demo} &
\textbf{Demo option demo option} &
\textbf{Demo option demo option demo option} \\
\hline
0.0 & -- & 100\% & 90.0 & 90.0 \\
0.5 & Demo 3 & 50\% & 45.0 & 45.0 \\
1.0 & Demo 6 & 25\% & 22.5 & 22.5 \\
\hline
\end{tabular}
\end{table}
\end{document}
答案2
编写表格的两种可能方法:
- 通过使用
tabularx
包 - 通过使用 7tabularray
package with libraries (packages)
booktabsand
siunitx`
\documentclass{article}
%--------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\usepackage{tabularx}
\usepackage{tabularray}
\UseTblrLibrary{booktabs, siunitx}
\begin{document}
\begin{table}[htb]
\setlength\tabcolsep{4pt}
\caption{Demo Caption: \texttt{tabularx}}
\label{table-ndf}
\begin{tabularx}{\linewidth}{@{} >{\centering\arraybackslash\hsize=0.6\hsize}X
*{5}{>{\centering\arraybackslash\hsize=1.1\hsize}X} @{}}
\hline
\textbf{Demo option}
& \textbf{Demo option}
& \textbf{Demo option demo}
& \textbf{Demo Option Demo option}
& \textbf{Demo Option Demo option Demo option} \\
\hline
0.0 & -- & 100\,\% & 90.0 & 90.0 \\
0.5 & Demo 3 & 50\,\% & 45.0 & 45.0 \\
1.0 & Demo 6 & 25\,\% & 22.5 & 22.5 \\
\hline
\end{tabularx}
\end{table}
\begin{table}[htb]
\setlength\tabcolsep{4pt}
\caption{Demo Caption: \texttt{tabularray}}
\label{table-ndf}
\begin{tblr}{colsep = 4pt,
colspec = {@{} *{2}{X[0.7, c]}
X[1.1, c, si={table-format=3.0{\,\%}}]
*{2}{X[1.1, c]} @{}},
row{1} = {font=\bfseries, guard}
}
\toprule
Demo option
& Demo option
& Demo option demo
& Demo Option Demo option
& Demo Option Demo option Demo option \\
\midrule
0.0 & -- & 100\,\% & 90.0 & 90.0 \\
0.5 & Demo 3 & 50\,\% & 45.0 & 45.0 \\
1.0 & Demo 6 & 25\,\% & 22.5 & 22.5 \\
\bottomrule
\end{tblr}
\end{table}
\end{document}
(红线表示文本区域边框)