次のコードがあります:
\documentclass{article}
\usepackage{multirow}
\usepackage{geometry}
\geometry{
a3paper,
total={170mm,300mm},
left=20mm,
top=20mm,
}
\begin{document}
\begin{center}
\begin{tabular}{ |p{3cm}||p{3cm}|p{3cm}|p{3cm}|p{3cm}|p{3cm}|p{3cm}| }
\hline
\multicolumn{7}{|c|}{Frequency/f, Hz $\pm 0.001$} \\
\hline
Mass,m /Kg& Trial 1 & Trial 2 & Trial 3 & Trial 4 & Trial 5 & Average \\
\hline
0.050 & 16.200 & 16.630 & 16.560 & 16.840 & 16.550 & 16.556 \\
\hline
0.100 & 23.650 & 22.800 & 22.810 & 22.970 & 22.700 & 22.986 \\
\hline
0.150 & 28.060 & 27.650 & 27.600 & 27.470 & 27.440 & 26.644 \\
\hline
0.200 & 34.300 & 32.030 & 32.340 & 32.380 & 32.030 & 32.616 \\
\hline
0.250 & 35.500 & 35.480 & 35.420 & 35.520 & 35.350 & 35.454 \\
\hline
0.300 & 38.780 & 38.820 & 38.580 & 39.000 & 38.790 & 38.794 \\
\hline
0.350 & 41.800 & 42.050 & 41.750 & 41.980 & 41.950 & 41.906 \\
\hline
0.400 & 44.400 & 44.760 & 44.670 & 45.020 & 44.900 & 44.750 \\
\hline
0.450 & 47.450 & 47.550 & 47.520 & 47.500 & 47.650 & 47.534 \\
\hline
0.500 & 50.350 & 50.190 & 49.840 & 50.170 & 49.900 & 50.090 \\
\hline
\end{tabular}
\end{center}
\end{document}
出力は次のようになります:
しかし、私はこれを次のようにしたいのです:
現在、A3 文書で作業していますが、これは研究論文用なので A4 形式で提出する必要があります。しかし、ページの最後が切れてしまいます。
私の質問は2つあります:
上の画像のテーブルを作成するにはどうすればよいですか?
A4 文書に収まるようにフォーマットするにはどうすればよいでしょうか?
答え1
2 つの主な修正方法を採用することをお勧めします。まず、列 1 から 6 までのすべての数字の最後の桁 ( ) を削除します。0
次に、すべての垂直線とほとんどの水平線を省略して、表をよりオープンな外観にします。最初の作業は、パッケージの仕組みsiunitx
と列の種類の助けを借りて簡単に実行できます。2 番目の作業は、booktabs パッケージの線描画マクロ ( やなど)S
を採用することで簡単になります。\toprule
\bottomrule
次のスクリーンショットの端にあるフレーム ラインは、geometry
パッケージがオプションでロードされているため描画されていますshowframe
。テーブルが A4 用紙のテキスト ブロックの幅に簡単に収まるようになったことに注目してください。
\documentclass{article}
\usepackage{geometry}
\geometry{a4paper, % note: 'a4paper', not 'a3paper'
showframe, % omit 'showframe' option in real document
%total={170mm,300mm},
%left=20mm, top=20mm,
margin=20mm
}
\usepackage{siunitx,booktabs}
\newcolumntype{T}[1]{S[table-format=#1]}
\begin{document}
\null
\begin{center}
\sisetup{round-mode=places,round-precision=2} % <-- default: rounding to 2 decimal digits
\begin{tabular}{ @{}
T{1.2}
*{5}{T{2.2}}
% increase # of decimal digits to 3:
S[table-format=2.3,round-precision=3]
S[table-format=1.3,round-precision=3] @{}}
\toprule
{Mass/ $m$, \unit{\kilo\gram}} &
\multicolumn{6}{c}{Frequency/ $f$, \unit{\hertz} $\pm 0.001$} &
{Tension} \\
\cmidrule(lr){2-7}
& {Trial 1} & {Trial 2} & {Trial 3} & {Trial 4} & {Trial 5} & {Average} \\
\midrule
0.050 & 16.200 & 16.630 & 16.560 & 16.840 & 16.550 & 16.556 & 0.491 \\
0.100 & 23.650 & 22.800 & 22.810 & 22.970 & 22.700 & 22.986 & 0.981 \\
0.150 & 28.060 & 27.650 & 27.600 & 27.470 & 27.440 & 26.644 & \dots \\
0.200 & 34.300 & 32.030 & 32.340 & 32.380 & 32.030 & 32.616 & \dots \\
0.250 & 35.500 & 35.480 & 35.420 & 35.520 & 35.350 & 35.454 & \dots \\
\addlinespace
0.300 & 38.780 & 38.820 & 38.580 & 39.000 & 38.790 & 38.794 & \dots \\
0.350 & 41.800 & 42.050 & 41.750 & 41.980 & 41.950 & 41.906 & \dots \\
0.400 & 44.400 & 44.760 & 44.670 & 45.020 & 44.900 & 44.750 & \dots \\
0.450 & 47.450 & 47.550 & 47.520 & 47.500 & 47.650 & 47.534 & \dots \\
0.500 & 50.350 & 50.190 & 49.840 & 50.170 & 49.900 & 50.090 & \dots \\
\bottomrule
\end{tabular}
\end{center}
\end{document}
答え2
行間に垂直方向のスペースを追加しました( を変更して\arraystretch
)。
テキストを少し変更させていただくことにしました (質量はm
変数なので斜体で、単位は括弧で囲みます)。
デフォルトでは、\multirow
幅が指定されている場合、セルは左揃えになります (幅の代わりに を入力すると、*
列は複数行に指定されたテキストの自然な幅を使用しますが、ここでは自然な幅が大きすぎます)。したがって、テキストを中央揃えにするには、\multirowsetup
で再定義します\renewcommand
。
\documentclass[a4paper]{article}
\usepackage{multirow}
\renewcommand{\arraystretch}{1.2}
\renewcommand{\multirowsetup}{\centering}
\begin{document}
\begin{center}
\begin{tabular}{|c|c|c|c|c|c|c|c|}
\hline
\multirow{2}{1.2cm}{Mass $m$ (kg)} & \multicolumn{6}{|c|}{Frequency $f$ (Hz) $\pm 0.001$} & \multirow{2}{*}{Tension} \\
\cline{2-7}
& Trial 1 & Trial 2 & Trial 3 & Trial 4 & Trial 5 & Average & \\
\hline
0.050 & 16.200 & 16.630 & 16.560 & 16.840 & 16.550 & 16.556 & 0.491\\
\hline
0.100 & 23.650 & 22.800 & 22.810 & 22.970 & 22.700 & 22.986 & 0.981 \\
\hline
0.150 & 28.060 & 27.650 & 27.600 & 27.470 & 27.440 & 26.644 & 1.472\\
\hline
0.200 & 34.300 & 32.030 & 32.340 & 32.380 & 32.030 & 32.616 & 1.962\\
\hline
0.250 & 35.500 & 35.480 & 35.420 & 35.520 & 35.350 & 35.454 & 2.453 \\
\hline
0.300 & 38.780 & 38.820 & 38.580 & 39.000 & 38.790 & 38.794 & 2.943\\
\hline
0.350 & 41.800 & 42.050 & 41.750 & 41.980 & 41.950 & 41.906 & 3.434\\
\hline
0.400 & 44.400 & 44.760 & 44.670 & 45.020 & 44.900 & 44.750 & 3.924\\
\hline
0.450 & 47.450 & 47.550 & 47.520 & 47.500 & 47.650 & 47.534 & 4.415 \\
\hline
0.500 & 50.350 & 50.190 & 49.840 & 50.170 & 49.900 & 50.090 & 4.905 \\
\hline
\end{tabular}
\end{center}
\end{document}
答え3
- あなたのMWEは最後の列にデータを提供していないので、2つの書き込みコンテンツを残しておきます
- 数値の場合は、パッケージ
S
で定義された列タイプ(ライブラリとしてロード)を使用することをお勧めします。siunitx
tabularray
- パッケージ テーブルを使用すると、
tabularray
コードは短くシンプルになります。
\documentclass{article}
\usepackage[a4paper]{geometry} % <---
\usepackage{tabularray}
\UseTblrLibrary{siunitx}
\begin{document}
\begin{center}
\begin{tblr}{hlines, vlines,
colspec = { Q[c,si={table-format=1.3}]
*{6}{X[c,si={table-format=2.3}]}
X[c,si={table-format=1.3}]
},
row{1,2} = {guard}
}
\SetCell[r=2]{f} Mass, $m$ (kg)
& \SetCell[c=6]{c} Frequency, $f$ (Hz) $\pm 0.001$
& & & & & & \SetCell[r=2]{f} Tension \\
& Trial 1 & Trial 2 & Trial 3 & Trial 4 & Trial 5 & Average & \\
0.050 & 16.200 & 16.630 & 16.560 & 16.840 & 16.550 & 16.556 & 0.491 \\
0.100 & 23.650 & 22.800 & 22.810 & 22.970 & 22.700 & 22.986 & \\
0.150 & 28.060 & 27.650 & 27.600 & 27.470 & 27.440 & 26.644 & \\
0.200 & 34.300 & 32.030 & 32.340 & 32.380 & 32.030 & 32.616 & \\
0.250 & 35.500 & 35.480 & 35.420 & 35.520 & 35.350 & 35.454 & \\
0.300 & 38.780 & 38.820 & 38.580 & 39.000 & 38.790 & 38.794 & \\
0.350 & 41.800 & 42.050 & 41.750 & 41.980 & 41.950 & 41.906 & \\
0.400 & 44.400 & 44.760 & 44.670 & 45.020 & 44.900 & 44.750 & \\
0.450 & 47.450 & 47.550 & 47.520 & 47.500 & 47.650 & 47.534 & \\
0.500 & 50.350 & 50.190 & 49.840 & 50.170 & 49.900 & 50.090 & 4.905 \\
\end{tblr}
\end{center}
\end{document}