如何正确对齐表格中的文本?

如何正确对齐表格中的文本?

以下是源代码:

\begin{table}[h!]
\caption{Total length obtained from the model for transmission lines at 150, 220 and 440 kV.}
\centering
\begin{tabularx}{0.49\textwidth}{l l L}
\toprule
\textbf{Voltage level(kV)} & \textbf{Reported length(km)}\cite{a7} & \textbf{Inferred length(km)} \\ \midrule
150 & 2501 & 2419\\
220 & 3848 & 3648\\
400 & 3075 & 2862\\
\bottomrule
\end{tabularx}
\label{PortugalTamanho}
\end{table}

输出如下:

在此处输入图片描述

基本上我希望长度(km)直接推断出来否则它不适合该列并转到下一个...如果我添加//“长度”,它将转到“电压水平”下的最左边

也在这里:

\begin{table*}[h!]
\caption{Line loading and Transferred Reactive Powers}
\centering
\begin{tabularx}{1\textwidth}{l l l l l l l l l}
\toprule
\textbf{From bus} & \textbf{To bus} & $\mathbf{V_{n}}$\textbf{(kV)} & \multicolumn{2}{c}{\textbf{Emission}} & \multicolumn{2}{c}{\textbf{Reception}} & \textbf{L}$\mathbf{_{CA}}$ (\%) & \textbf{L}$\mathbf{_{CC}}$ (\%) \\
 & & & \textbf{Q(MVAR)}$_{CA}$ &\textbf{Q(MVAR)}\cite{a7} & \textbf{Q(MVAR)}$_{CA}$ & \textbf{Q(MVAR)}\cite{a7} \\
\midrule
Fernão Ferro & Trafaria & 150 & 19.38 & 11.1 & 19.57 & 10.9 &61.6 & 57.04 \\
Fernão Ferro & Trafaria & 150 & 19.38 & 11.1 & 19.57 &  10.9 &61.6 &57.04\\
Fernão Ferro & Fogueteiro & 150 & 1.42 & 1.8 & 1.05 & 2.1  & 3.25&3.25\\ 
Fernão Ferro & Fogueteiro & 150 & 1.42 &  & 1.05 &3.25 &3.25 \\ 
\bottomrule
\end{tabularx}
\label{T4}
\end{table*}

这超出了页边距:

在此处输入图片描述

我怎样才能避免这种情况?

答案1

OP 没有提供任何有关正在使用的文档类的信息。但是,根据 OP 发布的屏幕截图判断,似乎IEEEtran应该使用文档类(或从其派生的类)。

  • 第一个表:由于不知道L列类型是如何定义的,我无法复制 OP 的屏幕截图。话虽如此,似乎不需要环境tabularx。只需使用tabular环境并努力为标题材料提供更多视觉结构即可。请注意,没有必要诉诸大胆的标题材质。

  • 第二张表:同样,不需要设置tabularx。只需使用普通tabular环境,并再次为标题材料提供清晰的视觉结构。哦,我会加载包siunitx并使用其S列类型将第 4 列到第 9 列中的数字对齐到各自的小数点标记上。同样,不需要大胆的

在此处输入图片描述


在此处输入图片描述

\documentclass{IEEEtran}
\usepackage[T1]{fontenc}
\usepackage{newtxtext,newtxmath} % Times Roman text and math clone fonts
\usepackage{booktabs,siunitx}
% handy shortcut macro for header cells in second table:
\newcommand\mytab[1]{\smash{\begin{tabular}[t]{@{}c@{}} #1 \end{tabular}}}
\usepackage{lipsum} % filler text

\begin{document}

\lipsum[2] % filler text

\begin{table}[h!]
\caption{Total length obtained from the model for transmission lines at 150,~220 and 440 \unit{\kilo\volt}.} 
\label{PortugalTamanho}
\centering
\begin{tabular}{@{} ccc @{}}
\toprule
Voltage level & Reported length \cite{a7} & Inferred length \\
(\unit{\kilo\volt}) & (\unit{\kilo\meter}) & (\unit{\kilo\meter}) \\
\midrule
150 & 2501 & 2419 \\
220 & 3848 & 3648 \\
400 & 3075 & 2862 \\
\bottomrule
\end{tabular}
\end{table}

\lipsum[2] % filler text

\addtocounter{table}{2} % just for this example
\begin{table*}[h!]
\caption{Line loading and Transferred Reactive Powers}
\label{T4}
\centering
\begin{tabular}{@{} ll c *{6}{S[table-format=2.2]} @{}}
\toprule
From bus & To bus & 
\mytab{${V_{n}}$\\(\unit{\kilo\volt})} & 
\multicolumn{2}{c}{Emission} & 
\multicolumn{2}{c}{Reception} & 
{\mytab{$L_{\mathrm{CA}}$\\(\%)}} & 
{\mytab{$L_{\mathrm{CC}}$\\(\%)}} \\
\cmidrule(lr){4-5} \cmidrule(lr){6-7}
 & & & 
 {$Q(\mathrm{MVAR})_{\mathrm{CA}}$} & {$Q(\mathrm{MVAR})$ \cite{a7}} & 
 {$Q(\mathrm{MVAR})_{\mathrm{CA}}$} & {$Q(\mathrm{MVAR})$ \cite{a7}} \\
\midrule
Fernão Ferro & Trafaria & 150 & 19.38 & 11.1 & 19.57 & 10.9 &61.6 & 57.04 \\
Fernão Ferro & Trafaria & 150 & 19.38 & 11.1 & 19.57 &  10.9 &61.6 &57.04\\
Fernão Ferro & Fogueteiro & 150 & 1.42 & 1.8 & 1.05 & 2.1  & 3.25&3.25\\ 
Fernão Ferro & Fogueteiro & 150 & 1.42 &  & 1.05 &3.25 &3.25 \\ 
\bottomrule
\end{tabular}
\end{table*}

\lipsum[3-16] % more filler text

\end{document}

答案2

  1. tabularx仅当您使用至少一列时才有意义。XX列会包装内容,以使列宽适合可用空间。

  2. 您使用的 L 列需要包tabulary (并且不能在tabularx环境中使用)或是一个可能已在某处定义的自定义列。在更好的情况下,我猜这实际上是一个左对齐的 X 列,但如果没有这个定义,没有人能确定您在做什么。

  3. 至少在第二个表中,您只使用l标准tabular(不带“x”)环境的列,其中列的宽度仅由单元格内容决定,而不换行文本,无论您为tabularx(带有“x”)环境设置的宽度如何。

  4. 最好不要使用1 列浮点数和2 列浮点数x.xx\textwidth来设置表格宽度。在两种情况下都使用 just 绝对不会出错。\textwidth\linewidth

  5. 要查看表格是否仅使用一些 X 列就能很好地适应,或者是否需要其他修复,我们需要了解文档布局(边距、字体大小等)。这可以通过非法侵犯您的隐私来解决,使用神奇的水晶球来查看您在做什么,或者更好的是,如果您提供一个 最小工作示例(MWE),即可“按原样”编译的代码,以 开头\documentclass{...}并以 结尾\end{document},显示您的文档布局。您应该从 MWE 中删除与问题无关的内容和序言。正如评论中所说,您可以使用lipsum轻松生成虚拟文本来显示文本,而无需添加任何实际内容。

相关内容