如何自定义表格中规则的长度?

如何自定义表格中规则的长度?

我想自定义第一个表格中中线的长度(xy 厘米)。第二个表格应该是默认的。该怎么做?

\documentclass{article}

\usepackage{booktabs}

\begin{document} 
\begin{tabular}{@{}ll@{}}
XXXXXXX&\\\midrule\addlinespace[1ex]
\begin{minipage}[t]{5.5cm}
AAAAAAAAAAAAA
\end{minipage}
&
\begin{minipage}[t]{9.5cm}
BBBBBBBBBBBBBBB
\end{minipage}
\end{tabular}

\bigskip
\begin{tabular}{@{}ll@{}}
YYYYYYYYYYYYY&\\\midrule\addlinespace[1ex]
\begin{minipage}[t]{5.5cm}
CCCCCCCCC
\end{minipage}
&
\begin{minipage}[t]{9.5cm}
DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
\end{minipage}
\end{tabular}

\end{document}

编辑:原始问题的扩展!虽然答案解决了上述问题,但我无法使用它们来解决以下问题:在第二个最小示例中,我希望第二个表中的规则与第一个表中的长度完全相同(第一个表是参考格式)。如果在第二个表中我\midrule按照\noalign{\noindent\rule{\dimexpr15cm+\tabcolsep\relax}{0.5pt}}@Christian Hupfer 的答案中的建议替换(请注意\llen+ \rlen= 15cm),它几乎可以正常工作,但线条的长度仍然不完全相等。

\documentclass{article}
\usepackage{booktabs}

\newlength{\llen}
\newlength{\rlen}
\setlength{\llen}{5.5cm}
\setlength{\rlen}{9.5cm}

\parindent=0cm

\begin{document}

\begin{tabular}{@{}ll@{}}
XXXXXXXXXXXXXXXXXXX &\\\midrule\addlinespace[1ex]
\begin{minipage}[t]{\llen}
AAAAAAAAAAAAAAA\\
\end{minipage}&
\begin{minipage}[t]{\rlen}
YYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
\end{minipage}
\end{tabular}

\vspace{0.2cm}

\noindent
\begin{tabular}{@{}ll@{}}
XXXXXXXXXXXXXXXXXXX&\\\midrule\addlinespace[1ex]
WWWWWWWWWWWWWWWWWWWWWWWWWWWW 
\end{tabular}

\end{document}

答案1

这就是你想要的吗?我尝试了(lr)的参数\cmidrule,并要求在右侧进行(此处为负)修剪,该修剪是根据列宽计算得出的,这要感谢 minipage。如果不知道,我们将不得不使用包eqparbox

\documentclass{article}

\usepackage{booktabs}

\begin{document}
\begin{tabular}{@{}ll@{}}
  XXXXXXX & \\\cmidrule[\lightrulewidth](r{\dimexpr5.5cm+\tabcolsep-7.75cm\relax}){1-1}\addlinespace[1ex]
  \begin{minipage}[t]{5.5cm}
  AAAAAAAAAAAAA
  \end{minipage}
          &
  \begin{minipage}[t]{9.5cm}
  BBBBBBBBBBBBBBB
  \end{minipage}
\end{tabular}

\bigskip
\begin{tabular}{@{}ll@{}}
  YYYYYYYYYYYYY & \\\midrule\addlinespace[1ex]
  \begin{minipage}[t]{5.5cm}
  CCCCCCCCC
  \end{minipage}
                &
  \begin{minipage}[t]{9.5cm}
  DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
  \end{minipage}
\end{tabular}

\end{document} 

在此处输入图片描述

这是第二个问题的解决方案:为了缩短输入时间,我定义了一个\fakemidrule命令来执行您想要的操作。您尝试的代码中的错误是您忘记了两列之间的间距等于2\tabcolsep。

\documentclass{article}
\usepackage{booktabs}

\newlength{\llen}
\newlength{\rlen}
\setlength{\llen}{5.5cm}
\setlength{\rlen}{9.5cm}
\newcommand\fakemidrule{\noalign{\vskip\aboverulesep\noindent\rule{\dimexpr\llen + \rlen+2\tabcolsep\relax}{\lightrulewidth}}}
\parindent=0cm

\begin{document}

\begin{tabular}{@{}ll@{}}
  XXXXXXXXXXXXXXXXXXX & \\
  \midrule\addlinespace[1ex]
  \begin{minipage}[t]{\llen}
  AAAAAAAAAAAAAAA\\
  \end{minipage} &
  \begin{minipage}[t]{\rlen}
  YYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
  \end{minipage}
\end{tabular}

\vspace{0.2cm}

\noindent
\begin{tabular}{@{}ll@{}}
  XXXXXXXXXXXXXXXXXXX & \\
  \fakemidrule
  \addlinespace[1ex]
  WWWWWWWWWWWWWWWWWWWWWWWWWWWW
\end{tabular}

\end{document} 

在此处输入图片描述

答案2

可以使用 指定任意长度的规则\rule{length}{width},但是,这将被放置在表格单元格中。

要扩展到单元格,请使用\noalign{\noindent\rule{7.75cm}{2pt}}(随意更改尺寸)(感谢@touhami 提供的提示\noindent

\noalign阻止单元格对齐,所有内容基本上设置为没有表格单元格,留下通常的\parindent缩进。要摆脱这种情况,\noindent可以使用(或\parindent设置为零)

\documentclass{article}

\usepackage{booktabs}

\begin{document} 
\begin{tabular}{@{}ll@{}}

XXXXXXX&\\
\noalign{\noindent\rule{7.75cm}{2pt}}\addlinespace[1ex]
\midrule\addlinespace[1ex]
\begin{minipage}[t]{5.5cm}
AAAAAAAAAAAAA
\end{minipage}
&
\begin{minipage}[t]{9.5cm}
BBBBBBBBBBBBBBB
\end{minipage}
\end{tabular}

\bigskip
\begin{tabular}{@{}ll@{}}
YYYYYYYYYYYYY&\\\midrule\addlinespace[1ex]
\begin{minipage}[t]{5.5cm}
CCCCCCCCC
\end{minipage}
&
\begin{minipage}[t]{9.5cm}
DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
\end{minipage}
\end{tabular}

\end{document}

在此处输入图片描述

相关内容