我想在页面的中心放置一个非常大的表格(比正常的页面内容稍微大一点)。
当内容适合时,居中效果很好,但我想将稍微过大的表格“挤压”到页面的中心。
\begin{table}[H]
\centering
\captionsetup{justification=centering,margin=2cm}
% A table with 20+ columns goes here, displaying single- to two-digit numbers
\begin{tabular}[pos]{r|cccccccccccccccccccc}
1x & 00 & 01 & 02 & 03 & 04 & 05 & 06 & 07 & 08 & 09 & 10 & 11 & 12 & 13 & 14 & 15 & 16 & 17 & 18 & 10 \\
\end{tabular}
\caption{Lots of numbers}
\label{tab:numbers}
\end{table}
这张表格怎样才能塞进 A4 文档里?
同样:目标是将其稍微向左移动,以便它延伸到页面“主框”之外的左侧和右侧的相等部分,或者无论决定边距的东西叫什么。
文本(包括其他文本以及同一页面上的文本)不应受此影响。
我确实设法使用 来让某些事情发生\setlength{\hoffset}{-5mm}
,但这引起了各种各样的麻烦,主要是整个页面(以及其后的页面)都向左移动。
总结
我想将tabular
-in- table
-table 置于中央,尽管它会稍微溢出页面,
并且不影响文档的其余部分。
答案1
您可以使用与宽度无关的\makebox[\linewidth][c]{…}
中心(像 这样的水平材料):tabular
\documentclass[a4paper]{article}
\usepackage{caption}
\begin{document}
\begin{table}
\captionsetup{justification=centering,margin=2cm}
\makebox[\linewidth][c]{%
\begin{tabular}[pos]{r|cccccccccccccccccccc}
1x & 00 & 01 & 02 & 03 & 04 & 05 & 06 & 07 & 08 & 09 & 10 & 11 & 12 & 13 & 14 & 15 & 16 & 17 & 18 & 10 \\
\end{tabular}%
}
\caption{Lots of numbers}
\label{tab:numbers}
\end{table}
\begin{table}
\captionsetup{justification=centering,margin=2cm}
\makebox[\linewidth][c]{%
\begin{tabular}[pos]{r|cccccccccc}
1x & 00 & 01 & 02 & 03 & 04 & 05 & 06 & 07 & 08 & 09 \\
\end{tabular}%
}
\caption{Less numbers}
\label{tab:lessnumbers}
\end{table}
\end{document}
注意:%
字符很重要,不要添加额外的空格,否则会导致居中不平衡。
答案2
巴塞德卡博哈的回答(+1,表示有\mbox
es 的解决方案),我想向 OP 添加两条建议。
标题
如果表格超出页面边界,则可能希望长标题与表格宽度相同。justification
对于较长的标题,我可能会保留默认悬挂格式,因为 (1) 短标题默认居中,(2) 跨多行标题默认对齐。
坏盒子
此表会发出有关坏框的警告,我会通过在环境\hfuzz
内添加来本地抑制该table
警告。如果 LaTeX 再次发出警告,则意味着文档中的其他内容存在问题。
\documentclass[a4paper]{article}
\usepackage{caption}
\usepackage[nopar]{kantlipsum}
\newsavebox\widetab
\begin{document}
\begin{table}
\hfuzz=\linewidth %<--- suppress warning about bad boxes
\captionsetup{format=hang,position=bottom,skip=6pt}
\sbox\widetab{%
\begin{tabular}[pos]{@{}r|*{20}{c}@{}}
1x & 00 & 01 & 02 & 03 & 04 & 05 & 06 & 07 & 08 & 09 & 10 & 11 & 12 & 13 & 14 & 15 & 16 & 17 & 18 & 10 \\
\end{tabular}}%
\makebox[\linewidth][c]{\usebox\widetab}
\hspace{-0.5\dimexpr\wd\widetab-\linewidth}%
\begin{minipage}{\wd\widetab}
\caption{Lots of numbers. \kant[1][1]}\label{tab:numbers}
\end{minipage}
\end{table}
\end{document}