将表格列标题置于逗号对齐的数字上方

将表格列标题置于逗号对齐的数字上方

我试图让下表看起来美观。这样,我希望标题水平居中,数字以逗号对齐。

现在看起来是这样的:

桌子

还有我的代码。

\documentclass[11pt,a4paper]{article}       % Alternativet er å bruke {report}, men vi holder oss helst til {article} i labrapportene.
\usepackage{booktabs}  
\usepackage[norsk]{babel}
\usepackage{color}
\usepackage{graphicx} 
\usepackage{siunitx}

\sisetup{
table-number-alignment = right,
}

\begin{document}

\begin{table}[h!tb]
    \centering
        \caption{beregnede og målte verdier av magnetfeltet $B$ på aksen til en kort spole s,f.a. avstanden $x$ fra spolens midtplan.}
        \vspace{0.5cm}                      % Litt ekstra plass for å få det til å se penere ut.
        \label{Tabell2}\resizebox{15cm}{!}{
        \begin{tabular}{@{}*{10}{r@{}}} 
            \toprule                        % Horisontal linje.     &
\multicolumn{1}{p{1cm}}{\centering {\color{white}|}\vspace*{-0.3cm} \newline \hspace*{0.1cm} $x$     \newline ($m$) }                   &    
\multicolumn{1}{p{2cm}}{\centering $a=2R$ \newline \hspace*{0.05cm} Beregnet   \newline \hspace*{0.3cm}  $B_1$       \newline (gauss)}  &   
\multicolumn{1}{p{2cm}}{\centering $a= R$ \newline \hspace*{0.15cm} Beregnet   \newline \hspace*{0.25cm} $B_1$       \newline (gauss)}  &
\multicolumn{1}{p{2cm}}{\centering $a=R/2$\newline \hspace*{0.15cm} Beregnet   \newline \hspace*{0.25cm} $B_1$       \newline (gauss)}  &    
\multicolumn{1}{p{2cm}}{\centering $a=2R$ \newline \hspace*{0.05cm} Målt       \newline \hspace*{0.1cm}  $B_2$       \newline (gauss)}  &
\multicolumn{1}{p{2cm}}{\centering $a=2R$ \newline \hspace*{0.05cm} Differanse \newline \hspace*{0.1cm}  $B_2 - B_1$ \newline (\%}      &
\multicolumn{1}{p{2cm}}{\centering $a= R$ \newline \hspace*{0.05cm} Målt \newline\hspace*{0.1cm}  $B_2$ \newline (prosent)}             &
\multicolumn{1}{p{2cm}}{\centering $a= R$ \newline \hspace*{0.05cm} Differanse \newline\hspace*{0.1cm}  $B_2 - B_1$ \newline (\%)}      & 
\multicolumn{1}{p{2cm}}{\centering $a=R/2$\newline \hspace*{0.05cm} Målt \newline\hspace*{0.1cm}  $B_2$ \newline (prosent)}             &
\multicolumn{1}{p{2cm}}{\centering $a=R/2$\newline \hspace*{0.05cm} Differanse \newline\hspace*{0.1cm}  $B_2 - B_1$ \newline (\%)}       \\
\midrule                                        
-0,18   &  5,265    &  3,365    &  2,981    &  5,31     &  0,864    &  3,34     & -0,743    &  3,01     &  0,959 \\
-0,16   &  7,725    &  4,667    &  4,057    &  7,77     &  0,584    &  4,60     & -1,439    &  4,08     &  0,559 \\
-0,14   & 11,595    &  6,666    &  5,675    & 11,61     &  0,131    &  6,58     & -1,293    &  5,68     &  0,084 \\
-0,12   & 17,398    &  9,797    &  8,175    & 17,48     &  0,470    &  9,62     & -1,811    &  8,17     & -0,061 \\
-0,10   & 24,796    & 14,694    & 12,114    & 24,71     & -0,345    & 14,35     & -2,338    & 12,04     & -0,607 \\
-0,08   & 30,955    & 21,937    & 18,306    & 30,82     & -0,436    & 21,46     & -2,175    & 18,10     & -1,125 \\
-0,06   & 31,701    & 30,981    & 27,529    & 31,61     & -0,288    & 30,59     & -1,262    & 27,27     & -0,940 \\
-0,04   & 27,387    & 38,714    & 39,223    & 27,42     &  0,121    & 38,68     & -0,088    & 38,99     & -0,595 \\
-0,02   & 22,688    & 41,914    & 49,688    & 22,67     & -0,080    & 42,49     &  1,375    & 49,85     &  0,326 \\
 0,00   & 20,852    & 42,202    & 53,852    & 20,74     & -0,538    & 43,00     &  1,892    & 54,31     &  0,850 \\
 0,02   & 22,688    & 41,914    & 49,688    & 22,49     & -0,873    & 42,46     &  1,303    & 50,04     &  0,708 \\
 0,04   & 27,387    & 38,714    & 39,223    & 27,00     & -1,412    & 39,01     &  0,764    & 39,36     &  0,349 \\
 0,06   & 31,701    & 30,981    & 27,529    & 31,42     & -0,887    & 31,16     &  0,578    & 27,63     &  0,368 \\
 0,08   & 30,955    & 21,937    & 18,306    & 31,00     &  0,145    & 22,06     &  0,560    & 18,41     &  0,568 \\
 0,10   & 24,796    & 14,694    & 12,114    & 25,13     &  1,348    & 14,88     &  1,269    & 12,15     &  0,301 \\
 0,12   & 17,398    &  9,797    &  8,175    & 17,83     &  2,482    &  9,89     &  0,945    &  8,26     &  1,040 \\
 0,14   & 11,595    &  6,666    &  5,675    & 11,91     &  2,718    &  6,77     &  1,558    &  5,74     &  1,141 \\
 0,16   &  7,725    &  4,667    &  4,057    &  8,00     &  3,561    &  4,74     &  1,561    &  4,13     &  1,792 \\
 0,18   &  5,265    &  3,365    &  2,981    &  5,39     &  2,384    &  3,45     &  2,526    &  3,04     &  1,965 \\
\bottomrule
\end{tabular}}
\end{table}

\end{document}

是的,这看起来不太好看。我想我已经尝试了所有办法让它看起来好看。比如使用包装siunitx等等。

是的,我们非常感激任何能让这张表看起来更好的帮助。

我的主要问题和疑问是如何使标题位于数字上方的中心,并且使数字以逗号对齐/对齐到右侧

答案1

我注意到你试图让九个数据列都具有相同的宽度。如果其中一个还想使用包S提供的列类型,那么这并不容易做到siunitx

为了提供可行的解决方案,可以首先观察单词“Differanse”是所有列中最长的单词;通过在“非 Differanse”列中提供代码,强制它们占据“Differanse”的宽度,可以实现等列宽目标。下面的 MWE 基于这些观察结果来实现您的目标。

请注意,当您处理S列类型时,花括号中的材料将默认居中。因此,如果您想在相应的 S 列中居中排版某些非数字材料(例如“xyz”),则无需提供包装器\multicolumn{1}{c}{xyz}- 所需的只是{xyz}

\documentclass[11pt,a4paper]{article}  
\usepackage{booktabs,color,graphicx}
\usepackage[utf8]{inputenc}
\usepackage[norsk]{babel}
\usepackage[labelfont=bf]{caption}

% set margins to whatever specifications are correct...
\usepackage[margin=1in]{geometry} 

\usepackage{siunitx}
\sisetup{ table-number-alignment = right,
          output-decimal-marker = {,} ,
          table-format=2.3}

\setlength\tabcolsep{3pt} % default is 5pt

% set up some auxiliary variables and macros
\newsavebox\diffbox
   \sbox\diffbox{Differanse}
\newlength\diffwidth
   \setlength\diffwidth{\wd\diffbox}
\newsavebox\Berbox
   \savebox{\Berbox}[\diffwidth][c]{\begingroup Beregnet\endgroup}
\newsavebox\Maltbox
   \savebox{\Maltbox}[\diffwidth][c]{\begingroup Målt\endgroup}

% Now the commands to typeset the words "Beregnet" and "Malt" in 
% "boxes" that are as wide as the word "Differanse"
\newcommand{\Beregnet}{\usebox{\Berbox}}
\newcommand{\Malt}{\usebox{\Maltbox}}
\begin{document}

\begin{table}[h!tb]
\caption{Beregnede og målte verdier av magnetfeltet $B$ på aksen til 
  en kort spole s,f.a. avstanden $x$ fra spolens midtplan.}
\label{Tabell2}

\vspace{0.5cm}\noindent  % Litt ekstra plass for å få det til å se penere ut.
\resizebox{\textwidth}{!}{%
\begin{tabular}{S[table-format=2.2] *{9}{S}}
\toprule
& {$a=2R$} & {$a=R$} & {$a=R/2$} 
& {$a=2R$} & {$a=2R$} & {$a=R$} 
& {$a=R$} & {$a=R/2$} & {$a=R/2$}\\
& \Beregnet  & \Beregnet & \Beregnet 
& \Malt & {Differanse} & \Malt 
& {Differanse} & \Malt & {Differanse} \\
{$x$}
& {$B_1$} & {$B_1$} & {$B_1$} 
& {$B_2$} & {$B_2-B_1$} & {$B_2$} 
& {$B_2-B_1$} & {$B_2$} & {$B_2-B_1$} \\
{(m)} % don't set in italics
& {(gauss)} & {(gauss)} & {(prosent)} 
& {(gauss)} & {(\%)} & {(gauss)} 
& {(\%)} & {(prosent)} & {(\%)} \\
\midrule
-0,18 & 5,265 & 3,365 & 2,981 & 5,31 & 0,864 & 3,34 & -0,743 & 3,01 & 0,959 \\
-0,16 & 7,725 & 4,667 & 4,057 & 7,77 & 0,584 & 4,60 & -1,439 & 4,08 & 0,559 \\
-0,14 & 11,595 & 6,666 & 5,675  & 11,61 & 0,131 & 6,58 & -1,293 & 5,68 & 0,084 \\
-0,12 & 17,398 & 9,797 & 8,175 & 17,48 & 0,470 & 9,62 & -1,811 & 8,17 & -0,061 \\
-0,10 & 24,796 & 14,694 & 12,114 & 24,71 & -0,345 & 14,35 & -2,338 & 12,04 & -0,607 \\
-0,08 & 30,955 & 21,937 & 18,306 & 30,82 & -0,436 & 21,46 & -2,175 & 18,10 & -1,125 \\
-0,06 & 31,701 & 30,981 & 27,529 & 31,61 & -0,288 & 30,59 & -1,262 & 27,27 & -0,940 \\
-0,04 & 27,387 & 38,714 & 39,223 & 27,42 & 0,121 & 38,68 & -0,088 & 38,99 & -0,595 \\
-0,02 & 22,688 & 41,914 & 49,688 & 22,67 & -0,080 & 42,49 & 1,375 & 49,85 & 0,326 \\
 0,00 & 20,852 & 42,202 & 53,852 & 20,74 & -0,538 & 43,00 & 1,892 & 54,31 & 0,850 \\
 0,02 & 22,688 & 41,914 & 49,688 & 22,49 & -0,873 & 42,46 & 1,303 & 50,04 & 0,708 \\
 0,04 & 27,387 & 38,714 & 39,223 & 27,00 & -1,412 & 39,01 & 0,764 & 39,36 & 0,349 \\
 0,06 & 31,701 & 30,981 & 27,529 & 31,42 & -0,887 & 31,16 & 0,578 & 27,63 & 0,368 \\
 0,08 & 30,955 & 21,937 & 18,306 & 31,00 & 0,145 & 22,06 & 0,560 & 18,41 & 0,568 \\
 0,10 & 24,796 & 14,694 & 12,114 & 25,13 & 1,348 & 14,88 & 1,269 & 12,15 & 0,301 \\
 0,12 & 17,398 & 9,797 & 8,175 & 17,83 & 2,482 & 9,89 & 0,945 & 8,26 & 1,040 \\
 0,14 & 11,595 & 6,666 & 5,675 & 11,91 & 2,718 & 6,77 & 1,558 & 5,74 & 1,141 \\
 0,16 & 7,725 & 4,667 & 4,057 & 8,00 & 3,561 & 4,74 & 1,561 & 4,13 & 1,792 \\
 0,18 & 5,265 & 3,365 & 2,981 & 5,39 & 2,384 & 3,45 & 2,526 & 3,04 & 1,965 \\
\bottomrule
\end{tabular}} % end of scope of \resizebox command
\end{table}
\end{document} 

在此处输入图片描述

答案2

第一个近似值是

\documentclass[11pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{booktabs}  
\usepackage[norsk]{babel}
\usepackage{color}
\usepackage{graphicx} 
\usepackage{siunitx}
\sisetup{output-decimal-marker={,}}

\begin{document}

\begin{table}
\newcommand\my[1]{\multicolumn{1}{c}{#1}} % just to simplify input

\centering

\caption{beregnede og målte verdier av magnetfeltet $B$ på aksen til
en kort spole s, f.a. avstanden $x$ fra spolens midtplan.}\label{Tabell2}

\resizebox{\textwidth}{!}{%
\begin{tabular}{*{10}{S[table-format=3.3]}} 
\toprule
& \my{$a=2R$} & \my{$a=R$} & \my{$a=R/2$} & \my{$a=2R$} & \my{$a=2R$} &
  \my{$a=R$}  & \my{$a=R$} & \my{$a=R/2$} & \my{$a=R/2$} \\
& \my{Beregnet} & \my{Beregnet} & \my{Beregnet} &
\my{Mål} & \my{Differanse} & 
\my{Mål} & \my{Differanse} & 
\my{Mål} & \my{Differanse}\\
\my{$x$} & \my{$B_1$} & \my{$B_1$} & \my{$B_1$} & \my{$B_2$} &
\my{$B_2 - B_1$} & \my{$B_2$} & \my{$B_2 - B_1$} & \my{$B_2$} & \my{$B_2 - B_1$} \\
\my{(\si{m})} &
\my{(\si{gauss})} &   
\my{(\si{gauss})} &
\my{(\si{gauss})} &    
\my{(\si{gauss})} &
\my{(\%)} &
\my{(prosent)} &
\my{(\%)} & 
\my{(prosent)} &
\my{(\%)} \\
\midrule                                          
-0,18   &  5,265    &  3,365    &  2,981    &  5,31     &  0,864    &  3,34     & -0,743    &  3,01     &  0,959 \\
-0,16   &  7,725    &  4,667    &  4,057    &  7,77     &  0,584    &  4,60     & -1,439    &  4,08     &  0,559 \\
-0,14   & 11,595    &  6,666    &  5,675    & 11,61     &  0,131    &  6,58     & -1,293    &  5,68     &  0,084 \\
-0,12   & 17,398    &  9,797    &  8,175    & 17,48     &  0,470    &  9,62     & -1,811    &  8,17     & -0,061 \\
-0,10   & 24,796    & 14,694    & 12,114    & 24,71     & -0,345    & 14,35     & -2,338    & 12,04     & -0,607 \\
-0,08   & 30,955    & 21,937    & 18,306    & 30,82     & -0,436    & 21,46     & -2,175    & 18,10     & -1,125 \\
-0,06   & 31,701    & 30,981    & 27,529    & 31,61     & -0,288    & 30,59     & -1,262    & 27,27     & -0,940 \\
-0,04   & 27,387    & 38,714    & 39,223    & 27,42     &  0,121    & 38,68     & -0,088    & 38,99     & -0,595 \\
-0,02   & 22,688    & 41,914    & 49,688    & 22,67     & -0,080    & 42,49     &  1,375    & 49,85     &  0,326 \\
 0,00   & 20,852    & 42,202    & 53,852    & 20,74     & -0,538    & 43,00     &  1,892    & 54,31     &  0,850 \\
 0,02   & 22,688    & 41,914    & 49,688    & 22,49     & -0,873    & 42,46     &  1,303    & 50,04     &  0,708 \\
 0,04   & 27,387    & 38,714    & 39,223    & 27,00     & -1,412    & 39,01     &  0,764    & 39,36     &  0,349 \\
 0,06   & 31,701    & 30,981    & 27,529    & 31,42     & -0,887    & 31,16     &  0,578    & 27,63     &  0,368 \\
 0,08   & 30,955    & 21,937    & 18,306    & 31,00     &  0,145    & 22,06     &  0,560    & 18,41     &  0,568 \\
 0,10   & 24,796    & 14,694    & 12,114    & 25,13     &  1,348    & 14,88     &  1,269    & 12,15     &  0,301 \\
 0,12   & 17,398    &  9,797    &  8,175    & 17,83     &  2,482    &  9,89     &  0,945    &  8,26     &  1,040 \\
 0,14   & 11,595    &  6,666    &  5,675    & 11,91     &  2,718    &  6,77     &  1,558    &  5,74     &  1,141 \\
 0,16   &  7,725    &  4,667    &  4,057    &  8,00     &  3,561    &  4,74     &  1,561    &  4,13     &  1,792 \\
 0,18   &  5,265    &  3,365    &  2,981    &  5,39     &  2,384    &  3,45     &  2,526    &  3,04     &  1,965 \\
\bottomrule
\end{tabular}%
}
\end{table}

\end{document}

检查文档siunitx以对列规格进行微调。

答案3

我今天遇到了完全一样的问题。

我使用了\hspace{1ex}“缺失”数字的位置。这样我就可以毫无问题地使用居中对齐。它在数字之前(例如,在包含 133.23 等数字的列中,17.23)和数字之后(例如,0.23 和 0.235)都有效。

您可能需要\newcommand{\x}{\hspace{1ex}}为此定义一个新命令,因为\hspace{1ex}一直使用会使您的代码难以阅读。

编辑: 更好的解决方案是使用幻像字符,例如\phantom{0}。这样 LaTeX 会添加一个与您指定的字符(在本例中为零)具有相同高度和宽度的不可见字符。\vphantom\hpantom也存在。它们的工作方式与 相同,\phantom但仅限于垂直和水平方向。

相关内容