
答え1
最初の表には、主に 2 つの課題があると思います。
テキスト ブロック内に収めるにはどうすればよいですか? 基本的な
tabular
環境では、この 17 列のテーブルが実際に収まるかどうかは保証されません。ヘッダー行 ("プロセス ID...") をどのようにタイプセットしますか?
tabular*
これらの課題に対処するには、以下のコードのように、(a)幅が に設定されている環境\textwidth
と (b)ディレクティブを使用することをお勧めします\multicolumn
。ちなみに、数字は左揃えではなく右揃えにします。
3つ目の課題は、表形式の資料全体を明るい灰色の背景でレンダリングする方法です。以下のコードでは、この答えこの課題に対処するために。
2 番目の表に関して、数値素材を中括弧で囲まれた (数学的な) マトリックスとして設定するのは正しくないと思います。それよりはるかに重要なのは、ヘッダー セルを対応する列に揃えることです。また、読みやすさのために、数字をそれぞれの小数点に揃えることも重要です。したがって、4 つの「実際の」データ列には、パッケージの列タイプtabular
とともに環境を使用します。S
siunitx
\documentclass{article}
\usepackage{booktabs,siunitx,xcolor}
\definecolor{lightgray}{gray}{0.85} % define a suitable version of "light gray"
\newcommand\mytab[1]{\smash{%
\begin{tabular}[t]{@{}c@{}}#1\end{tabular}}}
\begin{document}
\noindent
\begingroup % localize scope of next two instructions
\setlength\tabcolsep{0pt} % make LaTeX figure out inter-column whitespace
\setlength\fboxsep{0pt} % see https://tex.stackexchange.com/a/63897/5001
\colorbox{lightgray}{%
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} *{17}{r}}
\toprule
\multicolumn{6}{@{}l}{Process ID: 3939}\\[0.5ex]
105 & 104& 104& 106& 105& 104& 104& 106& 105& 104& 104& 106& 5& 4& 5& 5 &0 \\
40 & 41 & \dots \\
3 & 3 & \dots \\
3 & 12 & \dots \\
\bottomrule
\end{tabular*}}
\endgroup
\bigskip
\begin{center}
\begin{tabular}{@{}c *{2}{S[table-format=1.3]}
c *{2}{S[table-format=1.3]} @{}}
\toprule
\mytab{Distinct\\System Call} &
\multicolumn{5}{c}{Trace} \\
\cmidrule(l){2-6}
& {1} & {2} & & {$m-1$} & {$m$} \\
\midrule
1 & 0.051 & 0.055 & \dots & 0.049 & 0.051 \\
2 & 0.122 & 0.125 & \dots & \\
&{\vdots}&{\vdots}&{\vdots}& \\
155& 0.101 & 0.1 & \dots & \\
167& 0.03 & 0.03 & \dots & 0.02 & 0.03 \\
\bottomrule
\end{tabular}
\end{center}
\end{document}