我在 Latex 表格环境中。我想将多列中的文本左对齐,但是不起作用。它总是右对齐。
这是我的代码:
\begin{tabular}{|p{2cm}|p{2cm}|p{2cm}|p{2cm}|p{2cm}|}\hline
\textbf{number of lanes:} & \multicolumn{2}{l|}\textbf{8 (20 m width)} & \multicolumn{2}{l|} \textbf{10 (25 m width)}\\
& distance & free space loss & distance & free space loss \\\hline
\textbf{lane length 25 m} & 16.008 m & 10 dB & 17.678 m & 30 dB\\\hline
\textbf{lane length 50 m} & 26.926 m & 20 dB & 27.951 m & 40 dB\\\hline
\end{tabular}
并且输出始终是:
我做错了什么?
我在 Kubuntu 20.10 上安装了 Kile kile 2.9.93
操作系统:Kubuntu 20.10 KDE-Plasma 版本:5.19.5 KDE-Frameworks 版本:5.74.0 Qt 版本:5.14.2 内核版本:5.8.0-63-generic 架构:64 位 处理器:4 × Intel® Core™ i5-3320M CPU @ 2.60GHz 内存:7.6 GiB GPU:Mesa DRI Intel® HD Graphics 4000
(如果你问的话,这是一款用于游泳者重要参数遥测无线电系统的产品)
答案1
您可以给tabularray
和siunitx
(作为tabularray
库加载)包一个机会。使用它们,您将能够轻松控制单元格内容对齐和写入单元。有关这两个功能强大的包的所有可能性的详细信息,请参阅其文档。
- 当所有单元格内容都左对齐时:
\documentclass{article}
\usepackage{tabularray}
\UseTblrLibrary{siunitx}
\begin{document}
\begin{table}[ht]
\centering
\sisetup{text-series-to-math}
\begin{tblr}{hline{1,3-Z}, vlines,
colspec = {*{5}{X[l,m]}},
column{1} = {font=\bfseries},
row{1} = {font=\bfseries}
}
number of lanes:
& \SetCell[c=2]{l} 8 (\qty{20}{m} width)
& & \SetCell[c=2]{l} 10 (\qty{25}{m} width)
& \\
& distance
& free space loss
& distance
& free space loss \\
lane length \qty[unit-font-command=\mathbf]{25}{m}
& \qty{16.008}{m}
& \qty{10}{dB}
& \qty{17.678}{m}
& \qty{30}{dB} \\
lane length \qty[unit-font-command=\mathbf]{50}{m}
& \qty{26.926}{m}
& \qty{20}{dB}
& \qty{27.951}{m}
& \qty{40}{dB} \\
\end{tblr}
\end{table}
\end{document}
- 一种情况,除了第一个单元格内容居中。在这种情况下,上述 MWE 中的表格规范更改为:
\begin{tblr}{hline{1,3-Z}, vlines,
colspec = {X[l,m]*{4}{X[c,m]}}, % <---
column{1} = {font=\bfseries},
row{1} = {font=\bfseries}
}
并将多列单元格规范为:
\SetCell[c=2]{c}
这使:
编辑:
- 还有一种可能的表格布局:
您可以通过下表获得:
\begin{tblr}{hlines, vlines,
colspec = {X[l,m]*{4}{X[c,m]}},
column{1} = {font=\bfseries},
row{1} = {font=\bfseries}
}
答案2
您忘记{}
在 文本周围添加括号\multicolumn
。我还添加了\raggedright
以获得更好的布局。我通过定义新的列类型 来实现这一点q
。
\documentclass{article}
\usepackage{array}
\newcolumntype{q}[1]{>{\raggedright\arraybackslash}p{#1}}
\begin{document}
\begin{tabular}{|q{2cm}|q{2cm}|q{2cm}|q{2cm}|q{2cm}|}\hline
\textbf{number of lanes:} & \multicolumn{2}{l|}{\textbf{8 (20 m width)}} & \multicolumn{2}{l|} {\textbf{10 (25 m width)}}\\
& distance & free space loss & distance & free space loss \\\hline
\textbf{lane length 25 m} & 16.008 m & 10 dB & 17.678 m & 30 dB\\\hline
\textbf{lane length 50 m} & 26.926 m & 20 dB & 27.951 m & 40 dB\\\hline
\end{tabular}
\end{document}