我怎样才能\noalign{\hrule height 1pt}
像使用一样仅通过一定数量的列进行生产\cline{n-m}
(或基本上\cline
具有可调厚度)?
图。1:近似目标(在图形编辑程序中进行数字化操作)。
答案1
您可以定义一个新命令来改变的值\arrayrulewidth
,绘制\cline
然后恢复\arrayrulewidth
到其原始值:
\documentclass{book}
\newlength{\Oldarrayrulewidth}
\newcommand{\Cline}[2]{%
\noalign{\global\setlength{\Oldarrayrulewidth}{\arrayrulewidth}}%
\noalign{\global\setlength{\arrayrulewidth}{#1}}\cline{#2}%
\noalign{\global\setlength{\arrayrulewidth}{\Oldarrayrulewidth}}}
\begin{document}
\begin{tabular}{ccc}
a & b & c \\\Cline{2pt}{2-3}
d & e & f \\\Cline{3pt}{1-2}
\end{tabular}
\end{document}
第一个参数\Cline
控制规则的“厚度”。
编辑:\cmidrule
该包提供的命令booktabs
允许一个可选参数来控制规则的厚度,因此您可以说:
\documentclass{book}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{ccc}
a & b & c \\ \cmidrule[2pt]{2-3}
d & e & f \\ \cmidrule[3pt]{1-2}
\end{tabular}
\end{document}
答案2
您可以看看禁忌包。它支持表格中规则宽度的可选参数。
\documentclass[11pt,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage{multirow,tabu}
\usepackage{graphicx}
\newcommand*{\rb}[1]{\raisebox{2ex}{\smash{#1}}}
\setlength{\extrarowsep}{10pt}
\begin{document}
\scriptsize
\noindent
\begin{tabu} to \textwidth {|[1pt] c|[1pt] c|[1pt] p{4cm} | X |[1pt]}\tabucline[1pt]{-}
\multirow{4}{*}[-5ex]{\rotatebox{90}{Ten}} & \multirow{2}{*}[-2ex]{\rotatebox{90}{Eight}} & \rb{One} & \rb{Two} \\ \tabucline{3-4}
& & \rb{Three} & \rb{Four} \\[2ex] \tabucline[1pt]{2-4}
& \multirow{2}{*}[-2ex]{\rotatebox{90}{Nine}} & \rb{Five} & \rb{Six} \\ \tabucline{3-4}
& &\multicolumn{2}{l|[1pt]}{\rb{Seven}} \\[4ex] \tabucline[1pt]{-}
\end{tabu}
\end{document}