我试图让下表看起来美观。这样,我希望标题水平居中,数字以逗号对齐。
现在看起来是这样的:
还有我的代码。
\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
但仅限于垂直和水平方向。