我的问题是关于某张桌子的美观度,因此仅代表个人观点,可能会被关闭。我想知道下表的最佳呈现方式是什么:
\documentclass[]{article}
\usepackage{fullpage}
\usepackage{booktabs}
\begin{document}
\begin{table}[ht]
\belowcaptionskip1ex
\caption{Οι αρχικές τιμές της συνάρτησης $\mu$}
\centering
\begin{tabular}{
c r r r r r r r r r r r r r r r r r r
%S[table-format= 1.0]
}
\toprule
$n$ & $1$ & $2$ & $3$ & $4$ & $5$ & $6$ & $7$ & $8$ & $9$ & $10$
& $11$ & $12$ & $13$ & $14$ & $15$ & $16$ & $17$ & $18$
\\
\midrule
$\mu(n)$ & $1$ & $-1$ & $-1$ & $0$ & $-1$ & $1$ & $-1$ & $0$ & $0$ & $1$
& $-1$ & $0$ & $-1$ & $1$ & $1$ & $0$ & $-1$ & $0$ \\
\bottomrule
\end{tabular}
\label{Table:MobiusFunction}
\end{table}
\end{document}
我将非常感激您提出的任何想法。
答案1
对于如此宽的表格,我会使用 使其尽可能宽tabular*
。可以使用 为第一列旁边的列指定相同的宽度w{c}{1em}
。我添加了无意义的单词以在上下文中显示表格。
这利用了最后一列没有减号的事实,否则公共宽度应该会稍微长一点。您可以使用多种方法来测量宽度,以备不时之需。
中间规则已经变得非常薄。我也做了\belowcaptionskip
修改每一个表,并\abovecaptionskip
设置为零。
\documentclass[]{article}
\usepackage[greek]{babel}
\usepackage{fullpage}
\usepackage{booktabs,array}
\AddToHook{env/table/begin}{%
\setlength{\belowcaptionskip}{\medskipamount}%
\setlength{\abovecaptionskip}{0pt}%
}
\begin{document}
Οι αρχικές τιμές της συνάρτησης $\mu$
Οι αρχικές τιμές της συνάρτησης $\mu$
Οι αρχικές τιμές της συνάρτησης $\mu$
Οι αρχικές τιμές της συνάρτησης $\mu$
Οι αρχικές τιμές της συνάρτησης $\mu$
Οι αρχικές τιμές της συνάρτησης $\mu$
Οι αρχικές τιμές της συνάρτησης $\mu$
Οι αρχικές τιμές της συνάρτησης $\mu$
Οι αρχικές τιμές της συνάρτησης $\mu$
\begin{table}[htp] % <-- don't forget p
\centering
\caption{Οι αρχικές τιμές της συνάρτησης $\mu$}
\label{Table:MobiusFunction}
% a local assignment to get easier input
\newcolumntype{C}{>{$}w{c}{1em}<{$}}
% remove the intercolumn spaces
\setlength{\tabcolsep}{0pt}
\begin{tabular*}{\textwidth}{
@{\extracolsep{\fill}}
>{$}c<{$}
*{18}{C}
@{}
}
\toprule
n & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10
& 11 & 12 & 13 & 14 & 15 & 16 & 17 & 18
\\
\midrule[0.1pt]
\mu(n) & 1 & -1 & -1 & 0 & -1 & 1 & -1 & 0 & 0 & 1
& -1 & 0 & -1 & 1 & 1 & 0 & -1 & 0 \\
\bottomrule
\end{tabular*}
\end{table}
Οι αρχικές τιμές της συνάρτησης $\mu$
Οι αρχικές τιμές της συνάρτησης $\mu$
Οι αρχικές τιμές της συνάρτησης $\mu$
Οι αρχικές τιμές της συνάρτησης $\mu$
Οι αρχικές τιμές της συνάρτησης $\mu$
Οι αρχικές τιμές της συνάρτησης $\mu$
Οι αρχικές τιμές της συνάρτησης $\mu$
Οι αρχικές τιμές της συνάρτησης $\mu$
Οι αρχικές τιμές της συνάρτησης $\mu$
\end{document}
答案2
我会使用一个tabularx
包来确保 18 个数字列都具有完全相同的宽度,而不管上行数字的位数或第二行中是否存在减号。
为了简化和优化视觉呈现,我还会省略和\toprule
。\bottomrule
\documentclass{article}
\usepackage[greek]{babel} % optional
\usepackage{fontspec}
\setmainfont{CMU Serif} % choose a font that features the requisite glyphs
\usepackage{fullpage,booktabs}
\usepackage{tabularx}
\newcolumntype{R}{>{\raggedleft\arraybackslash$}X<{$}}
\begin{document}
\begin{table}[ht]
\belowcaptionskip1ex
\caption{Οι αρχικές τιμές της συνάρτησης $\mu$}
\begin{tabularx}{\textwidth}{@{} l r *{17}{R} @{}}
%\toprule
$n$ & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 & 16 & 17 & 18
\\
\midrule
$\mu(n)$ & 1 & -1 & -1 & 0 & -1 & 1 & -1 & 0 & 0 & 1 & -1 & 0 & -1 & 1 & 1 & 0 & -1 & 0 \\
%\bottomrule
\end{tabularx}
\label{Table:MobiusFunction}
\end{table}
\end{document}
答案3
为了简化代码,可以使用array
或一些替代方法。siunitx
(红线表示文本块/边距)
\documentclass[]{article}
\usepackage{booktabs}
\usepackage{fullpage}
\usepackage{array}
\usepackage{siunitx}
\begin{document}
\begin{table}[ht]
\belowcaptionskip1ex
\caption{Caption text}
\centering
\[\begin{array}{l *{18}{wr{3ex}} }
\toprule
n & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 & 16 & 17 & 18 \\ \midrule
\mu(n) & 1 & -1 & -1 & 0 & -1 & 1 & -1 & 0 & 0 & 1 & -1 & 0 & -1 & 1 & 1 & 0 & -1 & 0 \\ \bottomrule
\end{array}\]
\label{Table:MobiusFunction}
\end{table}
\begin{table}[ht]
\belowcaptionskip1ex
\caption{Caption text}
\centering
\setlength{\tabcolsep}{4pt}
\begin{tabular}{@{}>{$}l<{$} *{18}{S[table-format=-1]}@{}}
\toprule
n & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 & 16 & 17 & 18 \\ \midrule
\mu(n) & 1 & -1 & -1 & 0 & -1 & 1 & -1 & 0 & 0 & 1 & -1 & 0 & -1 & 1 & 1 & 0 & -1 & 0 \\ \bottomrule
\end{tabular}
\label{Table:MobiusFunction}
\end{table}
\begin{table}[ht]
\belowcaptionskip1ex
\caption{Caption text}
\centering
\setlength{\tabcolsep}{0pt}
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}>{$}l<{$} *{18}{S[table-format=-1]} }
\toprule
n & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 & 16 & 17 & 18 \\ \midrule
\mu(n) & 1 & -1 & -1 & 0 & -1 & 1 & -1 & 0 & 0 & 1 & -1 & 0 & -1 & 1 & 1 & 0 & -1 & 0 \\ \bottomrule
\end{tabular*}
\label{Table:MobiusFunction}
\end{table}
\begin{table}[ht]
\belowcaptionskip1ex
\caption{Caption text}
\[\begin{array}{l *{9}{r} }
\toprule
n & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 \\ \midrule
\mu(n) & 1 & -1 & -1 & 0 & -1 & 1 & -1 & 0 & 0 \\ \bottomrule \addlinespace \toprule
n & 10 & 11 & 12 & 13 & 14 & 15 & 16 & 17 & 18 \\ \midrule
\mu(n) & 1 & -1 & 0 & -1 & 1 & 1 & 0 & -1 & 0 \\ \bottomrule
\end{array}\]
\label{Table:MobiusFunction}
\end{table}
\end{document}
答案4
绝对不是在争夺“最佳”,但表格的三值性质表明,一条线,或者在这种情况下,一个面积图可能会缓解对数据的视觉感知:
也许一种更微妙的方法,只会将水平线向上或向下延伸,而不会完全破坏表格结构......
\documentclass[]{article}
\usepackage[greek]{babel}
\usepackage{fullpage}
\usepackage{array}
\usepackage{tabularx}
\usepackage[table]{xcolor}
\newcommand{\h}{\cellcolor{black}\color{white}}
\newcolumntype{R}{>{\raggedleft\arraybackslash$}X<{$}}
\begin{document}
\begin{table}[htp]
\centering
\caption{Οι αρχικές τιμές της συνάρτησης $\mu$}
\label{tab:moebius}
\begin{tabularx}{\textwidth}{@{} l *{18}{R} @{}}
$n$ &
\h 1 & 2 & 3 & 4 & 5 &
\h 6 & 7 & 8 & 9 &
\h 10 & 11 & 12 & 13 &
\h 14 &
\h 15 & 16 & 17 & 18 \\
\hline
$\mu(n)$ & 1 &
\h -1 &
\h -1 & 0 &
\h -1 & 1 &
\h -1 & 0 & 0 & 1 &
\h -1 & 0 &
\h -1 & 1 & 1 & 0 &
\h -1 & 0 \\
\end{tabularx}
\end{table}
\end{document}
第二次迭代
框架挑战:这个两行表格的最佳呈现方式可能是三行:
\documentclass[]{article}
\usepackage[greek]{babel}
\usepackage{fullpage}
\usepackage{array}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage[table]{xcolor}
\newcommand{\h}{\cellcolor{black!10}}
\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}
\begin{document}
\begin{table}[htp]
\centering
\caption{Οι αρχικές τιμές της συνάρτησης $\mu$}
\label{tab:moebius}
\begin{tabular}{l *{18}{P{1em}}} \toprule
$\mu(n) = \phantom{-{}} 1$ & \h 1 & & & & & \h6 & & & & \h10 & & & & \h14 & \h15 & & & \\
$\mu(n) = \phantom{-{}} 0 ~$ & & & & \h4 & & & & \h8 & \h9 & & & \h12 & & & & \h16 & & \h18 \\
$\mu(n) =-1$ & & \h 2 & \h3 & & \h5 & & \h7 & & & & \h 11 & & \h 13 & & & & \h 17 & \\
\bottomrule
\end{tabular}
\end{table}
\end{document}