我花了一个多小时尝试在 Latex 上创建一个简单的 4x3 表格。没什么特别的,就像我用 Word 做的一样。这是我的代码:
\begin{table}[H]
\centering
\caption{\textbf{some caption}}
\begin{tabular}{|l|l|l|l|}
\hline
\textbf{Test (µm)} & \textbf{ (Some really really really long name )} & \textbf{Name name mname} & \textbf{more name)} \\
\hline 1 & 1 & 1 & 1 \\
\hline 1 & 1 & 1 & 1 \\
\hline 1 & 1 & 1 & 1 \\
\hline 1 & 1 & 1 & 1 \\
\hline
\end{tabular}
\end{table}
不幸的是,表格不断溢出并丢失,如下面的屏幕截图所示:
我非常感谢关于如何解决此问题的建议。
答案1
首先,避免使用H
for 放置。如果您不想让表格浮动,则不要通过删除环境使其成为浮动table
。
如果你没有指示 LaTeX 可以换行,那么列变得太宽是正常的。使用p
-type 列。例如:
% !TeX spellcheck = fr_FR
\documentclass[science]{titiarticle}
\begin{document}
\begin{table}[!htb]
\centering
\caption{\textbf{some caption}}
\begin{tabular}{|l|p{4cm}|p{4cm}|l|}
\hline
\textbf{Test (µm)} & \textbf{ (Some really really really long name )} & \textbf{Name name mname} & \textbf{more name)} \\
\hline 1 & 1 & 1 & 1 \\
\hline 1 & 1 & 1 & 1 \\
\hline 1 & 1 & 1 & 1 \\
\hline 1 & 1 & 1 & 1 \\
\hline
\end{tabular}
\end{table}
\end{document}
如果您想要更多的灵活性或其他控制,您应该使用更现代的tabularray
软件包。
答案2
您需要允许(或多或少)在标题单元格中自动换行。但是,基本列类型l
、c
和r
不允许自动换行。
有许多方法可以在 LaTeX 表格中允许换行。其中一种方法是加载 tabularx 包并使用tabularx
环境和X
列类型。在以下解决方案中,第 2 列到第 4 列使用(修改形式的)X
列类型。
\documentclass[12pt]{article}
\usepackage{tabularx} % for tabularx env. and X column type
\usepackage{ragged2e} % for \RaggedRight macro
\newcolumntype{L}{>{\RaggedRight}X} % ragged-right
\begin{document}
\begin{table}[ht]
\caption{Some caption\strut}
\begin{tabularx}{\textwidth}{|l|L|L|L|}
\hline
Test (µm) & (Some really really really long name) & Name name name & more name \\
\hline 1 & 1 & 1 & 1 \\
\hline 1 & 1 & 1 & 1 \\
\hline 1 & 1 & 1 & 1 \\
\hline 1 & 1 & 1 & 1 \\
\hline
\end{tabularx}
\end{table}
\end{document}