如何自訂表格中規則的長度?

如何自訂表格中規則的長度?

我想自訂第一個表中中線的長度(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,並需要在右側進行(負數,此處)修剪,該修剪是根據列寬計算的,這要歸功於迷你頁。如果不知道,我們將不得不使用該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}

在此輸入影像描述

相關內容