У меня есть стол
\begin{table}[ht]
\caption{Caption}
\label{Lable} \\
\begin{tabularx}{\textwidth}{@{} LLLL @{}}
\toprule
& \textbf{Col 1} & \textbf{Col 2} & \textbf{Col3} \\
\midrule
A & 1 & 2 & 3 \\
B & 4 & 5 & 6 \\
C & 7 & 8 & 9 \\
\bottomrule
& 10 & 11 & 12
\end{tabularx}
\end{table}
Есть ли способ сделать эту таблицу на определенную величину шире, чем моя textwidth
, не вынимая ее из моего текстового потока, используя .pt
значения? Я не хочу, чтобы таблица начиналась на новой странице/занимала целую страницу после того, как установила ее шире, чем textwidth
.
решение1
Вам нужно обернуть tabularx
среду в minipage
среду, которая больше, \textwidth
чем центр или lap, что minipage
. Самый простой способ - использовать adjustbox
пакет для этого:
\documentclass{article}
\usepackage{array}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{adjustbox}
\usepackage{lipsum}% only for example text
\begin{document}
\lipsum
\begin{table}[ht]
\caption{Caption}\label{Lable}
\begin{adjustbox}{minipage=18cm, center}
\begin{tabularx}{\textwidth}{@{} llll @{}}
\toprule
& \textbf{Col 1} & \textbf{Col 2} & \textbf{Col3} \\
\midrule
A & 1 & 2 & 3 \\
B & 4 & 5 & 6 \\
C & 7 & 8 & 9 \\
\bottomrule
& 10 & 11 & 12
\end{tabularx}
\end{adjustbox}
\end{table}
\lipsum
\end{document}
Обратите внимание, что я изменил символы столбцов с L
на l
, поскольку у меня не было L
определения под рукой.
Примечание:Если вы просто хотите добавить некоторое pt
значение к текущей ширине текста, используйте, например minipage=\textwidth+20pt,center
, . Это добавит 10pt слева и справа.
Если вы хотите, чтобы таблица была на 10 пунктов дальшеверноиспользовать только маржу minipage=\textwidth+10pt,left
.
Если вы хотите, чтобы таблица была на 10 пунктов дальшелевыйиспользовать только маржу minipage=\textwidth+10pt,right
.
решение2
я предполагаю...
красные линии обозначают макет страницы.
с использованием changepage
пакета:
\begin{table}[ht]
\begin{adjustwidth}{}{-12pt}
\caption{Caption}
\label{Lable}
\begin{tabularx}{\linewidth}{@{} LLLL @{}}
\toprule
& \textbf{Col 1} & \textbf{Col 2} & \textbf{Col3} \\
\midrule
A & 1 & 2 & 3 \\
B & 4 & 5 & 6 \\
C & 7 & 8 & 9 \\
\bottomrule
& 10 & 11 & 12
\end{tabularx}
\end{adjustwidth}
\end{table}
или если вам нравится, чтобы таблица выходила на обе стороны текста:
для этого вы только меняете
\begin{adjustwidth}{-12pt}{-12pt}
Вы не предоставили полный небольшой документ, поэтому я тестирую вышеуказанное решение в своей «таблице testbad», которая не предназначена для показа здесь...
решение3
Я бы пошел простым путем, \makebox[\textwidth]{table of \textwidth + xpt}
. Это автоматически отцентрирует таблицу в дополнение к увеличению ширины на xpt
.
\documentclass{article}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{lipsum}% only for example text
\begin{document}
\lipsum
\begin{table}[ht]
\caption{Caption}\label{Lable}
\makebox[\textwidth]{%
\begin{tabularx}{\dimexpr\textwidth+50pt}{@{} llll @{}}
\toprule
& \textbf{Col 1} & \textbf{Col 2} & \textbf{Col3} \\
\midrule
A & 1 & 2 & 3 \\
B & 4 & 5 & 6 \\
C & 7 & 8 & 9 \\
\bottomrule
& 10 & 11 & 12
\end{tabularx}
}
\end{table}
\lipsum
\end{document}
решение4
Если у вас есть tabularx, разбитый на несколько страниц, вы можете загрузить пакет ltablex
, который объединяет longtable
и tabularx
, чтобы вы могли использовать параметры longtable в tabularx:
\documentclass{article}
\usepackage{array}
\usepackage{booktabs}
\usepackage{ltablex}
\usepackage{adjustbox}
\usepackage{lipsum}% only for example text
\begin{document}
\lipsum[1-4]
\begingroup
\setlength\LTleft{-40pt}
\setlength\LTright{-40pt}
\keepXColumns
\begin{tabularx}{1.2\textwidth}{@{}*{4}{X}@{}}
\caption{Caption}\label{Lable} \\
\toprule
\endfirsthead
\multicolumn{4}{c}{\tablename~\thetable: Caption (continued)}\smallskip \\
\midrule
\endhead
\midrule
\multicolumn{4}{r@{}}{to be continued}\\
\endfoot
\bottomrule
\endlastfoot
& \textbf{Col 1} & \textbf{Col 2} & \textbf{Col3} \\
\midrule
A & 1 & 2 & 3 \\
B & 4 & 5 & 6 \\
C & 7 & 8 & 9 \\
D & 10 & 11 & 12 \\
E = & 13 & 14 & 15 \\
F = & 16 & 17 & 18 \\
\midrule
T & 51 & 57 & 63
\end{tabularx}
\endgroup
\lipsum[5]
\end{document}