总结

总结

我想在页面的中心放置一个非常大的表格(比正常的页面内容稍微大一点)。

当内容适合时,居中效果很好,但我想将稍微过大的表格“挤压”到页面的中心。

\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,表示有\mboxes 的解决方案),我想向 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}

在此处输入图片描述

相关内容