高度可调的水平线,行为类似 \cline{nm}

高度可调的水平线,行为类似 \cline{nm}

我怎样才能\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}

答案3

使用包装 ,您可以重新定义和colortbl的厚度。\hline\cline

下面的例子改编自手册第 6 页colortbl

\documentclass{book}
\usepackage{colortbl}        
\begin{document}
\setlength\arrayrulewidth{2pt}\arrayrulecolor{blue}

  \begin{tabular}{cc}
      \hline
          one   & two\\
          three & four\\
      \cline{1-1}
  \end{tabular}

\end{document}

在此处输入图片描述

相关内容