如何修剪带有垂直线的表格中的水平线末端?

如何修剪带有垂直线的表格中的水平线末端?

如何获得这样的东西?

在此处输入图片描述

我发现修剪表格中水平线的唯一方法是使用书形标签。书形标签的问题在于它不能很好地管理垂直线。

我尝试了这个代码:

\documentclass{article} 
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{xcolor}
\usepackage{colortbl}
\usepackage{booktabs}

\begin{document}

\arrayrulecolor{gray}
\begin{tabular}{!{\color{gray}\vline}ll!{\color{gray}\vline}}
  a & b \\
  c & d \\
  \cmidrule(rl){1-2}
  e & f
\end{tabular}

\end{document}

但是我得到的是以下输出,这不是我想要的: 在此处输入图片描述

答案1

在此处输入图片描述

\documentclass{article} 
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{xcolor}
\usepackage{colortbl}


\begin{document}

\arrayrulecolor{red}
\begin{tabular}{|ll|}
  a & b \\
  c & d \\
\multispan{2}{\color{red}\vline\hspace*{.5em}\leaders \hrule height\arrayrulewidth\hskip\fill\hspace*{.5em}\vline}\\
  e & f
\end{tabular}

\end{document}

答案2

scalerel以下是使用 宏的一种方法\stretchleftright

\documentclass{article} 
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{xcolor}
\usepackage{booktabs}
\usepackage{colortbl}
\usepackage{scalerel}
\begin{document}
\arrayrulecolor{gray}
\stretchleftright{\color{gray}|}{%
\begin{tabular}{ll}
  a & b \\
  c & d \\
  \cmidrule(rl){1-2}
  e & f
\end{tabular}%
}{\color{gray}|}
\end{document}

在此处输入图片描述

答案3

使用,您可以直接获得预期的输出,因为在该环境中,垂直规则永远不会被破坏{NiceTabular}nicematrix

\documentclass{article} 
\usepackage{xcolor}
\usepackage{nicematrix}
\usepackage{booktabs}

\begin{document}

\begin{NiceTabular}{|ll|}[rules/color=gray]
  a & b \\
  c & d \\
  \cmidrule(rl){1-2}
  e & f
\end{NiceTabular}

\end{document}

上述代码的输出

答案4

我将给出一个tblr环境的替代解决方案tabularray包裹。

请注意,您需要将 trim 选项lr放在方括号内。

\documentclass{article} 

\usepackage{xcolor}
\usepackage{tabularray}
\UseTblrLibrary{booktabs}

\begin{document}

\begin{tblr}{|[gray]ll|[gray]} 
  a & b \\
  c & d \\
  \cmidrule[gray,lr]{1-2}
  e & f
\end{tblr}

\end{document}

在此处输入图片描述

相关内容