将 `sidewaystable` 与 `subfig` 中的 `subfloat` 结合起来

将 `sidewaystable` 与 `subfig` 中的 `subfloat` 结合起来

我使用包subtables中的环境subfloat来组合表编号(即,我在环境中包装的任何表subtables都会被标记为 1a、1b 等)。但我刚刚学会了LaTeX 维基如何使用包subfloat中的环境subfig来制作图形,看来我应该也使用subfloat来自subfig表格包的环境。这正确吗?

问题是我经常使用包sidewaystable中的环境。我可以使用包中的环境rotating来旋转表格吗?(我不知道如何从subfloatsubfig手动的。)这将允许并排的侧向表格。或者我应该坚持使用该subfloat包的更简单的方法吗?

下面是我如何结合subtablessidewaystable环境的一个例子。

\documentclass{article}
\usepackage{subfloat}
\usepackage{rotating}

\begin{document}

Check out tables \ref{tab:first} and \ref{tab:second}.

\begin{subtables}
    \begin{sidewaystable}
        \centering
        \begin{tabular}{ccc}
            \hline
            a&b&c\\
            d&e&f\\
            \hline
        \end{tabular}
        \caption{my first table}
        \label{tab:first}
    \end{sidewaystable}

    \begin{sidewaystable}
        \centering
        \begin{tabular}{ccc}
            \hline
            a&b&c\\
            d&e&f\\
            \hline
        \end{tabular}
        \caption{my second table, which is the same as the first}
        \label{tab:second}
    \end{sidewaystable}
\end{subtables}

\end{document}

答案1

无需使用或 甚至 ,即可获得sidewaystable多个表格横向显示的效果。下面是一个最小示例(使用subfigrotatingsubfloat用于编号):

在此处输入图片描述

\documentclass{article}
\usepackage{subfloat}% http://ctan.org/pkg/subfloat
\usepackage{graphicx}% http://ctan.org/pkg/graphicx

\begin{document}

Check out Tables~\ref{tab:first} and~\ref{tab:second}.

\begin{subtables}
\begin{table}[ht]
  \centering
  \rotatebox{90}{% Rotate table 90 degree CCW
    \begin{minipage}{0.5\linewidth}
      \centering
      \begin{tabular}{ccc}
        \hline
        a&b&c\\
        d&e&f\\
        \hline
      \end{tabular}
      \caption{my first table}\label{tab:first}
    \end{minipage}
  } \qquad% <-------------- separation between sideways tables
  \rotatebox{90}{% Rotate table by 90 degree CCW
    \begin{minipage}{0.5\linewidth}
      \centering
      \begin{tabular}{ccc}
        \hline
        a&b&c\\
        d&e&f\\
        \hline
      \end{tabular}
      \caption{my second table, which is the same as the first}\label{tab:second}
    \end{minipage}
  }
\end{table}
\end{subtables}

\end{document}

桌子的旋转是通过graphicx\rotatebox{<angle>}{<stuff>}。但是,对于表格(例如tabular带有 的表格\caption),您需要框住要旋转的内容。我使用minipage宽度为的 来做到这一点0.5\linewidth。此长度是必需的,但您也可以使用varwidth它提供了一个与 类似的名称环境minipage,但是(如果需要)缩小到盒子的自然宽度。

“子表”之间的空间由给出\qquad,尽管\hspace{<len>}也可以使用(其中<len>是任何可识别的 TeX 长度)。

最后,table已将 设置为具有 规范的浮动,这与的必要(浮动页面)用法[ht]不同。但是,您可以修改它以适应。sidewaystable[p]

目前,这还不包括rotating的浮动元素的动态 +/90 度旋转与页面相关(奇数页逆时针旋转表格 90 度,偶数页顺时针旋转表格 90 度)。但是,可以使用一些其他软件包来实现这样的功能,例如chngpage, 例如。

答案2

这是另一个答案,它按照要求使用了\sidewaystable和:\subfloat

\documentclass{article}
%\usepackage{subcaption} %should be used instead of subfig
\usepackage{subfig}
\usepackage{rotating}

\begin{document}

Check out tables \ref{tab:first} and \ref{tab:second}.

\begin{sidewaystable}[!h]
        \centering
        \caption{Example of subfloat and tables}\label{tab:main}
        \subfloat[][my first table\label{tab:first}]{
        \begin{tabular}{ccc}
            \hline
            a&b&c\\
            d&e&f\\
            \hline
        \end{tabular}
        }

        \vspace{2em}

        \subfloat[][my second table, which is the same as the first\label{tab:second}]{
        \begin{tabular}{ccc}
            \hline
            a&b&c\\
            d&e&f\\
            \hline
        \end{tabular}
        }
    \end{sidewaystable}
\end{document}

生成以下内容:引用

在此处输入图片描述

... 并在新页面上显示表格(由于 sidewaystable)

在此处输入图片描述

请注意,如上所述这里,您可能希望使用subcaptionpackage 而不是subfig。(只需替换上述代码中的 package ,示例即可以相同的方式运行)

相关内容