与横向表格对齐的问题

与横向表格对齐的问题

我正在写一篇包含许多表格的论文。到目前为止,这些表格都是标准table*格式,即

\begin{table*}
\caption{Caption}
\label{label}
\begin{center}
\begin{tabular}{lccccccccccccccc|cc}
& \multicolumn{15}{c}{Title}& $\mu$ & $\sigma$\\

etc.

大约有 15-20 个后续行,并且渲染正确,同时(刚好)适合页面宽度。但是,我现在需要添加另外两列,这使得table*纵向显示太宽,因此需要切换到横向模式。这应该是一个简单的 90 度旋转案例,因为即使在横向显示中,表格的行数也不会太多,因此表格需要跨页显示。

但是,我尝试了两种方法,但都遇到了问题。首先,我尝试用 包裹表格\begin{landscape}(包括 lscape \usepackage),但页面底部有大量空白,而表格的左侧边缘被推过 \runningtitle 并超出页面顶部。其次,我尝试用 替换\begin{table*}\begin{sidewaystable*}但现在表格的垂直间距正确(即底部没有过多的空白,或与 冲突\runningtitle),但现在水平偏移 - 第一个表格超出页面的“左侧”(在纵向视图中为左侧,在横向视图中为顶部),而下一个表格旋转 180 度并从“右侧”落下。

在这两种情况下,添加或删除\begin{center}\centering似乎没有任何区别,我不知道还能做什么。除了常见的 LaTeX 关于“浮动对于页面来说太大”的抱怨之外,没有明显的输出可以帮助我找出问题所在。这篇论文是在A&A 格式使用最新的 (v7) aa.cls。如果我切换到裁判模式(这会触发从两列转换为单列,字体更大,行距加倍),则表格似乎可以正确呈现,这让我怀疑 .cls 文件是否存在问题。

有人能给出一些可能有效的解决方案、解决方法或替代方案吗?我已经为此绞尽脑汁好几个小时了,但还是想不出主意。

答案1

除了使用table*,您还可以尝试tabular**-form 需要一个额外的<width>强制参数

\begin{tabular*}{<width>}{<column specification>}

它指定了表格环境的宽度;在常规形式中,宽度由 LaTeX 根据表格环境的内容确定。现在,这可能只有在你真正想要扩大表格/表格到特定宽度。但是,你可能需要收缩表格宽度。为此,可能有一些技巧你可以使用。但是,其中一些可能取决于期刊的要求/规范。此外,最佳解决方案/选择可能取决于表格超出文本块的程度。我在这里通过示例列出了几个:

\documentclass[12pt]{article}
\usepackage{graphicx}
\begin{document}
Original\par
\begin{tabular}{*{7}{|c}|}
  Test 1 & Test 2 & Test 3 & Test 4 & Test 5 & Test 6 & Test 7
\end{tabular}

\bigskip Individual column separation modified via \verb|@{\hspace{<width>}}|\par
\begin{tabular}{*{7}{|@{\hspace{2pt}}c@{\hspace{2pt}}}|}
  Test 1 & Test 2 & Test 3 & Test 4 & Test 5 & Test 6 & Test 7
\end{tabular}

\bigskip Global column separation modified via \verb|\renewcommand{\tabcolsep}{<width>}|\par
{\renewcommand{\tabcolsep}{2pt}
\begin{tabular}{*{7}{|c}|}
  Test 1 & Test 2 & Test 3 & Test 4 & Test 5 & Test 6 & Test 7
\end{tabular}}

\bigskip Resized horizontally (keeping aspectratio) via \verb|\resizebox{<width>}{<height>}|\par
\resizebox{20em}{!}{\begin{tabular}{*{7}{|c}|}
  Test 1 & Test 2 & Test 3 & Test 4 & Test 5 & Test 6 & Test 7
\end{tabular}}

\bigskip Original\par
\begin{tabular}{*{7}{|c}|}
  Test 1 & Test 2 & Test 3 & Test 4 & Test 5 & Test 6 & Test 7
\end{tabular}
\end{document}

使用表格环境时水平间距的差异

从语义角度来看,以下是针对您的代码的一些建议:

  • 在 LaTeX 中,使用\begin{center}...\end{center}已经过时了,而且经常会产生不必要的垂直间距,即使表格中可能没有这种情况。最好使用\centeringl2tabu包裹对此进行了一些提及,以及对 LaTeX2e 过时代码的其他引用。
  • 如果您有许多格式相似的列,则可以简化表格列规范。为此,使用*{15}{c}相当于ccccccccccccccc(如上例所示)。当然,这种使用是有限制的,因为*{2}{c}不如 有用cc。但是,这里可读性以及后续修改的便利性都很重要。

答案2

这是我们发现的一种可行的技术table,尽管我不知道它是否已经尝试过table*

使用这些包:

\usepackage{graphicx}
\usepackage{lscape}

构建要旋转的对象时​​,首先将其连同其标题一起放入minipage宽度为 的环境\textheight中,然后将其包裹在landscape环境中以将 旋转minipage90 度。例如,

\begin{landscape}
\begin{table}
 \begin{minipage}{\textheight}
  \caption{...}\label{...}
  ...
 \end{minipage}
\end{table}
\end{landscape} 

注意:landscape环境必须位于浮动环境(tablefigure)之外。因此,它必须出现在明确的分页符处。

测量物体的宽度并\textheight用该宽度替换,以确保最佳定位,例如:

\begin{minipage}{6.5in} 

(大多数 AMS 文档类可容纳的最大宽度为 7.5 英寸。您应该确定所使用的文档类的适当值;\textheight不能直接工作,尽管事先将该值保存在另一个维度寄存器中可能会起作用。)

这种技术最大限度地减少了浮动对象右侧和运行头之间的额外空间。

这些说明改编自AMS 作者常见问题解答,其中有很多提示,虽然主要是 AMS 特有的,但也可能与其他 LaTeX 环境相关。)

相关内容