Как настроить длину правила в таблицах?

Как настроить длину правила в таблицах?

Я хочу настроить длину средней линии (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= 15 см), это почти сработает, но длина линий всё равно не будет полностью одинаковой.

\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}

введите описание изображения здесь

Связанный контент