我有一张包含两列的表格。由于条目都是个位数的整数,我希望列的宽度刚好足以容纳条目。使用我的代码,标题会使列太宽。
另外,我想将标题排版为两行。如何将“特定函数”放在第一行,将“f 的值”放在第二行?
\documentclass{amsart}
\usepackage{adjustbox}
\usepackage{mathtools}
\usepackage{makecell}
\usepackage{array}
\begin{document}
\noindent \hspace*{\fill}
\setlength\extrarowheight{2pt}
\begin{tabular}{|| c | c ||} \hline
\multicolumn{2}{|| c ||}{{\bf Certain Function Values of \boldmath$f$\unboldmath}} \\ \Xhline{0.8pt}
$x$ & $f(x)$ \\ \Xhline{0.8pt}
2 & -1 \\ \hline
3 & 0 \\ \hline
4 & 2 \\ \hline
5 & -3 \\ \hline
6 & 4 \\ \hline
7 & -5 \\ \hline
8 & 6 \\ \hline
\end{tabular}
\end{document}
答案1
在将顶行保留为 的一部分的同时满足 OP 的限制是很困难的,因此我在这里使用我的包tabular
将标题堆叠在 上方(tabular
stackengine
http://ctan.org/pkg/stackengine)。
该\stackon{A}{B}
语法将“A”放置在相对于基线的正常位置,而“B”放置在“A”上方。默认情况下,“A”顶部和“B”底部之间的间隙为 3pt,但可选参数可以更改该长度。此外,默认对齐方式为居中,但也可以通过设置模式参数进行更改。该包提供了其他命令,例如\stackunder{A}{B}
将“B”放置在正常位置的“A”下方。我还使用了一个,\Longstack{}
其中一系列由行尾 (EOL) 分隔符分隔的对象堆叠在一起,每行之间有恒定的基线跳跃间隔。
我还将破折号改为减号。
\documentclass{amsart}
\usepackage{adjustbox}
\usepackage{mathtools}
\usepackage{makecell}
\usepackage{array}
\usepackage{stackengine}\setstackEOL{\cr}
\begin{document}
\noindent \hspace*{\fill}
\setlength\extrarowheight{2pt}
\stackon{%
\begin{tabular}{|| c | c ||} \hline
$x$ & $f(x)$ \\ \Xhline{0.8pt}
2 & $-$1 \\ \hline
3 & 0 \\ \hline
4 & 2 \\ \hline
5 & $-$3 \\ \hline
6 & 4 \\ \hline
7 & $-$5 \\ \hline
8 & 6 \\ \hline
\end{tabular}%
}{\bfseries\Longstack{Certain Function\cr Values of \boldmath$f$}}
\end{document}
答案2
这是一个明显的例子,说明如何不构建表格,对不起。侧面的双垂直线毫无用处,标题下方的粗线也毫无用处。
如果您确实希望将标题全部放在一行上,那么几乎没什么可做的;一种可能性是使用嵌套表:
\documentclass{amsart}
\usepackage{siunitx,booktabs}
\begin{document}
\begin{tabular}{c}
\toprule
\bfseries\boldmath Certain Function Values of $f$ \\
\midrule
\begin{tabular}{S[table-format=1.0] S[table-format=-1.0]}
{$x$} & {$f(x)$} \\
\midrule
2 & -1 \\
3 & 0 \\
4 & 2 \\
5 & -3 \\
6 & 4 \\
7 & -5 \\
8 & 6
\end{tabular}\\
\bottomrule
\end{tabular}
\end{document}
另一种可能性是将标题分成两行,在两侧添加两个模拟列:
\documentclass{amsart}
\usepackage{siunitx,booktabs}
\begin{document}
\begin{tabular}{cS[table-format=1.0] S[table-format=-1.0]c}
\toprule
\multicolumn{4}{c}{\bfseries Certain Function} \\
\multicolumn{4}{c}{\bfseries\boldmath Values of $f$} \\
\midrule
\hspace*{2em} & {$x$} & {$f(x)$} & \hspace*{2em} \\
\midrule
& 2 & -1 \\
& 3 & 0 \\
& 4 & 2 \\
& 5 & -3 \\
& 6 & 4 \\
& 7 & -5 \\
& 8 & 6 \\
\bottomrule
\end{tabular}
\end{document}
或者简单地使用浮动表:
\documentclass{amsart}
\usepackage{siunitx,booktabs}
\begin{document}
\begin{table}
\centering
\caption{Certain Function Values of $f$}
\begin{tabular}{S[table-format=1.0] S[table-format=-1.0]}
\toprule
{$x$} & {$f(x)$} \\
\midrule
2 & -1 \\
3 & 0 \\
4 & 2 \\
5 & -3 \\
6 & 4 \\
7 & -5 \\
8 & 6 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}