我有一张要绘制表格的代码。这几乎就是我想要的。我请求对其进行三处修改。
我想要绘制垂直线,形成表格的左边缘和右边缘。这些线与标题上方的水平线和表格最后一行后面的水平线一起应形成一个矩形。
有两条垂直线将三列分隔开。我希望将第一列与其他两列分隔开的垂直线比将第二列和第三列分隔开的垂直线以及形成表格左右边缘的垂直线粗 1.5 倍。(在提供的代码中,两条彼此靠近的平行线将第一列和第二列分隔开。)
数据(一定百分比)应该在行中水平居中。
\documentclass{amsart}
\usepackage{array}
\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\begin{document}
\begin{center}
\begin{tabular}{l||r|r}
\hline
\multicolumn{3}{c}{\textbf{---Title is Lengthy --- Here is First Line}}\\
\multicolumn{3}{c}{\textbf{Here is Second Line}} \\ \hline\hline
\textbf{Class}&\multicolumn{1}{C{1.5in}|}{\textbf{Percent Present in Habitat A}}&\multicolumn{1}{C{1.75in}}{\textbf{Percent Present in Habitat B}}\\\hline
\textbf{Mammals} & & \\
\hspace*{1em}Dog & 20\% & 5\% \\
\hspace*{1em}Cow & 10\% & 7\% \\ \hline
\textbf{Bird} & & \\
\hspace*{1em}Peacock & 15\% & 25\% \\ \hline
\hspace*{1em}Turkey & 25\% & 40\% \\ \hline
\textbf{Animals} & \textbf{3\%} & \textbf{5\%} \\
\hline
\end{tabular}
\end{center}
\end{document}
答案1
对于更粗的垂直线,您可以使用表格序言中的boldline
语法来执行您想要的操作,V{num}
以获得厚度为 num 乘以 \arrayrulewidth 的垂直规则。
除此之外,我稍微简化了代码,并提出了两种变体——第二种是使用命令\thead
from makecell
,它允许在标准列内换行并采用通用格式。此外,的内容\thead
默认居中,垂直和水平方向均居中。
\documentclass{amsart}
\usepackage{array}
\usepackage{boldline}\usepackage{makecell}
\renewcommand{\theadfont} {\normalsize\bfseries}
\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}}
\setlength{\extrarowheight}{3pt}
\begin{document}
\begin{center}
\begin{tabular}{|lV{1.5}c|c|}
\hline
\multicolumn{3}{|c|}{\textbf{---Title is Lengthy --- Here is First Line}}\\
\multicolumn{3}{|c|}{\textbf{Here is Second Line}} \\ \hline\hline
\textbf{Class}&\multicolumn{1}{C{1.5in}|}{\textbf{Percent Present in Habitat A}}&\multicolumn{1}{C{1.75in}|}{\textbf{Percent Present in Habitat B}}\\\hline
\textbf{Mammals} & & \\
\quad Dog & 20\% & 5\% \\
\quad Cow & 10\% & 7\% \\ \hline
\textbf{Bird} & & \\
\quad Peacock & 15\% & 25\% \\ \hline
\quad Turkey & 25\% & 40\% \\ \hline
\textbf{Animals} & \textbf{3\%} & \textbf{5\%} \\
\hline
\end{tabular}
\end{center}
\vskip 1cm
\begin{center}
\begin{tabular}{|lV{1.5}c|c|}
\hline
\multicolumn{3}{|c|}{\thead{---Title is Lengthy --- Here is First Line\\ Here is Second Line}} \\ \hline\hline
\textbf{Class}&\thead{Percent Present in \\ Habitat A} &\thead{Percent Present in \\ Habitat B}\\\hline
\textbf{Mammals} & & \\
\quad Dog & 20\% & 5\% \\
\quad Cow & 10\% & 7\% \\ \hline
\textbf{Bird} & & \\
\quad Peacock & 15\% & 25\% \\ \hline
\quad Turkey & 25\% & 40\% \\ \hline
\textbf{Animals} & \textbf{3\%} & \textbf{5\%} \\
\hline
\end{tabular}
\end{center}
\end{document}
要获得无框标题,以及标题和第一条水平线之间更大的垂直间距,您可以使用以下代码:
\begin{tabular}{|lV{1.5}c|c|}
\multicolumn{3}{c}{\thead{---Title is Lengthy --- Here is First Line\\ Here is Second Line}} \\
\noalign{\vspace{2ex}}\hline
\textbf{Class}&\thead{Percent Present in \\ Habitat A} & \thead{Percent Present in \\ Habitat B}\\ \hline
\textbf{Mammals} & & \\
\quad Dog & 20\% & 5\% \\
\quad Cow & 10\% & 7\% \\ \hline
\textbf{Bird} & & \\
\quad Peacock & 15\% & 25\% \\ \hline
\quad Turkey & 25\% & 40\% \\ \hline
\textbf{Animals} & \textbf{3\%} & \textbf{5\%} \\
\hline
\end{tabular}