我想要一张宽度为的表格\textwidth
,因此我创建了一个如下表格:
\documentclass[11pt]{article}
\usepackage{booktabs} % Tabellenlinien
\usepackage{colortbl} % farbige Tabellen
\usepackage{array} % Spaltenformate in Tabllen besser formatieren
\usepackage{dcolumn} % dots seperation in columns
\usepackage{tabularx}
\usepackage[binary-units=true]{siunitx} % SI Einheiten
\sisetup{output-decimal-marker = {,}}
\newcolumntype{C}[1]{>{\centering\arraybackslash\hspace{0pt}}p{#1}} % Centered Columns
\newcolumntype{L}[1]{>{\arraybackslash\hspace{0pt}}p{#1}} % Left Columns
\newcolumntype{R}[1]{>{\raggedleft\hspace{0pt}}p{#1}} % Right Columns
\begin{document}
\begin{table}[H]
\centering
\begin{tabular}
{C{0.15\textwidth} C{0.2\textwidth} C{0.15\textwidth}C{0.15\textwidth} C{0.35\textwidth}}
\toprule
\textbf{Klasse} & \textbf{Ausfall Prozent} & \multicolumn{2}{C{0.3\textwidth}}{\textbf{Ausfall Zeit/Monat}} & \textbf{Ausfall Zeit/Jahr}\\
\midrule
2 & 99,0 \% & \multicolumn{1}{R{0.15\textwidth}}{438} & \multicolumn{1}{l}{\,min} & 87,7 h (ca. 3,5 Tage) \\
3 & 99,9 \% & \multicolumn{1}{R{0.15\textwidth}}{43,8} & \multicolumn{1}{l}{\,min} & 8:45 h \\
4 & 99,99 \% & \multicolumn{1}{R{0.15\textwidth}}{4,38} & \multicolumn{1}{l}{\,min} & 52:36 min \\
5 & 99,999 \% & \multicolumn{1}{R{0.15\textwidth}}{26,3} & \multicolumn{1}{l}{\,s} & 5:16 min \\
6 & 99,9999 \% & \multicolumn{1}{R{0.15\textwidth}}{2,63} & \multicolumn{1}{l}{\,s} & 31,6 s \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
但是我不喜欢数字对齐的方式..所以我想将它们对齐到“,”
我尝试使用\siunitx
并且它工作正常,但现在我不知道如何像上面那样设置列的宽度,C{0.2\textwidth}
而且多列解决方案不是我最喜欢的..所以我尝试\siunitx
:
\documentclass[11pt]{article}
\usepackage{booktabs} % Tabellenlinien
\usepackage{colortbl} % farbige Tabellen
\usepackage{array} % Spaltenformate in Tabllen besser formatieren
\usepackage{dcolumn} % dots seperation in columns
\usepackage{tabularx}
\usepackage[binary-units=true]{siunitx} % SI Einheiten
\sisetup{output-decimal-marker = {,}}
\newcolumntype{C}[1]{>{\centering\arraybackslash\hspace{0pt}}p{#1}} % Centered Columns
\newcolumntype{L}[1]{>{\arraybackslash\hspace{0pt}}p{#1}} % Left Columns
\newcolumntype{R}[1]{>{\raggedleft\hspace{0pt}}p{#1}} % Right Columns
\begin{document}
\begin{table}[H]
\centering
\begin{tabular}
{C{0.15\textwidth} S[table-format=2.4] S[table-format=3.1] C{0.35\textwidth}}
\toprule
\textbf{Klasse} & {\textbf{Ausfall Prozent}} & {\textbf{Ausfall Zeit/Monat}} & \textbf{Ausfall Zeit/Jahr}\\
\midrule
2 & 99,0\,\si{\percent} & 438,0\,\si{\minute} & 87,7 h (ca. 3,5 Tage) \\
3 & 99,9\,\si{\percent} & 43,8\,\si{\minute} & 8:45 h \\
4 & 99,99\,\si{\percent} & 4,4\,\si{\minute} & 52:36 min \\
5 & 99,999\,\si{\percent} & 26,3\,\si{\second} & 5:16 min \\
6 & 99,9999\,\si{\percent} & 2,6\,\si{\second} & 31,6 s \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
但是现在第二列overfull
如您所见。我想将宽度设置为,C{0.2\textwidth}
但我不知道该怎么做。表格也没有完整大小\textwidth
编辑:
在……的帮助下拉里法里我编辑了我的 tex 文件。非常感谢!
现在看起来像这样:
它是左对齐的,并且没有大小,\textwidth
而且下一行之间没有空格
编辑: 定心工作正在进行中!
整个表格的大小不是\textwidth
,但应该是 。如何才能硬性设置列的大小?
诸如此类0.25\textwidth 0.25\textwidth 0.5\textwidth
,1.0\textwidth
整个区域也应该被桌子“填满”
编辑3: 问题解决了!
\usepackage[left=2.5cm,right=2.5cm,top=2.5cm,bottom=2.5cm]{geometry}
@Zarka 我忘了说了,我的序言里有
\begin{table}[H]
\begin{threeparttable}
\centering
\caption[Verfügbarkeitsklassen nach IEEE]{Verfügbarkeitsklassen nach IEEE}
\label{tab:verfuegbarkeitsklassen}
\begin{tabularx}{\linewidth}{%
C{0.15\textwidth}
S[table-format=2.5]
S[table-align-text-post = false,group-four-digits,table-format=5.1]
S[table-align-text-post = false,group-four-digits,table-format=7.1]
}
\toprule
\textbf{Klasse}
& \mcx{Ausfall in \%}
& \mcx{Ausfallzeit/Monat in s}
& \mcx{Ausfallzeit/Jahr in s} \\
\midrule
2 & 99,0 & 26280,0\tnote{1} & 315720,0\tnote{2} \\
3 & 99,9 & 2628,0 & 30420,0\tnote{3} \\
4 & 99,99 & 264,0 & 3141,6 \\
5 & 99,999 & 26,3 & 909,6 \\
6 & 99,9999 & 2,6 & 31,6 \\
\bottomrule
\end{tabularx}
\begin{tablenotes}
\item[1] entspricht \SI{438}{\minute} oder \SI{7.3}{\hour}
\item[2] entspricht \SI{87.7}{\hour} bzw.\ etwa \num{3.5} Tagen
\item[3] entspricht \SI{8.45}{\hour}
\end{tablenotes}
\end{threeparttable}
\end{table}
答案1
就目前情况而言,您的表格很难阅读。我可以建议:
% arara: pdflatex
\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{booktabs}
\usepackage{caption}
\usepackage{threeparttable}
\usepackage{tabularx}
\usepackage{siunitx}
\sisetup{locale=DE}
\usepackage{etoolbox}
\robustify\tnote
\usepackage{blindtext}
\begin{document}
\begin{table}
\centering
\begin{threeparttable}
\caption[Verfügbarkeitsklassen nach IEEE]{Verfügbarkeitsklassen nach IEEE}
\label{tab:verfuegbarkeitsklassen2}
\begin{tabularx}{\textwidth}{%
>{\centering\arraybackslash$}X<{$}
S[table-format=2.5]
S[table-align-text-post = false,group-four-digits,table-format=5.1]
S[table-format=7.1]
}
\toprule
\textbf{Kl.} & {\textbf{Ausfall in \%}} & {\textbf{Ausfallzeit/Monat (s)}} & \textbf{Ausfallzeit/Jahr (s)} \\
\midrule
2 & 99,0 & 26280,0\tnote{1} & 315720.0\tnote{2} \\
3 & 99,9 & 2628,0 & 30420.0\tnote{3} \\
4 & 99,99 & 264,0 & 3141.6 \\
5 & 99,999 & 26,3 & 909.6 \\
6 & 99,9999 & 2,6 & 31,6 \\
\bottomrule
\end{tabularx}
\begin{tablenotes}
\item[1] entspricht \SI{438}{\minute} oder \SI{7.3}{\hour}
\item[2] entspricht \SI{87.7}{\hour} bzw.\ etwa \num{3.5} Tagen
\item[3] entspricht \SI{8.45}{\hour}
\end{tablenotes}
\end{threeparttable}
\end{table}
\blindtext
\end{document}
答案2
作为对 nice 的补充拉里法里答案。我添加/更改了两件事:
- 添加包装
geometry
并将边距设置为 25 毫米 - 添加包
tabularx
并为表头定义\newcommand
哪些列类型使用修改后的X
列类型。
这两个测量表的宽度等于文本宽度:
\documentclass[11pt]{article}
\usepackage[showframe, % <-- to show page layout
margin=25mm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{booktabs, tabularx}
\newcommand\mcx[1]{\multicolumn{1}{>{\centering\arraybackslash}X}{\textbf{#1}}}
\usepackage{caption}
\usepackage{threeparttable}
\usepackage{siunitx}
\sisetup{locale=DE}
\usepackage{etoolbox}
\robustify\tnote
\begin{document}
\begin{threeparttable}
\centering
\caption[Verfügbarkeitsklassen nach IEEE]{Verfügbarkeitsklassen nach IEEE}
\label{tab:verfuegbarkeitsklassen2}
\begin{tabularx}{\linewidth}{%
c
S[table-format=2.5]
S[table-align-text-post = false,group-four-digits,table-format=5.1]
S[table-align-text-post = false,group-four-digits,table-format=7.1]
}
\toprule
\textbf{Klasse}
& \mcx{Ausfall in \%}
& \mcx{Ausfallzeit/Monat in s}
& \mcx{Ausfallzeit/Jahr in s} \\
\midrule
2 & 99,0 & 26280,0\tnote{1} & 315720,0\tnote{2} \\
3 & 99,9 & 2628,0 & 30420,0\tnote{3} \\
4 & 99,99 & 264,0 & 3141,6 \\
5 & 99,999 & 26,3 & 909,6 \\
6 & 99,9999 & 2,6 & 31,6 \\
\bottomrule
\end{tabularx}
\begin{tablenotes}
\item[1] entspricht \SI{438}{\minute} oder \SI{7.3}{\hour}
\item[2] entspricht \SI{87.7}{\hour} bzw.\ etwa \num{3.5} Tagen
\item[3] entspricht \SI{8.45}{\hour}
\end{tablenotes}
\end{threeparttable}
\end{document}
答案3
要获得宽度为的表格,\textwidth
您可以在 parbox 内的标题中插入文本,其中所有框的宽度之和等于\textwidth
\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{booktabs}
\usepackage{caption}
\usepackage[showframe]{geometry}
\usepackage{threeparttable}
\usepackage{siunitx}
\sisetup{locale=DE}
\usepackage{etoolbox}
\robustify\tnote
\begin{document}
\begin{threeparttable}
\centering
\caption[Verfügbarkeitsklassen nach IEEE]{Verfügbarkeitsklassen nach IEEE}
\label{tab:verfuegbarkeitsklassen2}
\begin{tabular}{%
@{}S[table-format=1.0]
@{}S[table-format=2.5]
@{}S[table-align-text-post = false,group-four-digits,table-format=5.1]
@{}S[table-format=7.1]@{}
}
\toprule
\parbox{.15\textwidth}{\centering\bfseries Klasse} &
\parbox{.2\textwidth} {\centering\bfseries Ausfall in \%} &
\parbox{.30\textwidth}{\centering\bfseries Ausfallzeit/Monat in s} &
\parbox{.35\textwidth}{\centering\bfseries Ausfallzeit/Jahr in s} \\
\midrule
2 & 99,0 & 26280,0\tnote{1} & 315720.0\tnote{2} \\
3 & 99,9 & 2628,0 & 30420.0\tnote{3} \\
4 & 99,99 & 264,0 & 3141.6 \\
5 & 99,999 & 26,3 & 909.6 \\
6 & 99,9999 & 2,6 & 31,6 \\
\bottomrule
\end{tabular}
\begin{tablenotes}
\item[1] entspricht \SI{438}{\minute} oder \SI{7.3}{\hour}
\item[2] entspricht \SI{87.7}{\hour} bzw.\ etwa \num{3.5} Tagen
\item[3] entspricht \SI{8.45}{\hour}
\end{tablenotes}
\end{threeparttable}
\end{document}
答案4
您不需要使用复杂的设置tabularx
:使用会更容易tabular*
,它可以在列之间添加空间。
\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{booktabs}
\usepackage{caption}
\usepackage{siunitx}
\sisetup{locale=DE}
\usepackage{lipsum}
\newcommand{\ts}[1]{\textsuperscript{#1}}
\begin{document}
\lipsum[2]
\begin{table}[htp]
\centering
\caption[Verfügbarkeitsklassen nach IEEE]{Verfügbarkeitsklassen nach IEEE}
\label{tab:verfuegbarkeitsklassen2}
\sisetup{
group-four-digits=true,
group-digits=integer,
}
\begin{tabular*}{\textwidth}{%
@{\extracolsep{\fill}\hspace{\tabcolsep}}
c
S[table-format=2.4]
S[table-space-text-post=\ts{1},table-format=5.1]
S[table-space-text-post=\ts{1},table-format=6.1]
}
\toprule
\textbf{Kl.} &
{\textbf{Ausfall}} &
{\textbf{Ausfallzeit/Monat}} &
{\textbf{Ausfallzeit/Jahr}} \\
& {(\%)} & {(\si{s})} & {(\si{s})} \\
\midrule
2 & 99,0 & 26280,0\ts{1} & 315720.0\ts{2} \\
3 & 99,9 & 2628,0 & 30420.0\ts{3} \\
4 & 99,99 & 264,0 & 3141.6 \\
5 & 99,999 & 26,3 & 909.6 \\
6 & 99,9999 & 2,6 & 31,6 \\
\midrule[\heavyrulewidth]
\multicolumn{4}{l}{\ts{1} entspricht \SI{438}{\minute} oder \SI{7.3}{\hour}}\\
\multicolumn{4}{l}{\ts{2} entspricht \SI{87.7}{\hour} bzw.\ etwa \num{3.5} Tagen}\\
\multicolumn{4}{l}{\ts{3} entspricht \SI{8.45}{\hour}}
\end{tabular*}
\end{table}
\lipsum[3]
\end{document}