多列文本始终右对齐

多列文本始终右对齐

我在 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

您可以给tabularraysiunitx(作为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}

在此处输入图片描述

相关内容